diff --git a/.circleci/config.yml b/.circleci/config.yml index 202dfaa374ad..31a905a548a6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,7 +15,7 @@ executors: - image: opennms/antora:2.3.4-b6293 integration-test-executor: machine: - image: ubuntu-2004:202010-01 + image: ubuntu-2004:202010-01 smoke-test-executor: machine: image: ubuntu-2004:202010-01 @@ -31,27 +31,27 @@ defaults: &defaults previous_branch: description: the previous branch, if any type: string - default: foundation-2021 + default: release-29.x previous_branch_label: description: the previous branch, if any (escaped, no slashes) type: string - default: foundation-2021 + default: release-29.x main_branch: description: the auto-merge main branch type: string - default: release-28.x + default: master-29 main_branch_label: description: the auto-merge main branch (escaped, no slashes) type: string - default: release-28.x + default: master-29 next_branch: description: the auto-merge target branch type: string - default: develop + default: "" next_branch_label: description: the auto-merge target branch (escaped, no slashes) type: string - default: develop + default: "" aliases: - &setup_dct_env @@ -147,12 +147,12 @@ commands: keys: - maven-dependencies-v3-{{ checksum "pom-version-cache.key" }}-{{ checksum "maven-dependency-pom-cache.key" }} - maven-dependencies-v3-{{ checksum "pom-version-cache.key" }}- - update-maven-cache: - description: "Maven: Refresh local repository from POM files" - steps: - run: name: Remove old artifacts to keep workspace size down command: .circleci/scripts/clean-m2.sh + update-maven-cache: + description: "Maven: Refresh local repository from POM files" + steps: - run: name: Collect Maven Dependencies command: | @@ -315,6 +315,7 @@ commands: .circleci/scripts/configure-signing.sh ./clean.pl << parameters.node-memory >> + export MAVEN_OPTS="$MAVEN_OPTS -Xmx8g -XX:ReservedCodeCacheSize=1g" ./compile.pl -DskipTests=true -Dbuild.skip.tarball=false \ -DupdatePolicy=never \ -Daether.connector.resumeDownloads=false \ @@ -359,7 +360,6 @@ commands: default: true type: boolean steps: - - update-maven-cache - run: name: Monitor JVM processes background: true diff --git a/.circleci/scripts/itest.sh b/.circleci/scripts/itest.sh index 7f1179d61ca7..53ff485fc78d 100755 --- a/.circleci/scripts/itest.sh +++ b/.circleci/scripts/itest.sh @@ -50,7 +50,7 @@ echo "#### Installing other dependencies" # limit the sources we need to update sudo rm -f /etc/apt/sources.list.d/* -# kill other apt-gets first to avoid problems locking /var/lib/apt/lists/lock - see https://discuss.circleci.com/t/could-not-get-lock-var-lib-apt-lists-lock/28337/6 +# kill other apt commands first to avoid problems locking /var/lib/apt/lists/lock - see https://discuss.circleci.com/t/could-not-get-lock-var-lib-apt-lists-lock/28337/6 sudo killall -9 apt || true && \ sudo apt update && \ sudo env DEBIAN_FRONTEND=noninteractive apt -y --no-install-recommends install \ @@ -71,7 +71,7 @@ sudo add-apt-repository 'deb http://debian.opennms.org stable main' # add the R repository sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/" -sudo apt-get update && \ +sudo apt update && \ RRDTOOL_VERSION=$(apt-cache show rrdtool | grep Version: | grep -v opennms | awk '{ print $2 }') && \ echo '* libraries/restart-without-asking boolean true' | sudo debconf-set-selections && \ sudo env DEBIAN_FRONTEND=noninteractive apt -f --no-install-recommends install \ diff --git a/.circleci/scripts/smoke.sh b/.circleci/scripts/smoke.sh index e76c76e10511..b8874d51be73 100755 --- a/.circleci/scripts/smoke.sh +++ b/.circleci/scripts/smoke.sh @@ -53,20 +53,21 @@ export MAVEN_OPTS="-Xmx1g -Xms1g" cd ~/project/smoke-test if [ $SUITE = "minimal" ]; then echo "#### Executing minimal set smoke/system tests" - # Run a set of known tests - for TEST_CLASS in "MenuHeaderIT" "SinglePortFlowsIT" - do - echo "###### Testing: ${TEST_CLASS}" - ../compile.pl -N -DskipTests=false -DskipITs=false -Dtest.fork.count=0 -Dit.test=$TEST_CLASS install verify - done + IT_TESTS="MenuHeaderIT,SinglePortFlowsIT" else - echo "#### Executing complete suite of smoke/system tests" find_tests - # Iterate through the tests and stop after the first failure - while read -r TEST_CLASS - do - echo "###### Testing: ${TEST_CLASS}" - ../compile.pl -N -DskipTests=false -DskipITs=false -DfailIfNoTests=false -Dtest.fork.count=0 -Dit.test="$TEST_CLASS" '-P!smoke.all' "-Psmoke.$SUITE" install verify - done < /tmp/this_node_it_tests + echo "#### Executing complete suite of smoke/system tests" + IT_TESTS="$(< /tmp/this_node_it_tests paste -s -d, -)" fi +../compile.pl \ + -DskipTests=false \ + -DskipITs=false \ + -DfailIfNoTests=false \ + -Dtest.fork.count=0 \ + -Dit.test="$IT_TESTS" \ + --fail-fast \ + -N \ + '-P!smoke.all' \ + "-Psmoke.$SUITE" \ + install verify diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 42b186479c46..9d80d292c4d4 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,29 +1,32 @@ ### All Contributors -* [ ] Have you read and followed our [Contribution Guidelines](https://github.com/OpenNMS/opennms/blob/develop/CONTRIBUTING.md)? +* [ ] Have you read our [Contribution Guidelines](https://github.com/OpenNMS/opennms/blob/develop/CONTRIBUTING.md)? * [ ] Have you (electronically) signed the [OpenNMS Contributor Agreement](https://cla-assistant.io/OpenNMS/opennms)? -* [ ] Have you [made an issue in the OpenNMS issue tracker](https://issues.opennms.org)?
If so, you should: - 1. update the title of this PR to be of the format: `${JIRA-ISSUE-NUMBER}: subject of pull request` + +### Contribution Checklist + +* Please [make an issue in the OpenNMS issue tracker](https://issues.opennms.org) if there isn't one already.
Once there is an issue, please: + 1. update the title of this PR to be in the format: `${JIRA-ISSUE-NUMBER}: subject of pull request` 2. update the JIRA link at the bottom of this comment to refer to the real issue number 3. prefix your commit messages with the issue number, if possible - If you're not sure how to do this, we can help you get things set up properly. -* [ ] Have you made a comment in that issue which points back to this PR? -* [ ] Have you updated the JIRA link at the bottom of this comment to link to your issue? -* [ ] If this is a new or updated feature, is there documentation for the new behavior? -* [ ] If this is new code, are there unit and/or integration tests? -* [ ] If this PR targets a `foundation-*` branch, does it avoid changing files in `$OPENNMS_HOME/etc/`? + 4. once you've created this PR, please link to it in a comment in the JIRA issue + Don't worry if this sounds like a lot, we can help you get things set up properly. +* If this is a new or updated feature, is there documentation for the new behavior? +* If this is new code, are there unit and/or integration tests? +* If this PR targets a `foundation-*` branch, does it try to avoid changing files in `$OPENNMS_HOME/etc/`? -### Pull Request Process +### What's Next? -One or more reviewers should be assigned to each PR. +A PR should be assigned at least 2 reviewers. If you know that someone would be a good person to review your code, feel free to add them. -If you know that a particular person is subject matter expert in the area your PR affects, feel free to assign one or more reviewers when you create this PR, otherwise reviewers will be assigned for you. +If you need help making additions or changes to the documentation related to your changes, please let us know. -If you have made additions or changes to the documentation, or if you _need_ documentation for these code changes, please make sure a technical writer has looked it over. +In any case, if anything is unclear or you want help getting your PR ready for merge, please don't hesitate to say something in the comments here, +or in [the #opennms-development chat channel](https://chat.opennms.com/opennms/channels/opennms-development). -Once the reviewer(s) accept the PR and the branch passes continuous integration, the PR is eligible for merge. +Once reviewer(s) accept the PR and the branch passes continuous integration, the PR is eligible for merge. -At that time, if you have commit access (are an OpenNMS Group employee or a member of the Order of the Green Polo) you are welcome to merge the PR. +At that time, if you have commit access (are an OpenNMS Group employee or a member of the OGP) you are welcome to merge the PR when you're ready. Otherwise, a reviewer can merge it for you. Thanks for taking time to contribute! diff --git a/.github/label-pr.yml b/.github/label-pr.yml new file mode 100644 index 000000000000..8d34b7335c5d --- /dev/null +++ b/.github/label-pr.yml @@ -0,0 +1,6 @@ +- regExp: "^docs/.*$" + labels: ["docs"] +- regExp: "^opennms-doc/.*$" + labels: ["docs"] +- regExp: "^.*\\.adoc$" + labels: ["docs"] diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 000000000000..47e6a38558af --- /dev/null +++ b/.github/workflows/labeler.yml @@ -0,0 +1,16 @@ +# Workflow to associate labels automatically +name: PR-Labeler +# Trigger the workflow on pull request events +on: [pull_request] +jobs: + label: + runs-on: ubuntu-18.04 + steps: + # We need to checkout the repository to access the configured file (.github/label-pr.yml) + - uses: actions/checkout@v2 + - name: Labeler + uses: docker://decathlon/pull-request-labeler-action:2.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Here we can override the path for the action configuration. If none is provided, default one is `.github/label-pr.yml` + CONFIG_PATH: ${{ secrets.GITHUB_WORKSPACE }}/.github/label-pr.yml diff --git a/.nightly b/.nightly index 403e6d41b5e2..ce6a7bbe2e7a 100644 --- a/.nightly +++ b/.nightly @@ -1,2 +1,2 @@ repo: develop -parent_branch: release-28.x +parent_branch: develop diff --git a/LICENSE.md b/LICENSE.md index 58207820cdf8..5df63663ff04 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -91,32 +91,4 @@ view the header in each file: * opennms-services/src/main/java/org/opennms/netmgt/xmlrpcd/TimeoutSecureXmlRpcTransport.java * opennms-services/src/main/java/org/opennms/netmgt/xmlrpcd/TimeoutSecureXmlRpcTransportFactory.java * opennms-services/src/test/java/org/opennms/netmgt/syslogd/SyslogClient.java -* opennms-tools/m2eclipse-integration/org.opennms.m2e.castor/src/org/opennms/m2e/castor/internal/CastorBuildParticipant.java -* opennms-tools/m2eclipse-integration/org.opennms.m2e.castor/src/org/opennms/m2e/castor/internal/CastorProjectConfigurator.java -* opennms-tools/m2eclipse-integration/org.opennms.m2e.castor.feature/feature.properties -* opennms-tools/opennms-qosdaemon/src/main/java/org/openoss/opennms/spring/qosd/ejb/AlarmListJ2eeConnectionManagerThread.java -* opennms-tools/OpenNMSXMLClient/src/main/java/com/bt/bcos/adapter/AdapterIf.java -* opennms-tools/OpenNMSXMLClient/src/main/java/org/opennms/xmlclient/BasicHttpMethods.java -* opennms-tools/OpenNMSXMLClient/src/main/java/org/opennms/xmlclient/ClientPropertiesLoader.java -* opennms-tools/OpenNMSXMLClient/src/main/java/org/opennms/xmlclient/OpenNmsXmlClient.java -* opennms-tools/OpenNMSXMLClient/src/main/java/org/opennms/xmlclient/bcos/OpenNmsBcosAdapter.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xml/model/client/GetNodesTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xml/model/client/GetRrdDataTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/InterfaceAddTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/InterfaceRemoveTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/NodeAddTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/NodeRemoveTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/RequisitionAddTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/RequisitionImportTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/RequisitionListTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/RequisitionRemoveDeployedTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/RequisitionRemoveTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/XMLMarshalTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/bcos/BcosAddTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/bcos/BcosCommitTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/bcos/BcosRemoveTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/bcos/catalyst/CatalystAddTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/bcos/catalyst/CatalystCommitTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/bcos/catalyst/CatalystRemoveTest.java -* opennms-tools/OpenNMSXMLClient/src/test/java/org/opennms/xmlclient/bcos/catalyst/RepeatingAddRemoveTest.java diff --git a/checkstyle/pom.xml b/checkstyle/pom.xml index bf2a928717d2..76a5bfa0eaf6 100644 --- a/checkstyle/pom.xml +++ b/checkstyle/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.opennms org.opennms.checkstyle - 28.1.1 + 29.0.0-SNAPSHOT OpenNMS :: Checkstyle diff --git a/container/branding/pom.xml b/container/branding/pom.xml index 42c6961e4114..91dfc192ab97 100644 --- a/container/branding/pom.xml +++ b/container/branding/pom.xml @@ -6,7 +6,7 @@ org.opennms org.opennms.container - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.container diff --git a/container/bridge/api/pom.xml b/container/bridge/api/pom.xml index bc5d0e725d12..519043403b74 100644 --- a/container/bridge/api/pom.xml +++ b/container/bridge/api/pom.xml @@ -4,7 +4,7 @@ org.opennms.container org.opennms.container.bridge - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.container.bridge org.opennms.container.bridge.api diff --git a/container/bridge/pom.xml b/container/bridge/pom.xml index 90fe621efbb0..32ce17feae53 100644 --- a/container/bridge/pom.xml +++ b/container/bridge/pom.xml @@ -6,7 +6,7 @@ org.opennms org.opennms.container - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.container org.opennms.container.bridge diff --git a/container/bridge/proxy/pom.xml b/container/bridge/proxy/pom.xml index 639e8ef79e58..4e77522789d5 100644 --- a/container/bridge/proxy/pom.xml +++ b/container/bridge/proxy/pom.xml @@ -4,7 +4,7 @@ org.opennms.container org.opennms.container.bridge - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.container.bridge org.opennms.container.bridge.proxy @@ -30,7 +30,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/container/bridge/rest/pom.xml b/container/bridge/rest/pom.xml index f3db9308773d..0f27e3e6d92c 100644 --- a/container/bridge/rest/pom.xml +++ b/container/bridge/rest/pom.xml @@ -4,7 +4,7 @@ org.opennms.container org.opennms.container.bridge - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.container.bridge org.opennms.container.bridge.rest @@ -27,7 +27,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn ${osgiCompendiumVersion} provided @@ -42,18 +42,14 @@ - false - true - opennms-repo - OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release - - - true - false - opennms-snapshots - OpenNMS Snapshot Maven Repository - http://maven.opennms.org/content/groups/opennms.org-snapshot + opennms-maven-3rdparty + https://packages.opennms.com/public/3rdparty/maven/ + + true + + + true + diff --git a/container/extender/pom.xml b/container/extender/pom.xml index e002e6acc677..a1f38a65e862 100644 --- a/container/extender/pom.xml +++ b/container/extender/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.container - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.container @@ -30,7 +30,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn org.slf4j diff --git a/container/features/pom.xml b/container/features/pom.xml index e6d783ceae0f..f38df5833042 100644 --- a/container/features/pom.xml +++ b/container/features/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.container - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.karaf @@ -66,17 +66,12 @@ karaf-extensions - ${project.build.outputDirectory}/karaf/standard.xml - xml - standard - - - ${project.build.outputDirectory}/karaf/spring.xml + ${project.build.outputDirectory}/spring.xml xml spring - ${project.build.outputDirectory}/karaf/spring-legacy.xml + ${project.build.outputDirectory}/spring-legacy.xml xml spring-legacy @@ -412,6 +407,13 @@ pom provided + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.shell + ${project.version} + pom + provided + org.opennms.features.telemetry.distributed org.opennms.features.telemetry.distributed.common @@ -523,23 +525,19 @@ - false - true - opennms-repo - OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release - - - true - false - opennms-snapshots - OpenNMS Snapshot Maven Repository - http://maven.opennms.org/content/groups/opennms.org-snapshot + opennms-maven-3rdparty + https://packages.opennms.com/public/3rdparty/maven/ + + true + + + true + sonatype.org-snapshot Sonatype OSS Snapshots Repository - http://maven.opennms.org/content/groups/sonatype.org-snapshot/ + https://maven.opennms.org/content/groups/sonatype.org-snapshot/ false true diff --git a/container/features/src/main/resources/features-minion.xml b/container/features/src/main/resources/features-minion.xml index 391f07466181..43baf2fa476d 100644 --- a/container/features/src/main/resources/features-minion.xml +++ b/container/features/src/main/resources/features-minion.xml @@ -159,8 +159,19 @@ mvn:org.opennms.core.grpc/org.opennms.core.grpc.osgi/${project.version} mvn:org.opennms.core.ipc.grpc/org.opennms.core.ipc.grpc.common/${project.version} mvn:org.opennms.core.ipc.grpc/org.opennms.core.ipc.grpc.client/${project.version} + opennms-core-ipc-twin-grpc-subscriber - + + + mvn:org.opennms.core.grpc/org.opennms.core.grpc.common/${project.version} + mvn:org.opennms.core.grpc/org.opennms.core.grpc.osgi/${project.version} + mvn:org.opennms.core.ipc.twin/org.opennms.core.ipc.twin.api/${project.version} + mvn:org.opennms.core.ipc.twin/org.opennms.core.ipc.twin.common/${project.version} + mvn:org.opennms.core.ipc.twin.grpc/org.opennms.core.ipc.twin.grpc.common/${project.version} + mvn:org.opennms.core.ipc.twin.grpc/org.opennms.core.ipc.twin.grpc.subscriber/${project.version} + json-patch + + minion-core-api mvn:org.opennms.core.grpc/org.opennms.core.grpc.osgi/${project.version} @@ -173,16 +184,6 @@ mvn:org.opennms.features.scv/org.opennms.features.scv.dominion-grpc-impl/${project.version} - - opennms-health - scv-api - - mvn:org.apache.httpcomponents/httpcore-osgi/${httpcoreVersion} - mvn:org.apache.httpcomponents/httpclient-osgi/${httpclientVersion} - mvn:com.google.code.gson/gson/${gsonVersion} - mvn:org.opennms.features.minion/minion-rest-client/${project.version} - - opennms-health-rest cxf-core diff --git a/container/features/src/main/resources/features.xml b/container/features/src/main/resources/features.xml index d5da8dc291a5..f45f55f9371a 100644 --- a/container/features/src/main/resources/features.xml +++ b/container/features/src/main/resources/features.xml @@ -1,5 +1,5 @@ - + mvn:org.apache.camel.karaf/apache-camel/${camelVersion}/xml/features mvn:org.apache.cxf.karaf/apache-cxf/${cxfVersion}/xml/features mvn:org.apache.activemq/activemq-karaf/${activemqVersion}/xml/features @@ -171,8 +171,8 @@ mvn:net.java.dev.jna/jna/${jnaVersion} mvn:net.java.dev.jna/jna-platform/${jnaVersion} - - mvn:javax.mail/mail/1.4.5 + + mvn:com.sun.mail/jakarta.mail/1.6.7 mvn:javax.servlet/javax.servlet-api/${servletApiVersion} @@ -305,15 +305,21 @@ mvn:org.opennms.features.distributed/org.opennms.features.distributed.opennms-identity/${project.version} + + owasp-encoder + owasp-html-sanitizer + commons-jexl + mvn:org.opennms.core/org.opennms.core.api/${project.version} + mvn:org.opennms/opennms-util/${project.version} + + spring spring-orm commons-io dnsjava jaxb - owasp-encoder - owasp-html-sanitizer - commons-jexl + opennms-util wrap:mvn:javax.inject/javax.inject/1 mvn:org.codehaus.jackson/jackson-core-asl/${jacksonVersion} mvn:org.codehaus.jackson/jackson-mapper-asl/${jacksonVersion} @@ -326,7 +332,6 @@ mvn:org.opennms.core/org.opennms.core.spring/${project.version} mvn:org.opennms.core/org.opennms.core.sysprops/${project.version} mvn:org.opennms.core/org.opennms.core.xml/${project.version} - mvn:org.opennms/opennms-util/${project.version} camel-core @@ -451,14 +456,6 @@ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/${kafkaBundleVersion} mvn:com.github.luben/zstd-jni/${zstdJniVersion} - - wrap:mvn:com.amazonaws/aws-java-sdk-core/${awsSdkVersion} - wrap:mvn:com.amazonaws/aws-java-sdk-sqs/${awsSdkVersion} - wrap:mvn:com.amazonaws/amazon-sqs-java-messaging-lib/${awsSqsMessagingVersion} - mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2Version} - mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2Version} - mvn:com.fasterxml.jackson.core/jackson-core/${jackson2Version} - dropwizard-metrics guava @@ -512,14 +509,6 @@ opennms-core-ipc-sink-kafka-common mvn:org.opennms.core.ipc.sink.kafka/org.opennms.core.ipc.sink.kafka.server/${project.version} - - guava - opennms-core-ipc-sink-api - opennms-aws-sqs - mvn:org.opennms.core.ipc.common/org.opennms.core.ipc.common.aws-sqs/${project.version} - mvn:org.opennms.core.ipc.sink.aws.sqs/org.opennms.core.ipc.sink.aws.sqs.common/${project.version} - mvn:org.opennms.core.ipc.sink.aws.sqs/org.opennms.core.ipc.sink.aws.sqs.client/${project.version} - camel-blueprint camel-jms @@ -541,12 +530,6 @@ opennms-dao-api mvn:org.opennms.core.ipc.rpc/org.opennms.core.ipc.rpc.jms-impl/${project.version} - - opennms-aws-sqs - opennms-core-ipc-rpc-api - mvn:org.opennms.core.ipc.common/org.opennms.core.ipc.common.aws-sqs/${project.version} - mvn:org.opennms.core.ipc.rpc/org.opennms.core.ipc.rpc.aws-sqs-impl/${project.version} - opennms-kafka opennms-core-ipc-rpc-api @@ -837,6 +820,7 @@ wrap:mvn:com.jcraft/jsch/0.1.51 wrap:mvn:org.jsoup/jsoup/${jsoupVersion} mvn:org.opennms.protocols/org.opennms.protocols.xml/${project.version} + mvn:org.opennms.features.distributed/org.opennms.features.distributed.kv-store.api/${project.version} bsf @@ -1077,7 +1061,11 @@ mvn:org.opennms.features/org.opennms.features.karaf-health/${project.version} + commons-io + commons-lang3 dropwizard-metrics + opennms-util + mvn:io.vavr/vavr/0.10.0 mvn:org.opennms.core.health/org.opennms.core.health.api/${project.version} mvn:org.opennms.core.health/org.opennms.core.health.impl/${project.version} mvn:org.opennms.core.health/org.opennms.core.health.shell/${project.version} @@ -1322,7 +1310,6 @@
The Vaadin web application framework including some addons and osgi related packages.
- http-whiteboard wrap:mvn:com.google.gwt/gwt-elemental/${gwtVersion} wrap:mvn:com.google.gwt/gwt-user/${gwtVersion}/$Export-Package=com.google.* mvn:com.vaadin.external/gentyref/1.2.0.vaadin1 @@ -1666,6 +1653,14 @@ mvn:org.opennms.core.grpc/org.opennms.core.grpc.osgi/${project.version} mvn:org.opennms.core.ipc.grpc/org.opennms.core.ipc.grpc.common/${project.version} mvn:org.opennms.core.ipc.grpc/org.opennms.core.ipc.grpc.server/${project.version} + opennms-core-ipc-twin-grpc-publisher +
+ + + opennms-core-ipc-twin-common + mvn:org.opennms.core.grpc/org.opennms.core.grpc.osgi/${project.version} + mvn:org.opennms.core.ipc.twin.grpc/org.opennms.core.ipc.twin.grpc.common/${project.version} + mvn:org.opennms.core.ipc.twin.grpc/org.opennms.core.ipc.twin.grpc.publisher/${project.version} @@ -1766,4 +1761,76 @@ mvn:org.opennms.features/org.opennms.features.perspectivepoller/${project.version} + + mvn:org.opennms.features/org.opennms.features.timeseries.shell/${project.version} + + + + opennms-bridge-http-service + + + + mvn:javax.servlet/javax.servlet-api/3.1.0 + mvn:org.apache.felix/org.apache.felix.http.bridge/${felixBridgeVersion} + http-service;provider:=pax-http + + webconsole + mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.http/${karafVersion} + + + + + camel-blueprint + camel-jms + opennms-core-camel + opennms-core-ipc-twin-common + mvn:org.opennms.core.ipc.twin.jms/org.opennms.core.ipc.twin.jms.subscriber/${project.version} + + + + guava + json-patch + mvn:com.google.protobuf/protobuf-java/${protobufVersion} + mvn:org.opennms.core.ipc.twin/org.opennms.core.ipc.twin.api/${project.version} + mvn:org.opennms.core.ipc.twin/org.opennms.core.ipc.twin.common/${project.version} + + + + mvn:com.fasterxml.jackson.core/jackson-core/2.11.0 + mvn:com.fasterxml.jackson.core/jackson-annotations/2.11.0 + mvn:com.fasterxml.jackson.core/jackson-databind/2.11.0 + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsr305/3.0.2_1 + wrap:mvn:com.github.java-json-tools/btf/1.3 + wrap:mvn:com.github.java-json-tools/msg-simple/1.2 + wrap:mvn:com.github.java-json-tools/jackson-coreutils/2.0$overwrite=merge&Import-Package=*; + wrap:mvn:com.github.java-json-tools/json-patch/1.13$overwrite=merge&Import-Package=*;resolution:=optional&Export-Package=com.github.fge.jsonpatch.diff,com.github.fge.jsonpatch + + + + opennms-core-ipc-sink-camel + opennms-core-ipc-rpc-jms + opennms-core-ipc-twin-jms + + + opennms-core-ipc-sink-kafka + opennms-core-ipc-rpc-kafka + opennms-core-ipc-twin-kafka + + + + opennms-kafka + opennms-core-ipc-twin-common + mvn:org.opennms.core.ipc.common/org.opennms.core.ipc.common.kafka/${project.version} + mvn:org.opennms.core.ipc.twin.kafka/org.opennms.core.ipc.twin.kafka.common/${project.version} + mvn:org.opennms.core/org.opennms.core.sysprops/${project.version} + mvn:com.google.protobuf/protobuf-java/${protobufVersion} + + + opennms-core-ipc-twin-kafka-common + mvn:org.opennms.core.ipc.twin.kafka/org.opennms.core.ipc.twin.kafka.subscriber/${project.version} + + + + mvn:org.opennms.core.ipc.twin/org.opennms.core.ipc.twin.shell/${project.version} + diff --git a/container/features/src/main/resources/karaf/spring-legacy.xml b/container/features/src/main/resources/karaf/spring-legacy.xml deleted file mode 100644 index c9fad267265d..000000000000 --- a/container/features/src/main/resources/karaf/spring-legacy.xml +++ /dev/null @@ -1,781 +0,0 @@ - - - - - - - mvn:org.ops4j.pax.web/pax-web-features/${paxWebVersion}/xml/features - - - mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/standard - - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.cglib/3.2.9_1 - mvn:org.springframework.osgi/spring-osgi-io/1.2.1 - mvn:org.springframework.osgi/spring-osgi-core/1.2.1 - mvn:org.springframework.osgi/spring-osgi-extender/1.2.1 - mvn:org.springframework.osgi/spring-osgi-annotation/1.2.1 - - deployer - mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.spring/4.2.11 - - - bundle - mvn:org.apache.karaf.bundle/org.apache.karaf.bundle.springstate/4.2.11 - - - - - spring-dm - spring-web - http - mvn:org.springframework.osgi/spring-osgi-web/1.2.1 - - - - - - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 - mvn:org.springframework/spring-core/3.1.4.RELEASE - mvn:org.springframework/spring-asm/3.1.4.RELEASE - mvn:org.springframework/spring-expression/3.1.4.RELEASE - mvn:org.springframework/spring-beans/3.1.4.RELEASE - mvn:org.springframework/spring-aop/3.1.4.RELEASE - mvn:org.springframework/spring-context/3.1.4.RELEASE - mvn:org.springframework/spring-context-support/3.1.4.RELEASE - - - - spring - mvn:org.springframework/spring-aspects/3.1.4.RELEASE - - - - spring - mvn:org.springframework/spring-instrument/3.1.4.RELEASE - - - - spring-tx - mvn:org.springframework/spring-jdbc/3.1.4.RELEASE - - - - spring-tx - mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 - mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 - mvn:org.springframework/spring-jms/3.1.4.RELEASE - - - - spring-web - war - mvn:commons-collections/commons-collections/3.2.2 - mvn:commons-beanutils/commons-beanutils/1.9.4 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.struts/1.3.10_1 - mvn:org.springframework/spring-struts/3.1.4.RELEASE - - - - spring - mvn:org.springframework/spring-test/3.1.4.RELEASE - - - - spring-jdbc - mvn:org.springframework/spring-orm/3.1.4.RELEASE - - - - spring - mvn:org.springframework/spring-oxm/3.1.4.RELEASE - - - - spring - mvn:org.springframework/spring-tx/3.1.4.RELEASE - - - - spring - http - mvn:org.springframework/spring-web/3.1.4.RELEASE - mvn:org.springframework/spring-webmvc/3.1.4.RELEASE - - - - wrap - spring-web - wrap:mvn:javax.portlet/portlet-api/2.0$Export-Package=javax.portlet.*;version=2.0 - mvn:org.springframework/spring-webmvc-portlet/3.1.4.RELEASE - - - - - - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/3.2.18.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/3.2.18.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/3.2.18.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/3.2.18.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/3.2.18.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/3.2.18.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/3.2.18.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/3.2.18.RELEASE_1 - - - - spring-tx - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/3.2.18.RELEASE_1 - - - - spring-tx - mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 - mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/3.2.18.RELEASE_1 - - - - spring-web - war - mvn:commons-collections/commons-collections/3.2.2 - mvn:commons-beanutils/commons-beanutils/1.9.4 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.struts/1.3.10_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-struts/3.2.18.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/3.2.18.RELEASE_1 - - - - spring-jdbc - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/3.2.18.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/3.2.18.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/3.2.18.RELEASE_1 - - - - spring - http - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/3.2.18.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/3.2.18.RELEASE_1 - - - - wrap - spring-web - wrap:mvn:javax.portlet/portlet-api/2.0$Export-Package=javax.portlet.*;version=2.0 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc-portlet/3.2.18.RELEASE_1 - - - - - - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/4.0.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/4.0.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/4.0.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/4.0.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/4.0.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/4.0.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/4.0.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/4.0.9.RELEASE_1 - - - - spring-tx - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/4.0.9.RELEASE_1 - - - - spring-tx - mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 - mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/4.0.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/4.0.9.RELEASE_1 - - - - spring-jdbc - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/4.0.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/4.0.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/4.0.9.RELEASE_1 - - - - spring - http - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/4.0.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/4.0.9.RELEASE_1 - - - - wrap - spring-web - wrap:mvn:javax.portlet/portlet-api/2.0$Export-Package=javax.portlet.*;version=2.0 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc-portlet/4.0.9.RELEASE_1 - - - - spring-web - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/4.0.9.RELEASE_1 - - - - - - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/4.1.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/4.1.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/4.1.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/4.1.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/4.1.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/4.1.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/4.1.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/4.1.9.RELEASE_1 - - - - spring-tx - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/4.1.9.RELEASE_1 - - - - spring-tx - mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 - mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/4.1.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/4.1.9.RELEASE_1 - - - - spring-jdbc - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/4.1.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/4.1.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/4.1.9.RELEASE_1 - - - - spring - http - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/4.1.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/4.1.9.RELEASE_1 - - - - wrap - spring-web - wrap:mvn:javax.portlet/portlet-api/2.0$Export-Package=javax.portlet.*;version=2.0 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc-portlet/4.1.9.RELEASE_1 - - - - spring-web - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/4.1.9.RELEASE_1 - - - - - - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/4.2.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/4.2.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/4.2.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/4.2.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/4.2.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/4.2.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/4.2.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/4.2.9.RELEASE_1 - - - - spring-tx - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/4.2.9.RELEASE_1 - - - - spring-tx - mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 - mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/4.2.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-messaging/4.2.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/4.2.9.RELEASE_1 - - - - spring-jdbc - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/4.2.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/4.2.9.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/4.2.9.RELEASE_1 - - - - spring - http - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/4.2.9.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/4.2.9.RELEASE_1 - - - - wrap - spring-web - wrap:mvn:javax.portlet/portlet-api/2.0$Export-Package=javax.portlet.*;version=2.0 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc-portlet/4.2.9.RELEASE_1 - - - - spring-web - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/4.2.9.RELEASE_1 - - - - - - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/4.3.30.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/4.3.30.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/4.3.30.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/4.3.30.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/4.3.30.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/4.3.30.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/4.3.30.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/4.3.30.RELEASE_1 - - - - spring-tx - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/4.3.30.RELEASE_1 - - - - spring-tx - mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 - mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/4.3.30.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-messaging/4.3.30.RELEASE_1 - - - - spring - mvn:javax.websocket/javax.websocket-api/1.1 - mvn:org.apache.httpcomponents/httpcore-osgi/4.4.6 - mvn:org.apache.httpcomponents/httpclient-osgi/4.5.2 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/4.3.30.RELEASE_1 - - - - spring-jdbc - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/4.3.30.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/4.3.30.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/4.3.30.RELEASE_1 - - - - spring - http - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/4.3.30.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/4.3.30.RELEASE_1 - - - - wrap - spring-web - wrap:mvn:javax.portlet/portlet-api/2.0$Export-Package=javax.portlet.*;version=2.0 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc-portlet/4.3.30.RELEASE_1 - - - - mvn:javax.websocket/javax.websocket-api/1.1 - spring-web - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/4.3.30.RELEASE_1 - - - - - - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/5.0.20.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/5.0.20.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/5.0.20.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/5.0.20.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/5.0.20.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/5.0.20.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/5.0.20.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/5.0.20.RELEASE_1 - - - - spring-tx - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/5.0.20.RELEASE_1 - - - - spring-tx - mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 - mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/5.0.20.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-messaging/5.0.20.RELEASE_1 - - - - spring - mvn:javax.websocket/javax.websocket-api/1.1 - mvn:org.apache.httpcomponents/httpcore-osgi/4.4.6 - mvn:org.apache.httpcomponents/httpclient-osgi/4.5.2 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/5.0.20.RELEASE_1 - - - - spring-jdbc - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/5.0.20.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/5.0.20.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/5.0.20.RELEASE_1 - - - - spring - http - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/5.0.20.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/5.0.20.RELEASE_1 - - - - mvn:javax.websocket/javax.websocket-api/1.1 - spring-web - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/5.0.20.RELEASE_1 - - - - - - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/5.1.20.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/5.1.20.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/5.1.20.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/5.1.20.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/5.1.20.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/5.1.20.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/5.1.20.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/5.1.20.RELEASE_1 - - - - spring-tx - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/5.1.20.RELEASE_1 - - - - spring-tx - mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 - mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/5.1.20.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-messaging/5.1.20.RELEASE_1 - - - - spring - mvn:javax.websocket/javax.websocket-api/1.1 - mvn:org.apache.httpcomponents/httpcore-osgi/4.4.6 - mvn:org.apache.httpcomponents/httpclient-osgi/4.5.2 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/5.1.20.RELEASE_1 - - - - spring-jdbc - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/5.1.20.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/5.1.20.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/5.1.20.RELEASE_1 - - - - spring - http - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/5.1.20.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/5.1.20.RELEASE_1 - - - - mvn:javax.websocket/javax.websocket-api/1.1 - spring-web - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/5.1.20.RELEASE_1 - - - - - - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/5.2.13.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/5.2.13.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/5.2.13.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/5.2.13.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/5.2.13.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/5.2.13.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/5.2.13.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/5.2.13.RELEASE_1 - - - - spring-tx - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/5.2.13.RELEASE_1 - - - - spring-tx - mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 - mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/5.2.13.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-messaging/5.2.13.RELEASE_1 - - - - spring - mvn:javax.websocket/javax.websocket-api/1.1 - mvn:org.apache.httpcomponents/httpcore-osgi/4.4.6 - mvn:org.apache.httpcomponents/httpclient-osgi/4.5.2 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/5.2.13.RELEASE_1 - - - - spring-jdbc - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/5.2.13.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/5.2.13.RELEASE_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/5.2.13.RELEASE_1 - - - - spring - http - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/5.2.13.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/5.2.13.RELEASE_1 - - - - mvn:javax.websocket/javax.websocket-api/1.1 - spring-web - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/5.2.13.RELEASE_1 - - - - - - war - spring-web - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/1.9.5_1 - mvn:org.springframework.security/spring-security-core/3.1.4.RELEASE - mvn:org.springframework.security/spring-security-config/3.1.4.RELEASE - mvn:org.springframework.security/spring-security-web/3.1.4.RELEASE - mvn:org.springframework.security/spring-security-acl/3.1.4.RELEASE - mvn:org.springframework.security/spring-security-taglibs/3.1.4.RELEASE - - - - war - spring-web - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/1.9.5_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-core/4.2.4.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-config/4.2.4.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-web/4.2.4.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-acl/4.2.4.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-taglibs/4.2.4.RELEASE_1 - - - - war - spring-jdbc - spring-tx - spring-web - mvn:javax.annotation/javax.annotation-api/1.3 - mvn:com.fasterxml.jackson.core/jackson-core/2.10.5 - mvn:com.fasterxml.jackson.core/jackson-annotations/2.10.5 - mvn:com.fasterxml.jackson.core/jackson-databind/2.10.5 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/1.9.5_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-core/5.3.1.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-config/5.3.1.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-web/5.3.1.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-acl/5.3.1.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-taglibs/5.3.1.RELEASE_1 - - - diff --git a/container/features/src/main/resources/karaf/spring.xml b/container/features/src/main/resources/karaf/spring.xml deleted file mode 100755 index de6d346fa228..000000000000 --- a/container/features/src/main/resources/karaf/spring.xml +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/standard - - - - - - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/5.3.4_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/5.3.4_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/5.3.4_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/5.3.4_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/5.3.4_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/5.3.4_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/5.3.4_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/5.3.4_1 - - - - spring-tx - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/5.3.4_1 - - - - spring-tx - mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 - mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/5.3.4_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-messaging/5.3.4_1 - - - - spring - mvn:javax.websocket/javax.websocket-api/1.1 - mvn:org.apache.httpcomponents/httpcore-osgi/4.4.6 - mvn:org.apache.httpcomponents/httpclient-osgi/4.5.2 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/5.3.4_1 - - - - spring-jdbc - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/5.3.4_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/5.3.4_1 - - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/5.3.4_1 - - - - spring - http - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/5.3.4_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/5.3.4_1 - - - - mvn:javax.websocket/javax.websocket-api/1.1 - spring-web - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/5.3.4_1 - - - - - - war - spring-jdbc - spring-tx - spring-web - mvn:javax.annotation/javax.annotation-api/1.3 - mvn:com.fasterxml.jackson.core/jackson-core/2.10.5 - mvn:com.fasterxml.jackson.core/jackson-annotations/2.10.5 - mvn:com.fasterxml.jackson.core/jackson-databind/2.10.5 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/1.9.5_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-core/5.4.2_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-config/5.4.2_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-web/5.4.2_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-acl/5.4.2_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-taglibs/5.4.2_1 - - - - war - spring-jdbc - spring-tx - spring-web - mvn:com.fasterxml.jackson.core/jackson-core/2.10.5 - mvn:com.fasterxml.jackson.core/jackson-annotations/2.10.5 - mvn:com.fasterxml.jackson.core/jackson-databind/2.10.5 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/1.9.5_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-core/5.1.5.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-config/5.1.5.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-web/5.1.5.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-acl/5.1.5.RELEASE_1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-taglibs/5.1.5.RELEASE_1 - - - - - - aries-blueprint - spring - mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.spring/0.6.0 - mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.spring.extender/0.4.0 - - - diff --git a/container/features/src/main/resources/karaf/standard.xml b/container/features/src/main/resources/karaf/standard.xml deleted file mode 100644 index 8a9d0de0da45..000000000000 --- a/container/features/src/main/resources/karaf/standard.xml +++ /dev/null @@ -1,1770 +0,0 @@ - - - - - - - mvn:org.ops4j.pax.web/pax-web-features/${paxWebVersion}/xml/features - - - - mvn:org.apache.felix/org.apache.felix.framework.security/2.6.1 - - - - jaas-boot - aries-proxy - mvn:org.apache.karaf.service/org.apache.karaf.service.guard/4.2.11 - - - - - mvn:org.ow2.asm/asm/9.1 - mvn:org.ow2.asm/asm-util/9.1 - mvn:org.ow2.asm/asm-tree/9.1 - mvn:org.ow2.asm/asm-analysis/9.1 - mvn:org.ow2.asm/asm-commons/9.1 - mvn:org.apache.aries.proxy/org.apache.aries.proxy/1.1.9 - - - - aries-proxy - mvn:org.apache.aries/org.apache.aries.util/1.1.3 - mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core.compatibility/1.0.0 - mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.api/1.0.1 - mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.cm/1.3.2 - mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core/1.10.3 - - bundle - mvn:org.apache.karaf.bundle/org.apache.karaf.bundle.blueprintstate/4.2.11 - - - osgi.service;effective:=active;objectClass=org.apache.aries.blueprint.services.ParserService, - osgi.extender; osgi.extender="osgi.blueprint";uses:="org.osgi.service.blueprint.container,org.osgi.service.blueprint.reflect";version:Version="1.0" - - - - - mvn:org.apache.karaf.features/org.apache.karaf.features.extension/4.2.11 - mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.2.11 - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# This file describes the features repository URL -# It could be directly installed using feature:repo-add command -# -enterprise=mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features -enterprise-legacy=mvn:org.apache.karaf.features/enterprise-legacy/${karaf.version}/xml/features -spring=mvn:org.apache.karaf.features/spring/${karaf.version}/xml/features -spring-legacy=mvn:org.apache.karaf.features/spring-legacy/${karaf.version}/xml/features -cellar=mvn:org.apache.karaf.cellar/apache-karaf-cellar/RELEASE/xml/features -cave=mvn:org.apache.karaf.cave/apache-karaf-cave/RELEASE/xml/features -camel=mvn:org.apache.camel.karaf/apache-camel/RELEASE/xml/features -camel-extras=mvn:org.apache-extras.camel-extra.karaf/camel-extra/RELEASE/xml/features -cxf=mvn:org.apache.cxf.karaf/apache-cxf/RELEASE/xml/features -cxf-dosgi=mvn:org.apache.cxf.dosgi/cxf-dosgi/RELEASE/xml/features -cxf-dosgi-samples=mvn:org.apache.cxf.dosgi/cxf-dosgi-samples/RELEASE/xml/features -cxf-xkms=mvn:org.apache.cxf.services.xkms/cxf-services-xkms-features/RELEASE/xml -activemq=mvn:org.apache.activemq/activemq-karaf/RELEASE/xml/features -jclouds=mvn:org.apache.jclouds.karaf/jclouds-karaf/RELEASE/xml/features -openejb=mvn:org.apache.openejb/openejb-feature/RELEASE/xml/features -wicket=mvn:org.ops4j.pax.wicket/features/RELEASE/xml/features -hawtio=mvn:io.hawt/hawtio-karaf/RELEASE/xml/features -pax-cdi=mvn:org.ops4j.pax.cdi/pax-cdi-features/RELEASE/xml/features -pax-jdbc=mvn:org.ops4j.pax.jdbc/pax-jdbc-features/RELEASE/xml/features -pax-jms=mvn:org.ops4j.pax.jms/pax-jms-features/RELEASE/xml/features -pax-jpa=mvn:org.ops4j.pax.jpa/pax-jpa-features/RELEASE/xml/features -pax-transx=mvn:org.ops4j.pax.transx/pax-transx-features/RELEASE/xml/features -pax-keycloak=mvn:org.ops4j.pax.keycloak/pax-keycloak-features/RELEASE/xml/features -pax-web=mvn:org.ops4j.pax.web/pax-web-features/RELEASE/xml/features -pax-wicket=mvn:org.ops4j.pax.wicket/pax-wicket-features/RELEASE/xml/features -ecf=http://download.eclipse.org/rt/ecf/RELEASE/site.p2/karaf-features.xml -decanter=mvn:org.apache.karaf.decanter/apache-karaf-decanter/RELEASE/xml/features -eclipsesource-jaxrs=mvn:com.eclipsesource.jaxrs/features/RELEASE/xml/features -aries-jpa=mvn:org.apache.aries.jpa/jpa-features/RELEASE/xml/features -aries-rsa=mvn:org.apache.aries.rsa/rsa-features/RELEASE/xml/features -hibernate=mvn:org.hibernate/hibernate-osgi/RELEASE/xml/karaf -ignite=mvn:org.apache.ignite/ignite-osgi-karaf/RELEASE/xml/features -openjpa=mvn:org.apache.openjpa/openjpa-features/RELEASE/xml/features -artemis=mvn:org.apache.activemq/artemis-features/RELEASE/xml/features -brave=mvn:io.zipkin.brave.karaf/brave-features/RELEASE/xml/features -sling=mvn:org.apache.sling/org.apache.sling.karaf-features/RELEASE/xml/features - - - shell - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# This configuration file defines the ACLs for commands in the feature subshell -# -install = admin -uninstall = admin -start = admin -stop = admin - - mvn:org.apache.karaf.features/org.apache.karaf.features.command/4.2.11 - - - - - - - jaas-boot - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# This configuration file defines the ACLs for commands in the shell subshell -# -nano = admin -exec = admin -new = admin -java = admin - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# This configuration file defines the ACLs for scope bundles -# -features=org.apache.karaf.features.command -jaas=org.apache.karaf.jaas.command -admin=org.apache.karaf.admin.command -osgi=org.apache.karaf.shell.osgi -log=org.apache.karaf.shell.log -packages=org.apache.karaf.shell.packages -config=org.apache.karaf.shell.config -ssh=org.apache.karaf.shell.ssh -shell=org.apache.karaf.shell.commands - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# These properties are used to configure Karaf's ssh shell. -# - -# -# Via sshPort and sshHost you define the address you can login into Karaf. -# -sshPort = ${env:ORG_APACHE_KARAF_SSH_SSHPORT:-8101} -sshHost = ${env:ORG_APACHE_KARAF_SSH_SSHHOST:-0.0.0.0} - -# -# The sshIdleTimeout defines the inactivity timeout to logout the SSH session. -# The sshIdleTimeout is in milliseconds, and the default is set to 30 minutes. -# -sshIdleTimeout = ${env:ORG_APACHE_KARAF_SSH_SSHIDLETIMEOUT:-1800000} - -# -# Define the number of the NIO workers for the sshd server. Default is 2. -# -#nio-workers = 2 - -# -# Define the maximum number of SSH sessions. Default is unlimited. -# -#max-concurrent-sessions = -1 - -# -# sshRealm defines which JAAS domain to use for password authentication. -# -sshRealm = ${env:ORG_APACHE_KARAF_SSH_SSHREALM:-karaf} - -# -# sshRole defines the role required to access the console through ssh -# -sshRole = ${env:ORG_APACHE_KARAF_SSH_SSHROLE:-ssh} - -# -# Defines if the SFTP system is enabled or not in the SSH server -# -sftpEnabled = ${env:ORG_APACHE_KARAF_SSH_SFTPENABLED:-true} - -# -# The location of the hostKey file defines where the private key of the server -# is located. If no file is at the defined location it will be ignored. -# -hostKey = ${karaf.etc}/host.key - -# -# The location of the hostKeyPub file defines where the public key of the server -# is located. If no file is at the defined location it will be ignored. -# -#hostKeyPub = ${karaf.etc}/host.key.pub - -# -# Self defined key size in 1024, 2048, 3072, or 4096 -# If not set, this defaults to 2048. -# -# keySize = 2048 - -# -# Specify host key algorithm, defaults to RSA -# -# algorithm = RSA - -# -# Specify the client log level (default is WARN) -# 0: ERROR -# 1: WARN -# 2: INFO -# 3: DEBUG -# 4: TRACE -# -#logLevel = 1 - -# -# Specify an additional welcome banner to be displayed when a user logs into the server. -# -# welcomeBanner = - -# -# Defines the completion mode on the Karaf shell console. The possible values are: -# - GLOBAL: it's the same behavior as in previous Karaf releases. The completion displays all commands and all aliases -# ignoring if you are in a subshell or not. -# - FIRST: the completion displays all commands and all aliases only when you are not in a subshell. When you are -# in a subshell, the completion displays only the commands local to the subshell. -# - SUBSHELL: the completion displays only the subshells on the root level. When you are in a subshell, the completion -# displays only the commands local to the subshell. -# This property define the default value when you use the Karaf shell console. -# You can change the completion mode directly in the shell console, using shell:completion command. -# -completionMode = ${env:ORG_APACHE_KARAF_SHELL_COMPLETIONMODE:-GLOBAL} - -# -# Override allowed SSH cipher algorithms. -# Default: aes256-ctr,aes192-ctr,aes128-ctr -# -# ciphers = aes256-ctr,aes192-ctr,aes128-ctr - -# -# Override allowed SSH HMAC algorithms. -# Default: hmac-sha2-512,hmac-sha2-256 -# -# macs = hmac-sha2-512,hmac-sha2-256 - -# -# Override allowed SSH key exchange algorithms. -# Default: ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256 -# -# kexAlgorithms = ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256 - -# -# Override moduli-url. -# Default: moduli-url not specified to use the internal one from SSHD -# -# moduli-url = external moduli-url users wanna use - - - jline - mvn:org.apache.karaf.shell/org.apache.karaf.shell.core/4.2.11 - mvn:org.apache.karaf.shell/org.apache.karaf.shell.commands/4.2.11 - - - - - - aries-blueprint - shell - mvn:org.apache.karaf.shell/org.apache.karaf.shell.console/4.2.11 - mvn:org.apache.karaf.shell/org.apache.karaf.shell.table/4.2.11 - - - - mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.features/4.2.11 - - wrap - mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.wrap/4.2.11 - - - req:osgi.extender;filter:="(&(osgi.extender=osgi.blueprint)(version>=1.0))" - mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.blueprint/4.2.11 - - - kar - mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.kar/4.2.11 - - - - - mvn:org.apache.karaf.wrapper/org.apache.karaf.wrapper.core/4.2.11 - - - wrapper - - - - mvn:org.apache.felix/org.osgi.service.obr/1.0.2 - mvn:org.apache.felix/org.apache.felix.bundlerepository/2.0.10 - mvn:org.apache.karaf.obr/org.apache.karaf.obr.core/4.2.11 - mvn:org.ops4j.pax.url/pax-url-obr/2.6.7/jar/uber - - - - jaas-boot - mvn:org.apache.karaf.bundle/org.apache.karaf.bundle.core/4.2.11 - - management - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# JMX ACL specific to the org.apache.karaf:type=bundle,name=* MBean which maps to the Karaf MBean -# to control OSGi bundles. -# -install = manager -refresh = manager -resolve = manager -restart = manager -setStartLevel(java.lang.String, int)[/([1-4])?[0-9]/,/.*/] = admin -setStartLevel = manager -start(java.lang.String)[/([1-4])?[0-9]/] = admin -start = manager -stop(java.lang.String)[/([1-4])?[0-9]/] = admin -stop = manager -uninstall(java.lang.String)["0"] = #this is a comment, no roles can perform this operation -uninstall = admin -update(java.lang.String)[/([1-4])?[0-9]/] = admin -update(java.lang.String,java.lang.String)[/([1-4])?[0-9]/,/.*/] = admin -update = manager - - - - shell - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# This configuration file defines the ACLs for commands in the bundle subshell -# -# For an explanation of the syntax of this file, see the file: -# org.apache.karaf.command.acl.system.cfg -# -# This configuration relies on the fact that 'system' bundles need to be managed -# with the -# -f (--force) -# flag. Operations with -f need admin permission. Most of these operations without -# the 'force' option can be done by a manager. -install = admin -refresh[/.*[-][f].*/] = admin -refresh = manager -restart[/.*[-][f].*/] = admin -restart = manager -start[/.*[-][f].*/] = admin -start = manager -stop[/.*[-][f].*/] = admin -stop = manager -uninstall[/.*[-][f].*/] = admin -uninstall = manager -update[/.*[-][f].*/] = admin -update = manager -watch = admin - - - - - - mvn:org.apache.karaf.config/org.apache.karaf.config.core/4.2.11 - - management - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# JMX ACL specific to the org.apache.karaf:type=config,name=* MBean which maps to the Karaf MBean to interact with the -# OSGi Config Admin service. -# -# For a description of the format of this file, see jmx.acl.cfg -# -# By default, only an admin can make changes to the JMX ACL and shell command rules, but managers can make -# changes to other PIDs. -# -appendProperty(java.lang.String,java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/,/.*/] = admin -appendProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/,/.*/] = admin -appendProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/,/.*/] = admin -appendProperty(java.lang.String,java.lang.String,java.lang.String) = manager -create(java.lang.String)[/jmx[.]acl.*/] = admin -create(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/] = admin -create(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/] = admin -create(java.lang.String) = manager -delete(java.lang.String)[/jmx[.]acl.*/] = admin -delete(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/] = admin -delete(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/] = admin -delete(java.lang.String) = manager -deleteProperty(java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/] = admin -deleteProperty(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/] = admin -deleteProperty(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/] = admin -deleteProperty(java.lang.String,java.lang.String) = manager -setProperty(java.lang.String,java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/,/.*/] = admin -setProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/,/.*/] = admin -setProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/,/.*/] = admin -setProperty(java.lang.String,java.lang.String,java.lang.String) = manager -update(java.lang.String,java.util.Map)[/jmx[.]acl.*/,/.*/] = admin -update(java.lang.String,java.util.Map)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/] = admin -update(java.lang.String,java.util.Map)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/] = admin -update(java.lang.String,java.util.Map) = manager - - - - shell - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# This configuration file defines the ACLs for various commands in the config subshell -# -# For an explanation of the syntax of this file, see the file: -# org.apache.karaf.command.acl.system.cfg -# -cancel = manager -delete = admin -edit = manager -edit[/.*jmx[.]acl.*/] = admin -edit[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin -edit[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin -property-append = manager -property-append[/.*jmx[.]acl.*/] = admin -property-append[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin -property-append[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin -property-delete = manager -property-delete[/.*jmx[.]acl.*/] = admin -property-delete[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin -property-delete[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin -property-set = manager -property-set[/.*jmx[.]acl.*/] = admin -property-set[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin -property-set[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin -update = manager - - - - - - mvn:org.apache.karaf.diagnostic/org.apache.karaf.diagnostic.core/4.2.11 - - mvn:org.apache.karaf.diagnostic/org.apache.karaf.diagnostic.boot/4.2.11 - - - - - mvn:org.apache.karaf.instance/org.apache.karaf.instance.core/4.2.11 - - - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# Boolean enabling / disabling encrypted passwords -# -encryption.enabled = ${env:ORG_APACHE_KARAF_JAAS_ENCRYPTION_ENABLED:-false} - -# -# Encryption Service name -# the default one is 'basic' -# a more powerful one named 'jasypt' is available -# when installing the encryption feature -# -encryption.name = ${env:ORG_APACHE_KARAF_JAAS_ENCRYPTION_NAME:-basic} - -# -# Encryption prefix -# -encryption.prefix = {CRYPT} - -# -# Encryption suffix -# -encryption.suffix = {CRYPT} - -# -# Set the encryption algorithm to use in Karaf JAAS login module -# Supported encryption algorithms follow: -# MD2 -# MD5 -# SHA-1 -# SHA-256 -# SHA-384 -# SHA-512 -# -encryption.algorithm = ${env:ORG_APACHE_KARAF_JAAS_ENCRYPTION_ALGORITHM:-MD5} - -# -# Encoding of the encrypted password. -# Can be: -# hexadecimal -# base64 -# -encryption.encoding = ${env:ORG_APACHE_KARAF_JAAS_ENCRYPTION_ENCODING:-hexadecimal} - - jaas-boot - mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.config/4.2.11 - mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.modules/4.2.11 - - aries-blueprint - mvn:org.apache.karaf.jaas.blueprint/org.apache.karaf.jaas.blueprint.config/4.2.11 - - - shell - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# This configuration file defines the ACLs for commands in the jaas subshell -# Jaas commands commands have no effect until update is called. -update = admin - - mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.command/4.2.11 - - - - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# This configuration file is used to configure the default values for the log:display -# and log:exception-display commands. -# - -# -# The number of log statements to be displayed using log:display. It also defines the number -# of lines searched for exceptions using log:exception-display. You can override this value -# at runtime using -n in log:display. -# -size = "500" - -# -# The pattern used to format the log statement when using log:display. This pattern is according -# to the log4j layout. You can override this parameter at runtime using log:display with -p. -# -color.fatal = "bright red" -color.error = "bright red" -color.warn = "bright yellow" -color.info = "bright green" -color.debug = "cyan" -color.trace = "cyan" -pattern = "\u001b[90m%d{HH:mm:ss.SSS}\u001b[0m %h{%p}{FATAL=${color.fatal}, ERROR=${color.error}, WARN=${color.warn}, INFO=${color.info}, DEBUG=${color.debug}, TRACE=${color.trace}} \u001b[90m[%t]\u001b[0m %m%n" - - mvn:org.apache.karaf.log/org.apache.karaf.log.core/4.2.11 - - - - mvn:org.apache.karaf.package/org.apache.karaf.package.core/4.2.11 - - - - mvn:org.apache.karaf.service/org.apache.karaf.service.core/4.2.11 - - - - mvn:org.apache.karaf.system/org.apache.karaf.system.core/4.2.11 - - shell - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# This configuration file defines the ACLs for commands in the system subshell -# -property = admin -shutdown = admin -start-level[/.*[1-9][0-9][0-9]+.*/] = manager # manager can set startlevels above 100 -start-level[/[^0-9]*/] = viewer # viewer can obtain the current start level -start-level = admin # admin can set any start level, including < 100 - - - - - - - - opennms-bridge-http-service - http-service - - - - mvn:org.apache.felix/org.apache.felix.httplite.complete/0.1.6 - http-service;provider:=felix-httplite - - - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -org.osgi.service.http.port=${env:ORG_APACHE_FELIX_HTTP_ORG_OSGI_SERVICE_HTTP_PORT:-8181} - - mvn:org.apache.felix/org.apache.felix.http.servlet-api/1.1.2 - mvn:org.apache.felix/org.apache.felix.http.jetty/4.1.4 - mvn:org.apache.felix/org.apache.felix.http.whiteboard/4.0.0 - http-service;provider:=felix-http - - webconsole - mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.http/4.2.11 - - - - - - - - mvn:javax.servlet/javax.servlet-api/3.1.0 - mvn:org.apache.felix/org.apache.felix.http.bridge/${felixBridgeVersion} - - http-service;provider:=pax-http - - webconsole - mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.http/4.2.11 - - - - - http - - opennms-http-whiteboard - - - - http - pax-war - mvn:org.apache.karaf.web/org.apache.karaf.web.core/4.2.11 - - - - opennms-bridge-http-service - - - - - - - org.ops4j.pax.url.war.importPaxLoggingPackages=true - - - opennms-http-whiteboard - mvn:javax.el/javax.el-api/3.0.0 - - mvn:org.ops4j.pax.web/pax-web-extender-war/7.2.19 - mvn:org.ops4j.pax.web/pax-web-extender-whiteboard/7.2.19 - mvn:org.ops4j.pax.web/pax-web-deployer/7.2.19 - mvn:org.ops4j.pax.url/pax-url-war/2.6.1/jar/uber - - - - mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/2.9.0 - mvn:javax.servlet/javax.servlet-api/3.1.0 - mvn:javax.mail/mail/1.4.7 - mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 - mvn:javax.annotation/javax.annotation-api/1.3 - mvn:org.apache.geronimo.specs/geronimo-jaspic_1.0_spec/1.1 - mvn:org.ow2.asm/asm/9.1 - mvn:org.ow2.asm/asm-util/9.1 - mvn:org.ow2.asm/asm-commons/9.1 - mvn:org.ow2.asm/asm-tree/9.1 - mvn:org.ow2.asm/asm-analysis/9.1 - mvn:org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/1.3.2 - mvn:org.eclipse.jetty/jetty-continuation/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-http/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-io/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-jaspi/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-plus/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-jndi/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-rewrite/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-security/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-server/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-servlet/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-servlets/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-util/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-util-ajax/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-webapp/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-jaas/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-xml/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-client/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-deploy/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-jmx/9.4.38.v20210224 - mvn:org.eclipse.jetty/jetty-proxy/9.4.38.v20210224 - mvn:org.eclipse.jetty.websocket/websocket-server/9.4.38.v20210224 - mvn:org.eclipse.jetty.websocket/websocket-client/9.4.38.v20210224 - mvn:org.eclipse.jetty.websocket/websocket-common/9.4.38.v20210224 - mvn:org.eclipse.jetty.websocket/websocket-servlet/9.4.38.v20210224 - mvn:org.eclipse.jetty.websocket/websocket-api/9.4.38.v20210224 - mvn:org.eclipse.jetty.websocket/javax-websocket-server-impl/9.4.38.v20210224 - mvn:org.eclipse.jetty.websocket/javax-websocket-client-impl/9.4.38.v20210224 - mvn:javax.websocket/javax.websocket-api/1.1 - - - - - - mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/2.9.0 - mvn:javax.servlet/javax.servlet-api/3.1.0 - mvn:javax.mail/mail/1.4.7 - mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 - mvn:org.apache.geronimo.specs/geronimo-annotation_1.1_spec/1.0.1 - mvn:org.apache.geronimo.specs/geronimo-jaspic_1.0_spec/1.1 - mvn:org.eclipse.jetty.aggregate/jetty-all-server/8.1.14.v20131031 - - - - mvn:org.apache.karaf.kar/org.apache.karaf.kar.core/4.2.11 - - shell - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# This configuration file defines the ACLs for commands in the kar subshell -# -# For an explanation of the syntax of this file, see the file: -# org.apache.karaf.command.acl.system.cfg -# -install = admin -uninstall = admin - - - - - - jaas-boot - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# The JAAS realm name to use for authentication -realm=${env:ORG_APACHE_KARAF_WEBCONSOLE_REALM:-karaf} - -# The role required to access the WebConsole -role=${env:ORG_APACHE_KARAF_WEBCONSOLE_ROLE:-admin} - - http - mvn:org.apache.felix/org.apache.felix.metatype/1.2.4 - mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.console/4.2.11 - mvn:org.apache.felix/org.apache.felix.webconsole.plugins.memoryusage/1.0.10 - - instance - mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.instance/4.2.11 - - - shell - mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.gogo/4.2.11 - - - feature - mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.features/4.2.11 - - - - - shell - jaas - mvn:org.apache.sshd/sshd-osgi/2.5.1 - mvn:org.apache.sshd/sshd-scp/2.5.1 - mvn:org.apache.sshd/sshd-sftp/2.5.1 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.not-yet-commons-ssl/0.3.11_1 - mvn:org.bouncycastle/bcprov-jdk15on/1.66 - mvn:org.bouncycastle/bcpkix-jdk15on/1.66 - mvn:org.apache.karaf.shell/org.apache.karaf.shell.ssh/4.2.11 - - - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# Generic JMX ACL -# -# This file defines the roles required for MBean operations for MBeans that -# do not have this defined explicitly. -# -# The definition of ACLs for JMX operations works as follows: -# -# The required roles for JMX operations are defined in configuration files -# read via OSGi ConfigAdmin. -# -# JMX RBAC-related configuration is prefixed with jmx.acl and based on the -# JMX ObjectName that it applies to. For example specific configuration for -# an MBean with the following objectName: foo.bar:type=Test can be placed in -# a configuration file called jmx.acl.foo.bar.Test.cfg. More generic -# configuration can be placed in the domain (e.g. jmx.acl.foo.bar.cfg) or -# at the top level (jmx.acl.cfg). A simple configuration file looks like -# this: -# test : admin -# getVal : manager, viewer -# -# The system looks for required roles using the following process: -# The most specific configuration file/pid is tried first. E.g. in the -# above example the jmx.acl.foo.bar.Test.cfg is looked at first. In this -# configuration, the system looks for a: -# 1. Specific match for the current invocation, e.g. test(int)["17"] : role1 -# 2. Reg exp match for the current invocation, e.g. test(int)[/[0-9]/] : role2 -# In both cases the passed argument is converted to a String for the -# comparison. -# If any of the above match all the roles with matching definitions -# are collected and allowed. If no matches are found the following is tried: -# 3. Signature match for the invocation, e.g. test(int) : role3. If -# matched the associated roles are used. -# 4. Method name match for the invocation, e.g. test : role4. If matched -# the associated roles are used. -# 5. A method name wildcard match, e.g. te* : role5. For all the -# wildcard matches found in the current configuration file, the roles -# associated with the longest match are used. So if you have te* and * and -# the method invoked is 'test', then the roles defined with te* are used, -# not the ones defined with *. -# If no matching definition is found in the current configuration file, a -# more general configuration file is looked for. So jmx.acl.foo.bar.cfg is -# tried next, this matches the domain of the MBean. If there is no match -# found in the domain the most generic configuration file is consulted -# (jmx.acl.cfg). -# If a matching definition is found, this is used and the process will not -# look for any other matching definitions. So the most specific definition -# always takes precedence. -# -list* = viewer -get* = viewer -is* = viewer -set* = admin -* = admin - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# JMX ACL specific to the org.apache.karaf:type=security,area=jmx MBean which -# can be used to find out whether the currently logged in JMX user can invoke -# the requested JMX operations. -# -# For a description of the format of this file, see jmx.acl.cfg -# -canInvoke = viewer - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# JMX ACL specific to the java.lang.Memory MBean -# -# For a description of the format of this file, see jmx.acl.cfg -# -gc = manager - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# JMX ACL specific to osgi.compendium.cm MBean -# -# For a description of the format of this file, see jmx.acl.cfg -# -# This configuration file configures the management of ConfigAdmin via the standard ConfigAdmin MBean -# Such that only an admin can make changes to the JMX ACL rules, but managers can make -# changes to other PIDs. -# -createFactoryConfiguration(java.lang.String)[/jmx[.]acl.*/] = admin -createFactoryConfiguration(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin -createFactoryConfiguration(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin -createFactoryConfiguration(java.lang.String) = manager -createFactoryConfigurationForLocation(java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/] = admin -createFactoryConfigurationForLocation(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl[.].+/,/.*/] = admin -createFactoryConfigurationForLocation(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl[.].+/,/.*/] = admin -createFactoryConfigurationForLocation(java.lang.String,java.lang.String) = manager -delete(java.lang.String)[/jmx[.]acl.*/] = admin -delete(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin -delete(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin -delete(java.lang.String) = manager -deleteConfigurations = admin -deleteForLocation(java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/] = admin -deleteForLocation(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl[.].+/,/.*/] = admin -deleteForLocation(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl[.].+/,/.*/] = admin -deleteForLocation(java.lang.String,java.lang.String) = manager -update(java.lang.String,javax.management.openmbean.TabularData)[/jmx[.]acl.*/,/.*/] = admin -update(java.lang.String,javax.management.openmbean.TabularData)[/org[.]apache[.]karaf[.]command[.]acl[.].+/,/.*/] = admin -update(java.lang.String,javax.management.openmbean.TabularData)[/org[.]apache[.]karaf[.]service[.]acl[.].+/,/.*/] = admin -update(java.lang.String,javax.management.openmbean.TabularData) = manager -updateForLocation(java.lang.String,java.lang.String,javax.management.openmbean.TabularData)[/jmx[.]acl.*/,/.*/,/.*/] = admin -updateForLocation(java.lang.String,java.lang.String,javax.management.openmbean.TabularData)[/org[.]apache[.]karaf[.]command[.]acl[.].+/,/.*/,/.*/] = admin -updateForLocation(java.lang.String,java.lang.String,javax.management.openmbean.TabularData)[/org[.]apache[.]karaf[.]service[.]acl[.].+/,/.*/,/.*/] = admin -updateForLocation(java.lang.String,java.lang.String,javax.management.openmbean.TabularData) = manager - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# The properties in this file define the configuration of Apache Karaf's JMX Management -# - -# -# Port number for RMI registry connection -# -rmiRegistryPort = ${env:ORG_APACHE_KARAF_MANAGEMENT_RMIREGISTRYPORT:-1099} - -# -# Host for RMI registry -# -rmiRegistryHost = ${env:ORG_APACHE_KARAF_MANAGEMENT_RMIREGISTRYHOST:-127.0.0.1} - -# -# Port number for RMI connector server connection -# -rmiServerPort = ${env:ORG_APACHE_KARAF_MANAGEMENT_RMISERVERPORT:-44444} - -# -# Host for RMI connector server -# -rmiServerHost = ${env:ORG_APACHE_KARAF_MANAGEMENT_RMISERVERHOST:-127.0.0.1} - -# -# Name of the JAAS realm used for authentication -# -jmxRealm = ${env:ORG_APACHE_KARAF_MANAGEMENT_JMXREALM:-karaf} - -# -# The service URL for the JMX RMI connector -# -serviceUrl = service:jmx:rmi://${rmiServerHost}:${rmiServerPort}/jndi/rmi://${rmiRegistryHost}:${rmiRegistryPort}/karaf-${karaf.name} - -# -# JMXMP connector enabled -# -jmxmpEnabled = ${env:ORG_APACHE_KARAF_MANAGEMENT_JMXMPENABLED:-false} - -# -# JMXMP connector host name -# -jmxmpHost = ${env:ORG_APACHE_KARAF_MANAGEMENT_JMXMPHOST:-127.0.0.1} - -# -# JMXMP connector port number -# -jmxmpPort = ${env:ORG_APACHE_KARAF_MANAGEMENT_JMXMPPORT:-9999} - -# -# JMXMP connector service URL -# -jmxmpServiceUrl = service:jmx:jmxmp://${jmxmpHost}:${jmxmpPort} - -# -# Whether any threads started for the JMXConnectorServer should be started as daemon threads -# -daemon = ${env:ORG_APACHE_KARAF_MANAGEMENT_DAEMON:-true} - -# -# Whether the JMXConnectorServer should be started in a separate thread -# -threaded = ${env:ORG_APACHE_KARAF_MANAGEMENT_THREADED:-true} - -# -# The ObjectName used to register the JMX RMI connector -# -objectName = connector:name=rmi - -# -# The ObjectName used to register the JMXMP connector -# -jmxmpObjectName = connector:name=jmxmp - -# -# Timeout to lookup for the keystore in case of SSL authentication usage -# -#keyStoreAvailabilityTimeout = 5000 - -# -# The type of authentication -# -#authenticatorType = password - -# -# Enable or not SSL/TLS -# -#secured = false - -# -# Secure algorithm to use -# -#secureAlgorithm = default - -# -# Secure protocol to use -# -#secureProtocol = TLS - -# -# Keystore to use for secure mode -# -#keyStore = karaf.ks - -# -# Alias of the key to use in the keystore -# -#keyAlias = karaf - -# -# Truststore to use for secure mode -# -#trustStore = karaf.ts - -# -# Create the JMX RMI registry -# -#createRmiRegistry = true - -# -# Locate the JMX RMI registry -# -#locateRmiRegistry = true - -# -# Locate an existing MBean server if possible (usefull when Karaf is embedded) -# -#locateExistingMBeanServerIfPossible = true - - jaas - mvn:org.apache.aries/org.apache.aries.util/1.1.3 - mvn:org.apache.karaf.management/org.apache.karaf.management.server/4.2.11 - mvn:org.apache.aries.jmx/org.apache.aries.jmx.api/1.1.5 - mvn:org.apache.aries.jmx/org.apache.aries.jmx.core/1.1.8 - mvn:org.apache.aries.jmx/org.apache.aries.jmx.whiteboard/1.2.0 - - aries-blueprint - mvn:org.apache.aries.jmx/org.apache.aries.jmx.blueprint.api/1.2.0 - mvn:org.apache.aries.jmx/org.apache.aries.jmx.blueprint.core/1.2.0 - - - - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -#============================================================================ -# Configure Karaf Scheduler Properties -#============================================================================ -org.quartz.scheduler.instanceName=${env:ORG_APACHE_KARAF_SCHEDULER_QUARTZ_ORG_QUARTZ_SCHEDULER_INSTANCENAME:-Karaf} -org.quartz.scheduler.instanceId=${env:ORG_APACHE_KARAF_SCHEDULER_QUARTZ_ORG_QUARTZ_SCHEDULER_INSTANCEID:-AUTO} - -#============================================================================ -# Configure ThreadPool -#============================================================================ -org.quartz.threadPool.class=${env:ORG_APACHE_KARAF_SCHEDULER_QUARTZ_ORG_QUARTZ_THREADPOOL_CLASS:-org.quartz.simpl.SimpleThreadPool} -org.quartz.threadPool.threadCount=${env:ORG_APACHE_KARAF_SCHEDULER_QUARTZ_ORG_QUARTZ_THREADPOOL_THREADCOUNT:-30} -org.quartz.threadPool.threadPriority=${env:ORG_APACHE_KARAF_SCHEDULER_QUARTZ_ORG_QUARTZ_THREADPOOL_THREADPRIORITY:-5} - -#============================================================================ -# Configure JobStore -#============================================================================ -org.quartz.jobStore.class=${env:ORG_APACHE_KARAF_SCHEDULER_QUARTZ_ORG_QUARTZ_JOBSTORE_CLASS:-org.quartz.simpl.RAMJobStore} - - mvn:org.apache.karaf.scheduler/org.apache.karaf.scheduler.core/4.2.11 - - - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -org.apache.felix.eventadmin.AddTimestamp=${env:ORG_APACHE_FELIX_EVENTADMIN_IMPL_EVENTADMIN_ORG_APACHE_FELIX_EVENTADMIN_ADDTIMESTAMP:-true} -org.apache.felix.eventadmin.AddSubject=${env:ORG_APACHE_FELIX_EVENTADMIN_IMPL_EVENTADMIN_ORG_APACHE_FELIX_EVENTADMIN_ADDSUBJECT:-true} - - mvn:org.apache.felix/org.apache.felix.metatype/1.2.4 - mvn:org.apache.karaf.services/org.apache.karaf.services.eventadmin/4.2.11 - - shell - mvn:org.apache.karaf/org.apache.karaf.event/4.2.11 - - - webconsole - mvn:org.apache.felix/org.apache.felix.webconsole.plugins.event/1.1.8 - - - - - jaas - mvn:commons-codec/commons-codec/1.15 - mvn:commons-lang/commons-lang/2.6 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt/1.9.3_1 - mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.jasypt/4.2.11 - - aries-blueprint - mvn:org.apache.karaf.jaas.blueprint/org.apache.karaf.jaas.blueprint.jasypt/4.2.11 - - - spring - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt-spring31/1.9.3_1 - - - - - jaas - mvn:org.bouncycastle/bcprov-jdk15on/1.66 - mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-crypto/5.3.1.RELEASE_1 - mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.spring-security-crypto/4.2.11 - - - - mvn:org.osgi/org.osgi.util.function/1.1.0 - mvn:org.osgi/org.osgi.util.promise/1.1.1 - mvn:org.apache.felix/org.apache.felix.metatype/1.2.4 - mvn:org.apache.felix/org.apache.felix.scr/2.1.26 - - management - mvn:org.apache.karaf.scr/org.apache.karaf.scr.management/4.2.11 - - - webconsole - mvn:org.apache.felix/org.apache.felix.inventory/1.0.6 - mvn:org.apache.felix/org.apache.felix.webconsole.plugins.ds/2.1.0 - - - bundle - mvn:org.apache.karaf.scr/org.apache.karaf.scr.state/4.2.11 - - - osgi.service;effective:=active;objectClass=org.apache.felix.scr.ScrService, - osgi.extender;osgi.extender="osgi.component";uses:="org.osgi.service.component";version:Version="1.2.1" - - - - - war - aries-blueprint - mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.webosgi/1.0.1 - - - - mvn:org.ops4j.pax.url/pax-url-wrap/2.6.7/jar/uber - - - - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -profilesDirectory = ${karaf.home}/profiles - - mvn:org.apache.karaf.profile/org.apache.karaf.profile.core/4.2.11 - mvn:org.apache.karaf.tooling/org.apache.karaf.tools.utils/4.2.11 - mvn:commons-io/commons-io/${commonsIoVersion} - - - - http - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -org.jolokia.user=${env:ORG_JOLOKIA_OSGI_ORG_JOLOKIA_USER:-karaf} -org.jolokia.realm=${env:ORG_JOLOKIA_OSGI_ORG_JOLOKIA_REALM:-karaf} -org.jolokia.authMode=${env:ORG_JOLOKIA_OSGI_ORG_JOLOKIA_AUTHMODE:-jaas} - - mvn:org.jolokia/jolokia-osgi/1.6.2 - - - - shell - mvn:org.apache.karaf.maven/org.apache.karaf.maven.core/4.2.11 - mvn:org.apache.commons/commons-lang3/3.11 - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# This configuration file defines the ACLs for maven configuration commands -# -summary[/.*[-][x].*/] = admin -summary = viewer -http-proxy-list[/.*[-][x].*/] = admin -http-proxy-list = viewer -repository-list[/.*[-][x].*/] = admin -repository-list = viewer -http-proxy = admin -password = admin -repository-add = admin -repository-change = admin -repository-remove = admin - - - - - eventadmin - mvn:org.apache.karaf.audit/org.apache.karaf.audit.core/4.2.11 - -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# Security audit configuration -# Only the above 4 loggers are supported -# Supported layouts include: simple, gelf, rfc3164, rfc5424 - -# Queue type -queue.class = java.util.concurrent.ArrayBlockingQueue -# Queue size -queue.size = 256 -# Idle timeout -runner.idle-timeout = 60000 -# Flush timeout -runner.flush-timeout = 100 -# Event filter -# filter = (!(type=log)) - -# File logger -file.enabled = true -file.target = ${karaf.log}/audit.txt -file.encoding = UTF-8 -file.layout.type = simple -# rotating policy: can be 'daily', 'size([0-9]+(kb|mb|gb)?\)' -file.policy = daily -file.files = 32 -file.compress = false - -# Tcp logger -# tcp.enabled = true -# tcp.host = localhost -# tcp.port = 8125 -# tcp.encoding = UTF-8 -# tcp.layout.type = gelf - -# Udp logger -# udp.enabled = true -# udp.host = localhost -# udp.port = 514 -# udp.encoding = UTF-8 -# udp.layout.type = rfc3164 - -# JUL logger -jul.enabled = false -jul.logger = audit -jul.level = info -jul.layout.type = simple - - - - - war - mvn:org.apache.karaf/manual/4.2.11 - - - - wrap - aries-blueprint - shell - shell-compat - feature - jaas - ssh - management - bundle - config - deployer - diagnostic - feature - instance - kar - log - package - service - system - - - - jaas - shell - feature - ssh - management - bundle - config - deployer - diagnostic - instance - kar - log - package - service - system - - - diff --git a/container/features/src/main/resources/spring-legacy.xml b/container/features/src/main/resources/spring-legacy.xml new file mode 100644 index 000000000000..ee7bb6d2e788 --- /dev/null +++ b/container/features/src/main/resources/spring-legacy.xml @@ -0,0 +1,540 @@ + + + mvn:org.ops4j.pax.web/pax-web-features/${paxWebVersion}/xml/features + mvn:org.apache.karaf.features/standard/${karafVersion}/xml/features + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.cglib/3.2.9_1 + + mvn:org.springframework.osgi/spring-osgi-io/1.2.1 + mvn:org.springframework.osgi/spring-osgi-core/1.2.1 + mvn:org.springframework.osgi/spring-osgi-extender/1.2.1 + mvn:org.springframework.osgi/spring-osgi-annotation/1.2.1 + + deployer + mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.spring/4.3.2 + + + bundle + mvn:org.apache.karaf.bundle/org.apache.karaf.bundle.springstate/4.3.2 + + + + + spring-dm + spring-web + mvn:org.springframework.osgi/spring-osgi-web/1.2.1 + osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1" + + + + + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 + + mvn:org.springframework/spring-core/3.1.4.RELEASE + mvn:org.springframework/spring-asm/3.1.4.RELEASE + mvn:org.springframework/spring-expression/3.1.4.RELEASE + mvn:org.springframework/spring-beans/3.1.4.RELEASE + mvn:org.springframework/spring-aop/3.1.4.RELEASE + mvn:org.springframework/spring-context/3.1.4.RELEASE + mvn:org.springframework/spring-context-support/3.1.4.RELEASE + + + + spring + mvn:org.springframework/spring-aspects/3.1.4.RELEASE + + + + spring + mvn:org.springframework/spring-instrument/3.1.4.RELEASE + + + + spring-tx + mvn:org.springframework/spring-jdbc/3.1.4.RELEASE + + + + spring-tx + mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 + mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 + mvn:org.springframework/spring-jms/3.1.4.RELEASE + + + + spring-web + pax-web-war + mvn:commons-collections/commons-collections/3.2.2 + mvn:commons-beanutils/commons-beanutils/1.9.4 + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.struts/1.3.10_1 + + mvn:org.springframework/spring-struts/3.1.4.RELEASE + + + + spring + mvn:org.springframework/spring-test/3.1.4.RELEASE + + + + spring-jdbc + mvn:org.springframework/spring-orm/3.1.4.RELEASE + + + + spring + mvn:org.springframework/spring-oxm/3.1.4.RELEASE + + + + spring + mvn:org.springframework/spring-tx/3.1.4.RELEASE + + + + spring + mvn:javax.servlet/javax.servlet-api/3.1.0 + mvn:org.springframework/spring-web/3.1.4.RELEASE + mvn:org.springframework/spring-webmvc/3.1.4.RELEASE + osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1" + + + + pax-url-wrap + spring-web + + wrap:mvn:javax.portlet/portlet-api/2.0$Export-Package=javax.portlet.*;version=2.0 + + mvn:org.springframework/spring-webmvc-portlet/3.1.4.RELEASE + + + + + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/4.2.9.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/4.2.9.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/4.2.9.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/4.2.9.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/4.2.9.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/4.2.9.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/4.2.9.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/4.2.9.RELEASE_1 + + + + + spring-tx + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/4.2.9.RELEASE_1 + + + + + spring-tx + mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 + mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/4.2.9.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-messaging/4.2.9.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/4.2.9.RELEASE_1 + + + + + spring-jdbc + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/4.2.9.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/4.2.9.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/4.2.9.RELEASE_1 + + + + + spring + http + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/4.2.9.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/4.2.9.RELEASE_1 + + + + + wrap + spring-web + + wrap:mvn:javax.portlet/portlet-api/2.0$Export-Package=javax.portlet.*;version=2.0 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc-portlet/4.2.9.RELEASE_1 + + + + + spring-web + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/4.2.9.RELEASE_1 + + + + + + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/4.3.30.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/4.3.30.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/4.3.30.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/4.3.30.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/4.3.30.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/4.3.30.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/4.3.30.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/4.3.30.RELEASE_1 + + + + + spring-tx + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/4.3.30.RELEASE_1 + + + + + spring-tx + mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 + mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/4.3.30.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-messaging/4.3.30.RELEASE_1 + + + + + spring + mvn:javax.websocket/javax.websocket-api/1.1 + mvn:org.apache.httpcomponents/httpcore-osgi/4.4.6 + mvn:org.apache.httpcomponents/httpclient-osgi/4.5.2 + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/4.3.30.RELEASE_1 + + + + + spring-jdbc + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/4.3.30.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/4.3.30.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/4.3.30.RELEASE_1 + + + + + spring + mvn:javax.servlet/javax.servlet-api/3.1.0 + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/4.3.30.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/4.3.30.RELEASE_1 + + osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1" + + + + pax-url-wrap + spring-web + + wrap:mvn:javax.portlet/portlet-api/2.0$Export-Package=javax.portlet.*;version=2.0 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc-portlet/4.3.30.RELEASE_1 + + + + + mvn:javax.websocket/javax.websocket-api/1.1 + spring-web + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/4.3.30.RELEASE_1 + + + + + + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/5.2.13.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/5.2.13.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/5.2.13.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/5.2.13.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/5.2.13.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/5.2.13.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/5.2.13.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/5.2.13.RELEASE_1 + + + + + spring-tx + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/5.2.13.RELEASE_1 + + + + + spring-tx + mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 + mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/5.2.13.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-messaging/5.2.13.RELEASE_1 + + + + + spring + mvn:javax.websocket/javax.websocket-api/1.1 + mvn:org.apache.httpcomponents/httpcore-osgi/4.4.6 + mvn:org.apache.httpcomponents/httpclient-osgi/4.5.2 + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/5.2.13.RELEASE_1 + + + + + spring-jdbc + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/5.2.13.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/5.2.13.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/5.2.13.RELEASE_1 + + + + + spring + mvn:javax.servlet/javax.servlet-api/3.1.0 + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/5.2.13.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/5.2.13.RELEASE_1 + + osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1" + + + + mvn:javax.websocket/javax.websocket-api/1.1 + spring-web + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/5.2.13.RELEASE_1 + + + + + + + pax-web-war + spring-web + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/1.9.5_1 + + mvn:org.springframework.security/spring-security-core/3.1.4.RELEASE + mvn:org.springframework.security/spring-security-config/3.1.4.RELEASE + mvn:org.springframework.security/spring-security-web/3.1.4.RELEASE + mvn:org.springframework.security/spring-security-acl/3.1.4.RELEASE + mvn:org.springframework.security/spring-security-taglibs/3.1.4.RELEASE + + + + pax-web-war + spring-web + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/1.9.5_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-core/4.2.4.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-config/4.2.4.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-web/4.2.4.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-acl/4.2.4.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-taglibs/4.2.4.RELEASE_1 + + + + + pax-web-war + spring-jdbc + spring-tx + spring-web + mvn:javax.annotation/javax.annotation-api/1.3 + mvn:com.fasterxml.jackson.core/jackson-core/2.11.4 + mvn:com.fasterxml.jackson.core/jackson-annotations/2.11.4 + mvn:com.fasterxml.jackson.core/jackson-databind/2.11.4 + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/1.9.5_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-core/5.3.3.RELEASE_2 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-config/5.3.3.RELEASE_2 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-web/5.3.3.RELEASE_2 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-acl/5.3.3.RELEASE_2 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-taglibs/5.3.3.RELEASE_2 + + + \ No newline at end of file diff --git a/container/features/src/main/resources/spring.xml b/container/features/src/main/resources/spring.xml new file mode 100644 index 000000000000..c326385c0540 --- /dev/null +++ b/container/features/src/main/resources/spring.xml @@ -0,0 +1,121 @@ + + + mvn:org.apache.karaf.features/standard/${karafVersion}/xml/features + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/4.2.9.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/4.2.9.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/4.2.9.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/4.2.9.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/4.2.9.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/4.2.9.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/4.2.9.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/4.2.9.RELEASE_1 + + + + + spring-tx + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/4.2.9.RELEASE_1 + + + + + spring-tx + mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1 + mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1 + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/4.2.9.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-messaging/4.2.9.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/4.2.9.RELEASE_1 + + + + + spring-jdbc + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/4.2.9.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/4.2.9.RELEASE_1 + + + + + spring + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/4.2.9.RELEASE_1 + + + + + spring + http + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/4.2.9.RELEASE_1 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/4.2.9.RELEASE_1 + + + + + wrap + spring-web + + wrap:mvn:javax.portlet/portlet-api/2.0$Export-Package=javax.portlet.*;version=2.0 + + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc-portlet/4.2.9.RELEASE_1 + + + + + spring-web + + mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/4.2.9.RELEASE_1 + + + \ No newline at end of file diff --git a/container/jaas-login-module/pom.xml b/container/jaas-login-module/pom.xml index e6c4fda92e78..f97b23e54a42 100644 --- a/container/jaas-login-module/pom.xml +++ b/container/jaas-login-module/pom.xml @@ -7,7 +7,7 @@ org.opennms org.opennms.container - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.container @@ -53,7 +53,7 @@
org.osgi - org.osgi.core + osgi.core provided diff --git a/container/karaf/README.markdown b/container/karaf/README.markdown index 5bb16bcbcbcf..cf5cca603de4 100644 --- a/container/karaf/README.markdown +++ b/container/karaf/README.markdown @@ -3,33 +3,19 @@ To upgrade our container to use a new base Karaf version, follow these steps. 1. Download and unpack the new Karaf tar.gz file. -1. Run these commands to see the differences in the Karaf etc files: +2. Run these commands to see the differences in the Karaf etc files: diff -r $KARAF_DIR/etc $SRC_DIR/container/karaf/src/main/filtered-resources/etc diff -r $KARAF_DIR/etc $SRC_DIR/features/container/minion/src/main/filtered-resources/etc diff -r $KARAF_DIR/etc $SRC_DIR/features/container/sentinel/src/main/filtered-resources/etc -1. Apply any relevant changes to the files inside each etc file. -1. Copy the new Karaf "standard" features.xml file into the features project: +3. Apply any relevant changes to the files inside each etc file. - cp $KARAF_DIR/system/org/apache/karaf/features/standard/$KARAF_VERSION/standard-$KARAF_VERSION-features.xml $SRC_DIR/container/features/src/main/resources/karaf/standard.xml - -1. Restore the HTTP bridge changes to the features.xml file by making all of the changes between the OPENNMS CUSTOMIZATION comment blocks. -1. Copy the new Karaf "spring" features.xml file into the features project: - - cp $KARAF_DIR/system/org/apache/karaf/features/spring/$KARAF_VERSION/spring-$KARAF_VERSION-features.xml $SRC_DIR/container/features/src/main/resources/karaf/spring.xml - -1. Remove the unmodified standard features repo from the spring.xml file by making all of the changes between the OPENNMS CUSTOMIZATION comment blocks. -1. Copy the new Karaf "spring-legacy" features.xml file into the features project: - - cp $KARAF_DIR/system/org/apache/karaf/features/spring-legacy/$KARAF_VERSION/spring-legacy-$KARAF_VERSION-features.xml $SRC_DIR/container/features/src/main/resources/karaf/spring-legacy.xml - -1. Remove the unmodified standard features repo from the spring-legacy.xml file by making all of the changes between the OPENNMS CUSTOMIZATION comment blocks. -1. Update the ```karaf-maven-plugin``` configuration inside ```$SRC_DIR/container/karaf/pom.xml``` so that it matches the default Karaf assembly from with our additions. -1. Update the ```karaf-maven-plugin``` configuration inside ```$SRC_DIR/features/minion/container/karaf/pom.xml``` so that it matches the default Karaf assembly from with our additions. -1. Update the list of repo features inside ```$SRC_DIR/container/features/pom.xml```, ```$SRC_DIR/core/test-api/karaf/pom.xml```, and ```$SRC_DIR/opennms-full-assembly/pom.xml```. -1. Update the Karaf version inside ```$SRC_DIR/core/test-api/karaf/src/main/java/org/opennms/core/test/karaf/KarafTestCase.java```. -1. Update ```$SRC_DIR/pom.xml``` with new value for `````` property. -1. Update ```$SRC_DIR/smoke-test/pom.xml``` with new value for `````` property. +4. Update the ```karaf-maven-plugin``` configuration inside ```$SRC_DIR/container/karaf/pom.xml``` so that it matches the default Karaf assembly from with our additions. +5. Update the ```karaf-maven-plugin``` configuration inside ```$SRC_DIR/features/minion/container/karaf/pom.xml``` so that it matches the default Karaf assembly from with our additions. +6. Update the list of repo features inside ```$SRC_DIR/container/features/pom.xml```, ```$SRC_DIR/core/test-api/karaf/pom.xml```, and ```$SRC_DIR/opennms-full-assembly/pom.xml```. +7. Update the Karaf version inside ```$SRC_DIR/core/test-api/karaf/src/main/java/org/opennms/core/test/karaf/KarafTestCase.java```. +8. Update ```$SRC_DIR/pom.xml``` with new value for `````` property. +9. Update ```$SRC_DIR/smoke-test/pom.xml``` with new value for `````` property. See commit dea910701c3f48e367636b507fc575b59e70b843 for an example of an upgrade. diff --git a/container/karaf/pom.xml b/container/karaf/pom.xml index 1b6648741d8b..64cf7896ed76 100644 --- a/container/karaf/pom.xml +++ b/container/karaf/pom.xml @@ -6,7 +6,7 @@ org.opennms org.opennms.container - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.container @@ -36,8 +36,9 @@ true - - mvn:org.opennms.karaf/opennms/${project.version}/xml/standard + + mvn:org.apache.karaf.features/standard/${karafVersion}/xml/features + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring mvn:org.opennms.karaf/opennms/${project.version}/xml/spring-legacy @@ -73,8 +74,7 @@ system - http - http-whiteboard + opennms-http-whiteboard mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/2.11.0_1;type:=endorsed;export:=true;delegate:=true @@ -195,13 +195,6 @@ - - org.opennms.karaf - opennms - ${project.version} - standard - xml - org.opennms.karaf opennms @@ -286,7 +279,7 @@ true central Maven Central - http://maven.opennms.org/content/repositories/central/ + https://maven.opennms.org/content/repositories/central/ diff --git a/container/karaf/src/main/filtered-resources/etc/config.properties b/container/karaf/src/main/filtered-resources/etc/config.properties index 91ccd325b496..a9385b6dbc3a 100644 --- a/container/karaf/src/main/filtered-resources/etc/config.properties +++ b/container/karaf/src/main/filtered-resources/etc/config.properties @@ -50,18 +50,18 @@ karaf.framework=felix # # Location of the OSGi frameworks # -karaf.framework.equinox=mvn\:org.eclipse.platform/org.eclipse.osgi/3.12.100 -karaf.framework.felix=mvn\:org.apache.felix/org.apache.felix.framework/5.6.12 +karaf.framework.equinox=mvn\:org.eclipse.platform/org.eclipse.osgi/3.16.200 +karaf.framework.felix=mvn\:org.apache.felix/org.apache.felix.framework/6.0.4 # # Framework config properties. # org.osgi.framework.system.packages= \ - org.osgi.dto;version="1.0",\ + org.osgi.dto;version="1.1",\ org.osgi.resource;version="1.0",\ org.osgi.resource.dto;version="1.0";uses:="org.osgi.dto",\ - org.osgi.framework;version="1.8",\ - org.osgi.framework.dto;version="1.8";uses:="org.osgi.dto",\ + org.osgi.framework;version="1.9",\ + org.osgi.framework.dto;version="1.9";uses:="org.osgi.dto",\ org.osgi.framework.hooks.bundle;version="1.1";uses:="org.osgi.framework",\ org.osgi.framework.hooks.resolver;version="1.0";uses:="org.osgi.framework.wiring",\ org.osgi.framework.hooks.service;version="1.1";uses:="org.osgi.framework",\ @@ -71,17 +71,17 @@ org.osgi.framework.system.packages= \ org.osgi.framework.startlevel;version="1.0";uses:="org.osgi.framework",\ org.osgi.framework.startlevel.dto;version="1.0";uses:="org.osgi.dto",\ org.osgi.framework.wiring;version="1.2";uses:="org.osgi.framework,org.osgi.resource",\ - org.osgi.framework.wiring.dto;version="1.2";uses:="org.osgi.dto,org.osgi.resource.dto",\ + org.osgi.framework.wiring.dto;version="1.3";uses:="org.osgi.dto,org.osgi.resource.dto",\ org.osgi.service.condpermadmin;version="1.1.1";uses:="org.osgi.framework,org.osgi.service.permissionadmin",\ org.osgi.service.packageadmin;version="1.2";uses:="org.osgi.framework",org.osgi.service.permissionadmin;version="1.2",\ - org.osgi.service.resolver;version="1.0";uses:="org.osgi.resource",\ + org.osgi.service.resolver;version="1.1";uses:="org.osgi.resource",\ org.osgi.service.startlevel;version="1.1";uses:="org.osgi.framework",\ org.osgi.service.url;version="1.0",\ - org.osgi.util.tracker;version="1.5.1";uses:="org.osgi.framework",\ - org.apache.karaf.version;version="4.2.10",\ - org.apache.karaf.jaas.boot.principal;uses:=javax.security.auth;version="4.2.10",\ - org.apache.karaf.jaas.boot;uses:="javax.security.auth,javax.security.auth.callback,javax.security.auth.login,javax.security.auth.spi,org.osgi.framework";version="4.2.10",\ - org.apache.karaf.info;version="4.2.10",\ + org.osgi.util.tracker;version="1.5.2";uses:="org.osgi.framework",\ + org.apache.karaf.version;version="4.3.2",\ + org.apache.karaf.jaas.boot.principal;uses:=javax.security.auth;version="4.3.2",\ + org.apache.karaf.jaas.boot;uses:="javax.security.auth,javax.security.auth.callback,javax.security.auth.login,javax.security.auth.spi,org.osgi.framework";version="4.3.2",\ + org.apache.karaf.info;version="4.3.2",\ ${jre-${java.specification.version}} # @@ -92,10 +92,10 @@ org.osgi.framework.system.packages.extra = \ sun.misc, \ com.sun.jmx.remote.protocol, \ com.sun.jmx.remote.protocol.jmxmp, \ - org.apache.karaf.jaas.boot;uses:=\"javax.security.auth,javax.security.auth.callback,javax.security.auth.login,javax.security.auth.spi,org.osgi.framework\";version=4.2.10, \ - org.apache.karaf.jaas.boot.principal;uses:=javax.security.auth;version=4.2.10, \ - org.apache.karaf.diagnostic.core;uses:=org.osgi.framework;version=4.2.10, \ - org.apache.karaf.diagnostic.core.common;uses:=org.apache.karaf.diagnostic.core;version=4.2.10 + org.apache.karaf.diagnostic.core;uses:=org.osgi.framework;version=4.3.2, \ + org.apache.karaf.diagnostic.core.common;uses:=org.apache.karaf.diagnostic.core;version=4.3.2, \ + org.apache.karaf.jaas.boot.principal;uses:=javax.security.auth;version=4.3.2, \ + org.apache.karaf.jaas.boot;uses:=\"javax.security.auth,javax.security.auth.callback,javax.security.auth.login,javax.security.auth.spi,org.osgi.framework\";version=4.3.2 org.osgi.framework.system.capabilities= \ ${eecap-${java.specification.version}}, \ @@ -129,6 +129,12 @@ equinox-capabilities= \ osgi.service;objectClass:List=org.eclipse.osgi.service.security.TrustEngine;osgi.signedcontent.trust.engine=org.eclipse.osgi, \ osgi.service;objectClass:List=org.eclipse.osgi.service.urlconversion.URLConverter;protocol:List="bundleentry,bundleresource" +eecap-16 = osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", \ + osgi.ee; osgi.ee="JavaSE"; version:List="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0", \ + osgi.ee; osgi.ee="JRE"; version:List="1.0,1.1", \ + osgi.ee; osgi.ee="JavaSE/compact1"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0", \ + osgi.ee; osgi.ee="JavaSE/compact2"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0", \ + osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0" eecap-15 = osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", \ osgi.ee; osgi.ee="JavaSE"; version:List="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0,10.0,11.0,13.0,14.0,15.0", \ osgi.ee; osgi.ee="JRE"; version:List="1.0,1.1", \ @@ -173,20 +179,25 @@ eecap-1.8= osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8" # -# javax.transaction is needed to avoid class loader constraint violation when using javax.sql +# javax.transaction is needed ONLY for com.sun.corba.se.impl.javax.rmi.CORBA.Util.mapSystemException(). +# JDK8 and earlier provide only 3 exception classes in this package, so full JTA API bundles should always try the +# bootdelegation first - even if they also package (and export) javax.transaction package +# +# boot delegation of javax.transaction.xa is needed to avoid class loader constraint violation when using javax.sql +# and this package is always complete in all JDKs # org.osgi.framework.bootdelegation = \ com.sun.*, \ javax.transaction, \ - javax.transaction.*, \ + javax.transaction.xa, \ javax.xml.crypto, \ javax.xml.crypto.*, \ jdk.nashorn.*, \ sun.*, \ jdk.internal.reflect, \ jdk.internal.reflect.*, \ - org.apache.karaf.jaas.boot, \ - org.apache.karaf.jaas.boot.principal + org.apache.karaf.jaas.boot.principal, \ + org.apache.karaf.jaas.boot # jVisualVM support # in order to use Karaf with jvisualvm, the org.osgi.framework.bootdelegation property has to contain the org.netbeans.lib.profiler.server package @@ -220,14 +231,19 @@ karaf.shutdown.port.file=${karaf.data}/port # # The location of the Karaf pid file # -karaf.pid.file=${karaf.log}/karaf.pid +karaf.pid.file=${karaf.base}/karaf.pid + +# +# Configuration secrets file location +# +org.apache.felix.configadmin.plugin.interpolation.secretsdir=${karaf.etc} # # Configuration FileMonitor properties # felix.fileinstall.enableConfigSave = true felix.fileinstall.dir = ${karaf.etc} -felix.fileinstall.filter = .*\\.(cfg|config) +felix.fileinstall.filter = .*\\.(cfg|config|json) felix.fileinstall.poll = 1000 felix.fileinstall.noInitialDelay = true felix.fileinstall.log.level = 3 diff --git a/container/karaf/src/main/filtered-resources/etc/custom.properties b/container/karaf/src/main/filtered-resources/etc/custom.properties index 21e3e97f6989..25aae387bdde 100644 --- a/container/karaf/src/main/filtered-resources/etc/custom.properties +++ b/container/karaf/src/main/filtered-resources/etc/custom.properties @@ -639,6 +639,8 @@ org.osgi.framework.system.packages.extra=org.apache.karaf.branding,\ org.opennms.netmgt.telemetry.protocols.bmp.persistence.api;version=${opennms.osgi.version},\ org.opennms.netmgt.threshd;version=${opennms.osgi.version},\ org.opennms.netmgt.threshd.api;version=${opennms.osgi.version},\ + org.opennms.netmgt.timeseries;version=${opennms.osgi.version},\ + org.opennms.netmgt.timeseries.stats;version=${opennms.osgi.version},\ org.opennms.api.integration.ticketing;version=${opennms.osgi.version},\ org.opennms.api.reporting;version=${opennms.osgi.version},\ org.opennms.api.reporting.parameter;version=${opennms.osgi.version},\ @@ -663,6 +665,8 @@ org.osgi.framework.system.packages.extra=org.apache.karaf.branding,\ org.opennms.core.resource;version=${opennms.osgi.version},\ org.opennms.core.resource.db;version=${opennms.osgi.version},\ org.opennms.core.ipc.sink.api;version=${opennms.osgi.version},\ + org.opennms.core.ipc.twin.api;version=${opennms.osgi.version},\ + org.opennms.core.ipc.twin.common;version=${opennms.osgi.version},\ org.opennms.core.rpc.api;version=${opennms.osgi.version},\ org.opennms.core.rpc.echo;version=${opennms.osgi.version},\ org.opennms.core.rpc.utils;version=${opennms.osgi.version},\ diff --git a/container/karaf/src/main/filtered-resources/etc/org.apache.karaf.features.cfg b/container/karaf/src/main/filtered-resources/etc/org.apache.karaf.features.cfg index bbb9247ac307..a3671ce3e455 100644 --- a/container/karaf/src/main/filtered-resources/etc/org.apache.karaf.features.cfg +++ b/container/karaf/src/main/filtered-resources/etc/org.apache.karaf.features.cfg @@ -22,7 +22,6 @@ # that point to the modified standard features. # OPENNMS: Include the main product features file generated by the mvn:org.opennms.karaf/opennms project featuresRepositories = \ - mvn:org.opennms.karaf/opennms/${project.version}/xml/standard, \ mvn:org.opennms.karaf/opennms/${project.version}/xml/spring, \ mvn:org.opennms.karaf/opennms/${project.version}/xml/spring-legacy, \ mvn:org.apache.karaf.features/framework/${karafVersion}/xml/features, \ @@ -42,7 +41,7 @@ featuresBoot = ( \ shell/${karafVersion}, \ management/${karafVersion}, \ service/${karafVersion}, \ - jaas/${karafVersion}, \ + jaas-deployer/${karafVersion}, \ shell-compat,/${karafVersion} \ deployer/${karafVersion}, \ diagnostic/${karafVersion}, \ @@ -51,8 +50,7 @@ featuresBoot = ( \ config/${karafVersion}, \ kar/${karafVersion} \ ), \ - http,\ - http-whiteboard,\ + opennms-http-whiteboard,\ opennms-jaas-login-module,\ karaf-extender, \ opennms-osgi-core-rest, \ @@ -62,6 +60,7 @@ featuresBoot = ( \ opennms-collection-commands, \ opennms-core-ipc-rpc-commands, \ opennms-core-ipc-kafka-shell, \ + opennms-core-ipc-twin-shell, \ opennms-dhcpd, \ opennms-events-commands, \ opennms-send-event-command, \ diff --git a/container/karaf/src/main/filtered-resources/etc/org.ops4j.pax.logging.cfg b/container/karaf/src/main/filtered-resources/etc/org.ops4j.pax.logging.cfg index 9dc01f8bee65..5f160e44e16a 100644 --- a/container/karaf/src/main/filtered-resources/etc/org.ops4j.pax.logging.cfg +++ b/container/karaf/src/main/filtered-resources/etc/org.ops4j.pax.logging.cfg @@ -26,7 +26,7 @@ color.debug = cyan color.trace = cyan # Common pattern layout for appenders -log4j2.pattern = %d{ISO8601} | %-5p | %-16t | %-32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n +log4j2.pattern = %d{ISO8601} | %-5p | %-16t | %-32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %encode{%.-500m}{CRLF}%n log4j2.out.pattern = \u001b[90m%d{HH:mm:ss\.SSS}\u001b[0m %highlight{%-5level}{FATAL=${color.fatal}, ERROR=${color.error}, WARN=${color.warn}, INFO=${color.info}, DEBUG=${color.debug}, TRACE=${color.trace}} \u001b[90m[%t]\u001b[0m %msg%n%throwable @@ -66,9 +66,9 @@ log4j2.logger.kafkaAdminClientConfig.level = ERROR log4j2.logger.opennmsTopology.name = org.opennms.features.topology log4j2.logger.opennmsTopology.level = WARN -# OPENNMS: Display all WARN logs for our code +# OPENNMS: Display all DEBUG logs for our code log4j2.logger.opennms.name = org.opennms -log4j2.logger.opennms.level = WARN +log4j2.logger.opennms.level = DEBUG # Appenders configuration @@ -113,7 +113,7 @@ log4j2.appender.osgi.filter = * #log4j2.logger.aether.name = shaded.org.eclipse.aether #log4j2.logger.aether.level = TRACE #log4j2.logger.http-headers.name = shaded.org.apache.http.headers -#log4j2.logger.http-headers.level = WARN +#log4j2.logger.http-headers.level = DEBUG #log4j2.logger.maven.name = org.ops4j.pax.url.mvn #log4j2.logger.maven.level = TRACE diff --git a/container/karaf/src/main/filtered-resources/etc/startup.properties b/container/karaf/src/main/filtered-resources/etc/startup.properties index 832ee03beb21..fb490127c611 100644 --- a/container/karaf/src/main/filtered-resources/etc/startup.properties +++ b/container/karaf/src/main/filtered-resources/etc/startup.properties @@ -1,17 +1,22 @@ # Bundles to be started on startup, with startlevel -mvn\:org.apache.karaf.features/org.apache.karaf.features.extension/4.2.11 = 1 -mvn\:org.apache.karaf.services/org.apache.karaf.services.eventadmin/4.2.11 = 5 +mvn\:org.apache.karaf.features/org.apache.karaf.features.extension/4.3.2 = 1 +mvn\:org.apache.karaf.services/org.apache.karaf.services.eventadmin/4.3.2 = 5 mvn\:org.apache.felix/org.apache.felix.metatype/1.2.4 = 5 mvn\:org.ops4j.pax.url/pax-url-aether/2.6.7 = 5 -mvn\:org.ops4j.pax.logging/pax-logging-api/1.11.9 = 8 -mvn\:org.ops4j.pax.logging/pax-logging-log4j2/1.11.9 = 8 +mvn\:org.ops4j.pax.logging/pax-logging-api/2.0.9 = 8 +mvn\:org.ops4j.pax.logging/pax-logging-log4j2/2.0.9 = 8 mvn\:org.fusesource.jansi/jansi/1.18 = 8 mvn\:org.osgi/org.osgi.util.promise/1.1.1 = 9 mvn\:org.apache.felix/org.apache.felix.coordinator/1.0.2 = 9 +mvn\:org.apache.felix/org.apache.felix.converter/1.0.14 = 9 mvn\:org.osgi/org.osgi.util.function/1.1.0 = 9 -mvn\:org.apache.felix/org.apache.felix.configadmin/1.9.20 = 10 -mvn\:org.apache.felix/org.apache.felix.fileinstall/3.6.8 = 11 -mvn\:org.apache.karaf.features/org.apache.karaf.features.core/4.2.11 = 15 +mvn\:org.apache.felix/org.apache.felix.configadmin/1.9.22 = 10 +mvn\:org.apache.felix/org.apache.felix.configadmin.plugin.interpolation/1.1.2 = 11 +mvn\:org.apache.felix/org.apache.felix.configurator/1.0.14 = 11 +mvn\:org.apache.sling/org.apache.sling.commons.johnzon/1.2.6 = 11 +mvn\:org.apache.felix/org.apache.felix.cm.json/1.0.6 = 11 +mvn\:org.apache.felix/org.apache.felix.fileinstall/3.6.8 = 12 +mvn\:org.apache.karaf.features/org.apache.karaf.features.core/4.3.2 = 15 # OPENNMS: Add JNA bundles to prevent jline from refreshing (KARAF-5251) mvn\:net.java.dev.jna/jna/${jnaVersion} = 5 diff --git a/container/pom.xml b/container/pom.xml index ac1573b677e2..039a51f45a8c 100644 --- a/container/pom.xml +++ b/container/pom.xml @@ -3,7 +3,7 @@ org.opennms opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.container diff --git a/container/servlet/pom.xml b/container/servlet/pom.xml index 8683dd4aa11c..2bf78b9d0e07 100644 --- a/container/servlet/pom.xml +++ b/container/servlet/pom.xml @@ -6,7 +6,7 @@ org.opennms org.opennms.container - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.container @@ -22,12 +22,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/container/shared/pom.xml b/container/shared/pom.xml index 901e28b91552..f10266060f65 100644 --- a/container/shared/pom.xml +++ b/container/shared/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.container - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.container @@ -173,10 +173,10 @@ - org.apache.karaf.features - spring - ${karafVersion} - features + org.opennms.karaf + opennms + ${project.version} + spring xml runtime @@ -194,10 +194,10 @@ - org.apache.karaf.features - spring-legacy - ${karafVersion} - features + org.opennms.karaf + opennms + ${project.version} + spring-legacy xml runtime diff --git a/container/shared/src/main/filtered-resources/etc/org.apache.karaf.features.cfg b/container/shared/src/main/filtered-resources/etc/org.apache.karaf.features.cfg index b256e024436b..1fbf8a0da68d 100644 --- a/container/shared/src/main/filtered-resources/etc/org.apache.karaf.features.cfg +++ b/container/shared/src/main/filtered-resources/etc/org.apache.karaf.features.cfg @@ -22,10 +22,10 @@ # featuresRepositories = \ mvn:org.apache.karaf.features/framework/${karafVersion}/xml/features, \ - mvn:org.apache.karaf.features/spring/${karafVersion}/xml/features, \ mvn:org.opennms.karaf/opennms/${project.version}/xml/karaf-extensions, \ + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring, \ + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring-legacy mvn:org.apache.karaf.features/standard/${karafVersion}/xml/features, \ - mvn:org.apache.karaf.features/spring-legacy/${karafVersion}/xml/features, \ mvn:io.hawt/hawtio-karaf/2.0.0/xml/features # @@ -56,6 +56,7 @@ featuresBoot = \ scv-shell/${project.version}, \ karaf-extender/${project.version}, \ hawtio-offline/2.0.0, \ + http, \ jolokia/1.6.2 # diff --git a/container/shared/src/main/filtered-resources/etc/startup.properties b/container/shared/src/main/filtered-resources/etc/startup.properties index 832ee03beb21..fb490127c611 100644 --- a/container/shared/src/main/filtered-resources/etc/startup.properties +++ b/container/shared/src/main/filtered-resources/etc/startup.properties @@ -1,17 +1,22 @@ # Bundles to be started on startup, with startlevel -mvn\:org.apache.karaf.features/org.apache.karaf.features.extension/4.2.11 = 1 -mvn\:org.apache.karaf.services/org.apache.karaf.services.eventadmin/4.2.11 = 5 +mvn\:org.apache.karaf.features/org.apache.karaf.features.extension/4.3.2 = 1 +mvn\:org.apache.karaf.services/org.apache.karaf.services.eventadmin/4.3.2 = 5 mvn\:org.apache.felix/org.apache.felix.metatype/1.2.4 = 5 mvn\:org.ops4j.pax.url/pax-url-aether/2.6.7 = 5 -mvn\:org.ops4j.pax.logging/pax-logging-api/1.11.9 = 8 -mvn\:org.ops4j.pax.logging/pax-logging-log4j2/1.11.9 = 8 +mvn\:org.ops4j.pax.logging/pax-logging-api/2.0.9 = 8 +mvn\:org.ops4j.pax.logging/pax-logging-log4j2/2.0.9 = 8 mvn\:org.fusesource.jansi/jansi/1.18 = 8 mvn\:org.osgi/org.osgi.util.promise/1.1.1 = 9 mvn\:org.apache.felix/org.apache.felix.coordinator/1.0.2 = 9 +mvn\:org.apache.felix/org.apache.felix.converter/1.0.14 = 9 mvn\:org.osgi/org.osgi.util.function/1.1.0 = 9 -mvn\:org.apache.felix/org.apache.felix.configadmin/1.9.20 = 10 -mvn\:org.apache.felix/org.apache.felix.fileinstall/3.6.8 = 11 -mvn\:org.apache.karaf.features/org.apache.karaf.features.core/4.2.11 = 15 +mvn\:org.apache.felix/org.apache.felix.configadmin/1.9.22 = 10 +mvn\:org.apache.felix/org.apache.felix.configadmin.plugin.interpolation/1.1.2 = 11 +mvn\:org.apache.felix/org.apache.felix.configurator/1.0.14 = 11 +mvn\:org.apache.sling/org.apache.sling.commons.johnzon/1.2.6 = 11 +mvn\:org.apache.felix/org.apache.felix.cm.json/1.0.6 = 11 +mvn\:org.apache.felix/org.apache.felix.fileinstall/3.6.8 = 12 +mvn\:org.apache.karaf.features/org.apache.karaf.features.core/4.3.2 = 15 # OPENNMS: Add JNA bundles to prevent jline from refreshing (KARAF-5251) mvn\:net.java.dev.jna/jna/${jnaVersion} = 5 diff --git a/container/shared/src/main/resources/etc/org.ops4j.pax.url.mvn.cfg b/container/shared/src/main/resources/etc/org.ops4j.pax.url.mvn.cfg index 50f9d4a6d4ff..aaa49dfdd09b 100644 --- a/container/shared/src/main/resources/etc/org.ops4j.pax.url.mvn.cfg +++ b/container/shared/src/main/resources/etc/org.ops4j.pax.url.mvn.cfg @@ -55,7 +55,7 @@ org.ops4j.pax.url.mvn.certificateCheck=true # OPENNMS: Use a Maven repository relative to ${karaf.home} since # the unprivileged users running the services may not have a "user.home" # directory -org.ops4j.pax.url.mvn.localRepository=${karaf.home}/.m2 +org.ops4j.pax.url.mvn.localRepository=${karaf.home}/.m2/repository # # Default this to false. It's just weird to use undocumented repos diff --git a/container/spring-extender/pom.xml b/container/spring-extender/pom.xml index 1896a6cfac83..8cd6663cf73d 100644 --- a/container/spring-extender/pom.xml +++ b/container/spring-extender/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.container - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.container @@ -33,7 +33,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/container/web/pom.xml b/container/web/pom.xml index 7b0b0fefbb80..eaa3a2d382f4 100644 --- a/container/web/pom.xml +++ b/container/web/pom.xml @@ -7,7 +7,7 @@ org.opennms org.opennms.container - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.container diff --git a/core/api/pom.xml b/core/api/pom.xml index 667c131ae6af..e1d1971297da 100644 --- a/core/api/pom.xml +++ b/core/api/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core @@ -41,7 +41,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/core/build/keystore/pom.xml b/core/build/keystore/pom.xml index 49d96f19ad7d..51ad6ecbc4e1 100644 --- a/core/build/keystore/pom.xml +++ b/core/build/keystore/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.build - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.build diff --git a/core/build/pom.xml b/core/build/pom.xml index 4b8760896db0..30590b343560 100644 --- a/core/build/pom.xml +++ b/core/build/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/cache/pom.xml b/core/cache/pom.xml index cd020be255c5..f7073eb14eba 100644 --- a/core/cache/pom.xml +++ b/core/cache/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core @@ -29,12 +29,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/core/camel/pom.xml b/core/camel/pom.xml index 7db787284757..aff1d6b2aa2d 100644 --- a/core/camel/pom.xml +++ b/core/camel/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core @@ -52,7 +52,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/core/cli/pom.xml b/core/cli/pom.xml index d28457c3afec..5f0cc77bf1eb 100644 --- a/core/cli/pom.xml +++ b/core/cli/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/commands/pom.xml b/core/commands/pom.xml index 7e54bbc3daf9..188339f9616c 100644 --- a/core/commands/pom.xml +++ b/core/commands/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/core/config/pom.xml b/core/config/pom.xml index e9356e0d7d12..d5ad8d534dae 100644 --- a/core/config/pom.xml +++ b/core/config/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/criteria/pom.xml b/core/criteria/pom.xml index 189c6433ff73..c13802a35595 100644 --- a/core/criteria/pom.xml +++ b/core/criteria/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/daemon/pom.xml b/core/daemon/pom.xml index 985c5ae4f238..0a8d4beda726 100644 --- a/core/daemon/pom.xml +++ b/core/daemon/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/db-install/pom.xml b/core/db-install/pom.xml index 9e438d607a6a..8f75f166209b 100644 --- a/core/db-install/pom.xml +++ b/core/db-install/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/db/pom.xml b/core/db/pom.xml index 2540fa843f89..202000feabfe 100644 --- a/core/db/pom.xml +++ b/core/db/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core @@ -86,7 +86,7 @@ true opennms-repo OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/core/grpc/common/pom.xml b/core/grpc/common/pom.xml index 567bde497f31..5e3d2fcf0200 100644 --- a/core/grpc/common/pom.xml +++ b/core/grpc/common/pom.xml @@ -5,7 +5,7 @@ org.opennms.core.grpc org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -32,6 +32,11 @@
+ + org.osgi + osgi.cmpn + provided + org.opennms.core org.opennms.core.lib diff --git a/core/grpc/common/src/main/java/org/opennms/core/grpc/common/GrpcIpcServer.java b/core/grpc/common/src/main/java/org/opennms/core/grpc/common/GrpcIpcServer.java new file mode 100644 index 000000000000..7291609e8959 --- /dev/null +++ b/core/grpc/common/src/main/java/org/opennms/core/grpc/common/GrpcIpcServer.java @@ -0,0 +1,56 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.grpc.common; + +import io.grpc.BindableService; + +import java.io.IOException; +import java.util.Properties; + +/** + * This Interface allows us to have a common Grpc Server for all IPC Services. + */ +public interface GrpcIpcServer { + + /** + * Starts server, this will not immediately start server but schedules server start after certain delay. + * + * @param bindableService The service that needs to be added */ + void startServer(BindableService bindableService) throws IOException; + + /** + * Stops the Server. + **/ + void stopServer(); + + /** + * Get properties with which the service has started. + **/ + Properties getProperties(); +} diff --git a/core/grpc/common/src/main/java/org/opennms/core/grpc/common/GrpcIpcServerBuilder.java b/core/grpc/common/src/main/java/org/opennms/core/grpc/common/GrpcIpcServerBuilder.java new file mode 100644 index 000000000000..404b705db815 --- /dev/null +++ b/core/grpc/common/src/main/java/org/opennms/core/grpc/common/GrpcIpcServerBuilder.java @@ -0,0 +1,133 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.grpc.common; + +import io.grpc.BindableService; +import io.grpc.Server; +import io.grpc.netty.shaded.io.grpc.netty.NettyServerBuilder; +import io.grpc.netty.shaded.io.netty.handler.ssl.SslContextBuilder; +import org.opennms.core.utils.PropertiesUtils; +import org.osgi.service.cm.ConfigurationAdmin; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.net.ssl.SSLException; +import java.io.IOException; +import java.net.InetSocketAddress; +import java.time.Duration; +import java.util.HashSet; +import java.util.Properties; +import java.util.Set; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +public class GrpcIpcServerBuilder implements GrpcIpcServer { + + private static final Logger LOG = LoggerFactory.getLogger(GrpcIpcServerBuilder.class); + + private final ConfigurationAdmin configAdmin; + private Properties properties; + private NettyServerBuilder serverBuilder; + private Server server; + private final int port; + private final Duration delay; + private boolean serverStartScheduled = false; + private final ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); + + private Set services = new HashSet<>(); + + public GrpcIpcServerBuilder(ConfigurationAdmin configAdmin, int port, String delay) { + this.configAdmin = configAdmin; + this.port = port; + this.delay = Duration.parse(delay); + this.properties = GrpcIpcUtils.getPropertiesFromConfig(configAdmin, GrpcIpcUtils.GRPC_SERVER_PID); + } + + @Override + public synchronized void startServer(BindableService bindableService) throws IOException { + initializeServerFromConfig(); + if (!services.contains(bindableService)) { + serverBuilder.addService(bindableService); + services.add(bindableService); + } + if (!serverStartScheduled) { + startServerWithDelay(delay.toMillis()); + serverStartScheduled = true; + } + } + + @Override + public synchronized void stopServer() { + if (server != null && !server.isShutdown()) { + server.shutdownNow(); + } + services.clear(); + serverStartScheduled = false; + } + + private void initializeServerFromConfig() { + if (serverBuilder == null) { + int maxInboundMessageSize = PropertiesUtils.getProperty(properties, GrpcIpcUtils.GRPC_MAX_INBOUND_SIZE, GrpcIpcUtils.DEFAULT_MESSAGE_SIZE); + boolean tlsEnabled = PropertiesUtils.getProperty(properties, GrpcIpcUtils.TLS_ENABLED, false); + serverBuilder = NettyServerBuilder.forAddress(new InetSocketAddress(this.port)) + .maxInboundMessageSize(maxInboundMessageSize); + if (tlsEnabled) { + SslContextBuilder sslContextBuilder = GrpcIpcUtils.getSslContextBuilder(properties); + if (sslContextBuilder != null) { + try { + serverBuilder.sslContext(sslContextBuilder.build()); + LOG.info("TLS enabled for Grpc IPC Server"); + } catch (SSLException e) { + LOG.error("Couldn't initialize ssl context from {}", properties, e); + } + } + } + } + } + + @Override + public Properties getProperties() { + return properties; + } + + private void startServerWithDelay(long delay) { + executor.schedule(this::startServerNow, delay, TimeUnit.MILLISECONDS); + } + + private void startServerNow() { + server = serverBuilder.build(); + try { + server.start(); + LOG.info("OpenNMS IPC gRPC server started with {} services", services.size()); + } catch (IOException e) { + LOG.error("Exception while starting IPC Grpc Server", e); + } + } +} diff --git a/core/grpc/common/src/main/java/org/opennms/core/grpc/common/GrpcIpcUtils.java b/core/grpc/common/src/main/java/org/opennms/core/grpc/common/GrpcIpcUtils.java new file mode 100644 index 000000000000..a66d7ee0b92b --- /dev/null +++ b/core/grpc/common/src/main/java/org/opennms/core/grpc/common/GrpcIpcUtils.java @@ -0,0 +1,140 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.grpc.common; + +import com.google.common.base.Strings; +import io.grpc.ManagedChannel; +import io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts; +import io.grpc.netty.shaded.io.grpc.netty.NegotiationType; +import io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder; +import io.grpc.netty.shaded.io.netty.handler.ssl.ClientAuth; +import io.grpc.netty.shaded.io.netty.handler.ssl.SslContextBuilder; +import io.grpc.netty.shaded.io.netty.handler.ssl.SslProvider; +import org.opennms.core.utils.PropertiesUtils; +import org.osgi.service.cm.ConfigurationAdmin; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.net.ssl.SSLException; +import java.io.File; +import java.io.IOException; +import java.util.Dictionary; +import java.util.Enumeration; +import java.util.Map; +import java.util.Properties; + +public class GrpcIpcUtils { + + private static final Logger LOG = LoggerFactory.getLogger(GrpcClientBuilder.class); + public static final String GRPC_CLIENT_PID = "org.opennms.core.ipc.grpc.client"; + public static final String GRPC_SERVER_PID = "org.opennms.core.ipc.grpc.server"; + public static final String LOG_PREFIX = "ipc"; + public static final String GRPC_HOST = "host"; + public static final String DEFAULT_GRPC_HOST = "localhost"; + public static final String GRPC_PORT = "port"; + public static final int DEFAULT_TWIN_GRPC_PORT = 8991; + public static final String TLS_ENABLED = "tls.enabled"; + public static final String GRPC_MAX_INBOUND_SIZE = "max.message.size"; + public static final int DEFAULT_MESSAGE_SIZE = 10485760; + + public static final String CLIENT_CERTIFICATE_FILE_PATH = "client.cert.filepath"; + public static final String CLIENT_PRIVATE_KEY_FILE_PATH = "client.private.key.filepath"; + public static final String TRUST_CERTIFICATE_FILE_PATH = "trust.cert.filepath"; + + public static final String SERVER_CERTIFICATE_FILE_PATH = "server.cert.filepath"; + public static final String PRIVATE_KEY_FILE_PATH = "server.private.key.filepath"; + + public static SslContextBuilder buildSslContext(Properties properties) throws SSLException { + SslContextBuilder builder = GrpcSslContexts.forClient(); + String clientCertChainFilePath = properties.getProperty(CLIENT_CERTIFICATE_FILE_PATH); + String clientPrivateKeyFilePath = properties.getProperty(CLIENT_PRIVATE_KEY_FILE_PATH); + String trustCertCollectionFilePath = properties.getProperty(TRUST_CERTIFICATE_FILE_PATH); + + if (!Strings.isNullOrEmpty(trustCertCollectionFilePath)) { + builder.trustManager(new File(trustCertCollectionFilePath)); + } + if (!Strings.isNullOrEmpty(clientCertChainFilePath) && !Strings.isNullOrEmpty(clientPrivateKeyFilePath)) { + builder.keyManager(new File(clientCertChainFilePath), new File(clientPrivateKeyFilePath)); + } else if (!Strings.isNullOrEmpty(clientCertChainFilePath) || !Strings.isNullOrEmpty(clientPrivateKeyFilePath)) { + LOG.error("Only one of the required file paths were provided, need both client cert and client private key"); + } + return builder; + } + + public static ManagedChannel getChannel(Properties properties, int port) throws IOException { + String host = PropertiesUtils.getProperty(properties, GRPC_HOST, GrpcIpcUtils.DEFAULT_GRPC_HOST); + int maxInboundMessageSize = PropertiesUtils.getProperty(properties, GrpcIpcUtils.GRPC_MAX_INBOUND_SIZE, GrpcIpcUtils.DEFAULT_MESSAGE_SIZE); + NettyChannelBuilder channelBuilder = NettyChannelBuilder.forAddress(host, port) + .maxInboundMessageSize(maxInboundMessageSize) + .keepAliveWithoutCalls(true); + boolean tlsEnabled = Boolean.parseBoolean(properties.getProperty(TLS_ENABLED)); + if (tlsEnabled) { + return channelBuilder + .negotiationType(NegotiationType.TLS) + .sslContext(buildSslContext(properties).build()) + .build(); + } else { + return channelBuilder.usePlaintext().build(); + } + } + + public static SslContextBuilder getSslContextBuilder(Properties properties) { + String certChainFilePath = properties.getProperty(GrpcIpcUtils.SERVER_CERTIFICATE_FILE_PATH); + String privateKeyFilePath = properties.getProperty(GrpcIpcUtils.PRIVATE_KEY_FILE_PATH); + String trustCertCollectionFilePath = properties.getProperty(GrpcIpcUtils.TRUST_CERTIFICATE_FILE_PATH); + if (Strings.isNullOrEmpty(certChainFilePath) || Strings.isNullOrEmpty(privateKeyFilePath)) { + return null; + } + SslContextBuilder sslClientContextBuilder = SslContextBuilder.forServer(new File(certChainFilePath), + new File(privateKeyFilePath)); + if (!Strings.isNullOrEmpty(trustCertCollectionFilePath)) { + sslClientContextBuilder.trustManager(new File(trustCertCollectionFilePath)); + sslClientContextBuilder.clientAuth(ClientAuth.REQUIRE); + } + return GrpcSslContexts.configure(sslClientContextBuilder, + SslProvider.OPENSSL); + } + + public static Properties getPropertiesFromConfig(ConfigurationAdmin configAdmin, String pid) { + Properties properties = new Properties(); + try { + final Dictionary config = configAdmin.getConfiguration(pid).getProperties(); + if (config != null) { + final Enumeration keys = config.keys(); + while (keys.hasMoreElements()) { + final String key = keys.nextElement(); + properties.put(key, config.get(key)); + } + } + } catch (IOException e) { + throw new RuntimeException("Cannot load config", e); + } + return properties; + } +} diff --git a/core/grpc/common/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/core/grpc/common/src/main/resources/OSGI-INF/blueprint/blueprint.xml new file mode 100644 index 000000000000..bedb955c1186 --- /dev/null +++ b/core/grpc/common/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/grpc/osgi/pom.xml b/core/grpc/osgi/pom.xml index 3c13e6e08c1f..c3851b560c3a 100644 --- a/core/grpc/osgi/pom.xml +++ b/core/grpc/osgi/pom.xml @@ -5,7 +5,7 @@ org.opennms.core.grpc org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/core/grpc/pom.xml b/core/grpc/pom.xml index bc35d8f83095..f84f364c1c0d 100644 --- a/core/grpc/pom.xml +++ b/core/grpc/pom.xml @@ -5,7 +5,7 @@ org.opennms.core org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/core/health/api/pom.xml b/core/health/api/pom.xml index 665bce1e670f..a273e90a6eef 100644 --- a/core/health/api/pom.xml +++ b/core/health/api/pom.xml @@ -4,7 +4,7 @@ org.opennms.core org.opennms.core.health - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.health @@ -20,5 +20,19 @@ org.apache.commons commons-lang3 + + io.vavr + vavr + 0.10.0 + compile + + + junit + junit + + + org.hamcrest + hamcrest-library + diff --git a/core/health/api/src/main/java/org/opennms/core/health/api/Health.java b/core/health/api/src/main/java/org/opennms/core/health/api/Health.java index d7221ca4424e..b4e2a752de9c 100644 --- a/core/health/api/src/main/java/org/opennms/core/health/api/Health.java +++ b/core/health/api/src/main/java/org/opennms/core/health/api/Health.java @@ -36,15 +36,22 @@ import org.apache.commons.lang3.tuple.Pair; /** - * Represents the "Health", by holding a list of {@link Response}s. + * Represents the "Health", by holding a list of {@link HealthCheck}s and their {@link Response}s. * It allows accessing the responses and also provides some helper methods (e.g. to get the worst response). * * @author mvrueden */ public class Health { - private List> responses = new ArrayList<>(); - private String errorMessage; + private final List> responses; + + public Health() { + responses = new ArrayList<>(); + } + + public Health(List> responses) { + this.responses = responses; + } public Health withResponse(HealthCheck healthCheck, Response response) { add(healthCheck, response); @@ -52,30 +59,17 @@ public Health withResponse(HealthCheck healthCheck, Response response) { } public boolean isSuccess() { - if (responses.isEmpty() && errorMessage != null) { - return false; - } return responses.stream().allMatch(r -> r.getRight().getStatus() == Status.Success); } public Optional> getWorst() { - return responses.stream() - .sorted(Comparator.comparingInt(pair -> -1 * pair.getRight().getStatus().ordinal())) - .findFirst(); + return responses.stream().max(Comparator.comparing(p -> p.getRight().getStatus())); } public void add(HealthCheck healthCheck, Response response) { this.responses.add(Pair.of(healthCheck, response)); } - public void setError(String errorMessage) { - this.errorMessage = errorMessage; - } - - public String getErrorMessage() { - return errorMessage; - } - public List> getResponses() { return new ArrayList<>(responses); } diff --git a/core/health/api/src/main/java/org/opennms/core/health/api/HealthCheckService.java b/core/health/api/src/main/java/org/opennms/core/health/api/HealthCheckService.java index 1d9d6558587e..e9a0210b3e43 100644 --- a/core/health/api/src/main/java/org/opennms/core/health/api/HealthCheckService.java +++ b/core/health/api/src/main/java/org/opennms/core/health/api/HealthCheckService.java @@ -30,8 +30,9 @@ import java.util.List; import java.util.concurrent.CompletableFuture; -import java.util.function.BiConsumer; -import java.util.function.Consumer; +import java.util.concurrent.CompletionStage; + +import io.vavr.control.Either; /** * The {@link HealthCheckService} performs various {@link HealthCheck}s and returns @@ -45,7 +46,7 @@ public interface HealthCheckService { * Performs various {@link HealthCheck}s asynchronously and returns a {@link CompletableFuture} which * contains the {@link Health} representing each {@link HealthCheck}s {@link Response}. * - * It is up to the implementator to respect timeouts and handle exceptions accordingly, when + * It is up to the implementation to respect timeouts and handle exceptions accordingly, when * these situations arise when calling {@link HealthCheck#perform(Context)}. * * Callback methods can be provided to print information before and after a {@link HealthCheck} is invoked. @@ -54,9 +55,18 @@ public interface HealthCheckService { * represent the value when calling {@link HealthCheck#perform(Context)} directly. * * @param context The context object - * @param onStartConsumer Callback method which is invoked before the {@link HealthCheck#perform(Context)} method is invoked. May be null. - * @param onFinishConsumer Callback method which is invoked after the {@link HealthCheck#perform(Context)} method is invoked. May be null. - * @return The {@link CompletableFuture} to retrieve the {@link Health} from. + * @param listener gets informed about health check progress. May be null. In case the {@code Either} contains an + * error no listener callbacks are called at all. If the {@code Either} contains a {@CompletionStage} + * all listener callbacks are guaranteed to be called before that completion stage completes. + * @param tags selects the single health checks that are included in the overall check; every health check that has any of the given tags is included. + * @return Either an error message if no matching health checks could be determined or a {@link CompletableFuture} to retrieve the {@link Health} from. */ - CompletableFuture performAsyncHealthCheck(Context context, Consumer onStartConsumer, BiConsumer onFinishConsumer, List tags); + Either> performAsyncHealthCheck(Context context, ProgressListener listener, List tags); + + interface ProgressListener { + default void onHealthChecksFound(List checks) {}; + default void onPerform(HealthCheck check) {}; + default void onResponse(HealthCheck check, Response response) {}; + default void onAllHealthChecksCompleted(Health health) {}; + } } diff --git a/core/health/api/src/main/java/org/opennms/core/health/api/Response.java b/core/health/api/src/main/java/org/opennms/core/health/api/Response.java index c5311044850f..2684a6c5c063 100644 --- a/core/health/api/src/main/java/org/opennms/core/health/api/Response.java +++ b/core/health/api/src/main/java/org/opennms/core/health/api/Response.java @@ -33,6 +33,7 @@ */ public class Response { + public static Response UNKNOWN = new Response(Status.Unknown); public static Response SUCCESS = new Response(Status.Success); // The status diff --git a/core/health/api/src/test/java/org/opennms/core/health/api/HealthTest.java b/core/health/api/src/test/java/org/opennms/core/health/api/HealthTest.java new file mode 100644 index 000000000000..f16673cb8e2e --- /dev/null +++ b/core/health/api/src/test/java/org/opennms/core/health/api/HealthTest.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2018-2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.health.api; + +import static org.hamcrest.MatcherAssert.assertThat; + +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.apache.commons.lang3.tuple.Pair; +import org.hamcrest.Matchers; +import org.junit.Test; + +public class HealthTest { + + @Test + public void findsWorst() { + var pairs = Stream.of(Status.values()).map(s -> Pair.of(null, new Response(s))).collect(Collectors.toList()); + var h1 = new Health(pairs).getWorst(); + assertThat(h1.get().getRight().getStatus(), Matchers.is(Status.values()[Status.values().length - 1])); + Collections.reverse(pairs); + var h2 = new Health(pairs).getWorst(); + assertThat(h2.get().getRight().getStatus(), Matchers.is(Status.values()[Status.values().length - 1])); + } +} diff --git a/core/health/impl/pom.xml b/core/health/impl/pom.xml index 2b45339732ae..c91e7b19a1f3 100644 --- a/core/health/impl/pom.xml +++ b/core/health/impl/pom.xml @@ -4,7 +4,7 @@ org.opennms.core org.opennms.core.health - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.health @@ -38,7 +38,7 @@ org.osgi - org.osgi.core + osgi.core provided @@ -67,5 +67,9 @@ org.opennms.core.test-api.lib test + + org.opennms + opennms-util + diff --git a/core/health/impl/src/main/java/org/opennms/core/health/impl/DefaultHealthCheckService.java b/core/health/impl/src/main/java/org/opennms/core/health/impl/DefaultHealthCheckService.java index 2ba8db009747..f9c0e63ff3b3 100644 --- a/core/health/impl/src/main/java/org/opennms/core/health/impl/DefaultHealthCheckService.java +++ b/core/health/impl/src/main/java/org/opennms/core/health/impl/DefaultHealthCheckService.java @@ -28,20 +28,18 @@ package org.opennms.core.health.impl; +import java.time.Duration; import java.util.Collection; import java.util.Comparator; import java.util.List; import java.util.Objects; -import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionStage; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import java.util.function.BiConsumer; -import java.util.function.Consumer; import java.util.stream.Collectors; +import org.apache.commons.lang3.tuple.Pair; +import org.opennms.core.concurrent.FutureUtils; import org.opennms.core.health.api.Context; import org.opennms.core.health.api.Health; import org.opennms.core.health.api.HealthCheck; @@ -57,6 +55,8 @@ import com.google.common.base.Strings; import com.google.common.util.concurrent.ThreadFactoryBuilder; +import io.vavr.control.Either; + /** * The "Default" implementation of the {@link HealthCheckService}. * It loads all available {@link HealthCheckService}s from the OSGi service registry. @@ -87,73 +87,69 @@ protected List getHealthChecks() throws InvalidSyntaxException { } @Override - public CompletableFuture performAsyncHealthCheck(Context context, Consumer onStartConsumer, BiConsumer onFinishConsumer, List tags) { - final CompletableFuture returnFuture = new CompletableFuture<>(); - final Health health = new Health(); - final BiConsumer consumer = (healthCheck, response) -> { - health.withResponse(healthCheck, response); - onFinishConsumer.accept(healthCheck, response); - }; + public Either> performAsyncHealthCheck(Context context, ProgressListener listener, List tags) { try { // Fail if no checks are available List checks = getHealthChecks(); checks = filterChecksWithTags(checks, tags); if (checks == null || checks.isEmpty()) { - health.setError("No Health Checks available"); + return Either.left("No Health Checks available"); } else { - runChecks(context, checks, onStartConsumer, consumer); + if (listener != null) { + listener.onHealthChecksFound(checks); + } + return Either.right(runChecks(context, checks, listener)); } } catch (InvalidSyntaxException ex) { - health.setError("Error while performing health checks: " + ex.getMessage()); - } finally { - returnFuture.complete(health); + return Either.left("Error while performing health checks: " + ex.getMessage()); } - return returnFuture; } - List filterChecksWithTags(List checks, List tags){ - if (checks != null && tags != null && tags.stream().anyMatch(tag -> !Strings.isNullOrEmpty(tag))){ + List filterChecksWithTags(List checks, List tags) { + if (checks != null && tags != null && tags.stream().anyMatch(tag -> !Strings.isNullOrEmpty(tag))) { checks = checks.stream().filter(check -> check.getTags().stream().anyMatch(tags::contains)).collect(Collectors.toList()); } return checks; } - // Asynchronously run all checks - private void runChecks(Context context, List checks, Consumer onStartConsumer, BiConsumer onFinishConsumer) { - Future currentFuture = null; - for (HealthCheck check : checks) { - try { - if (onStartConsumer != null) { - onStartConsumer.accept(check); - } - currentFuture = executorService.submit(() -> { + /** + * Creates a completable future for the given health check. + *

+ * The returned future is guaranteed to complete within the timeout given in the context instance. Listener + * callbacks have been called before the future completes. + */ + private CompletionStage> completionStage(HealthCheck check, Context context, ProgressListener listener) { + return FutureUtils.completionStageWithDefaultOnTimeout( + () -> { try { - final Response response = check.perform(context); - if (response == null) { - return new Response(Status.Unknown); + if (listener != null) { + listener.onPerform(check); } - return response; - } catch (Exception ex) { - // Log the stack trace - LOG.warn("Health check {} failed with exception: {}", check, ex.getMessage(), ex); - return new Response(ex); + var response = check.perform(context); + return response != null ? response : Response.UNKNOWN; + } catch (Throwable t) { + return new Response(t); } - }); - final Response response = currentFuture.get(context.getTimeout(), TimeUnit.MILLISECONDS); - if (onFinishConsumer != null) { - onFinishConsumer.accept(check, response); - } - } catch (TimeoutException timeoutException) { - if (currentFuture != null) { - currentFuture.cancel(true); - } - onFinishConsumer.accept(check, new Response(Status.Timeout, "Health Check did not finish within " + context.getTimeout() + " ms")); - } catch (Exception ex) { - if (currentFuture != null) { - currentFuture.cancel(true); - } - onFinishConsumer.accept(check, new Response(ex)); + }, + Duration.ofMillis(context.getTimeout()), + () -> new Response(Status.Timeout, "Health Check did not finish within " + context.getTimeout() + " ms"), + executorService + ).thenApply(response -> { + if (listener != null) { + listener.onResponse(check, response); } - } + return Pair.of(check, response); + }); + } + + // Asynchronously run all checks + private CompletionStage runChecks(Context context, List checks, ProgressListener listener) { + return FutureUtils.traverse(checks, check -> completionStage(check, context, listener)).thenApply(list -> { + var health = new Health(list); + if (listener != null) { + listener.onAllHealthChecksCompleted(health); + } + return health; + }); } } diff --git a/core/health/impl/src/test/java/org/opennms/core/health/impl/DefaultHealthCheckServiceTest.java b/core/health/impl/src/test/java/org/opennms/core/health/impl/DefaultHealthCheckServiceTest.java index f17dec1ea714..e342ed3df6f8 100644 --- a/core/health/impl/src/test/java/org/opennms/core/health/impl/DefaultHealthCheckServiceTest.java +++ b/core/health/impl/src/test/java/org/opennms/core/health/impl/DefaultHealthCheckServiceTest.java @@ -33,7 +33,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -47,10 +46,11 @@ import org.opennms.core.health.api.Context; import org.opennms.core.health.api.Health; import org.opennms.core.health.api.HealthCheck; +import org.opennms.core.health.api.HealthCheckConstants; +import org.opennms.core.health.api.HealthCheckService; import org.opennms.core.health.api.Response; import org.opennms.core.health.api.SimpleHealthCheck; import org.opennms.core.health.api.Status; -import org.opennms.core.health.api.HealthCheckConstants; import org.osgi.framework.BundleContext; import org.osgi.framework.InvalidSyntaxException; import org.slf4j.Logger; @@ -125,12 +125,21 @@ protected List getHealthChecks() { context.setTimeout(1000); // ms for (int i=0; i<2; i++) { - final CompletableFuture future = healthCheckService + var eitherErrorOrFuture = healthCheckService .performAsyncHealthCheck(context, - healthCheck -> LOG.info("Executing: {}", healthCheck.getDescription()), - (healthCheck, response) -> LOG.info("=> {} : {}", response.getStatus().name(), response.getMessage()), + new HealthCheckService.ProgressListener() { + @Override + public void onPerform(HealthCheck healthCheck) { + LOG.info("Executing: {}", healthCheck.getDescription()); + } + + @Override + public void onResponse(HealthCheck check, Response response) { + LOG.info("=> {} : {}", response.getStatus().name(), response.getMessage()); + } + }, null); - final Health health = future.get(); + final Health health = eitherErrorOrFuture.get().toCompletableFuture().get(); final List timedOutResponsed = health.getResponses().stream().map(Pair::getRight).filter(r -> r.getStatus() == Status.Timeout).collect(Collectors.toList()); Assert.assertThat(timedOutResponsed.size(), is(1)); } diff --git a/core/health/pom.xml b/core/health/pom.xml index 0498f5e8f6fa..38e998349399 100644 --- a/core/health/pom.xml +++ b/core/health/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/health/rest/pom.xml b/core/health/rest/pom.xml index 80cee519c288..51d1064f121d 100644 --- a/core/health/rest/pom.xml +++ b/core/health/rest/pom.xml @@ -4,7 +4,7 @@ org.opennms.core org.opennms.core.health - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.health diff --git a/core/health/rest/src/main/java/org/opennms/core/health/rest/HealthCheckRestService.java b/core/health/rest/src/main/java/org/opennms/core/health/rest/HealthCheckRestService.java index dce858b012d4..251f165df3e3 100644 --- a/core/health/rest/src/main/java/org/opennms/core/health/rest/HealthCheckRestService.java +++ b/core/health/rest/src/main/java/org/opennms/core/health/rest/HealthCheckRestService.java @@ -44,9 +44,9 @@ public interface HealthCheckRestService { @GET @Path("probe") @Produces(MediaType.TEXT_PLAIN) - Response probeHealth(@QueryParam("t") @DefaultValue("5000") int timeoutInMs, @QueryParam("maxAgeMs") @DefaultValue("0") int maxAgeMs, @Context final UriInfo uriInfo); + Response probeHealth(@QueryParam("t") @DefaultValue("5000") int timeoutInMs, @QueryParam("maxAgeMs") @DefaultValue("90000") int maxAgeMs, @Context final UriInfo uriInfo); @GET @Produces(MediaType.APPLICATION_JSON) - Response getHealth(@QueryParam("t") @DefaultValue("5000") int timeoutInMs, @QueryParam("maxAgeMs") @DefaultValue("0") int maxAgeMs, @Context final UriInfo uriInfo); + Response getHealth(@QueryParam("t") @DefaultValue("5000") int timeoutInMs, @QueryParam("maxAgeMs") @DefaultValue("90000") int maxAgeMs, @Context final UriInfo uriInfo); } diff --git a/core/health/rest/src/main/java/org/opennms/core/health/rest/internal/HealthCheckRestServiceImpl.java b/core/health/rest/src/main/java/org/opennms/core/health/rest/internal/HealthCheckRestServiceImpl.java index 014fc8763232..f2d3546e5e41 100644 --- a/core/health/rest/src/main/java/org/opennms/core/health/rest/internal/HealthCheckRestServiceImpl.java +++ b/core/health/rest/src/main/java/org/opennms/core/health/rest/internal/HealthCheckRestServiceImpl.java @@ -29,17 +29,14 @@ package org.opennms.core.health.rest.internal; import java.time.Duration; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Objects; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; -import java.util.concurrent.atomic.AtomicReference; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; +import org.apache.commons.lang3.tuple.Pair; import org.json.JSONArray; import org.json.JSONObject; import org.opennms.core.health.api.Context; @@ -47,6 +44,8 @@ import org.opennms.core.health.api.HealthCheckService; import org.opennms.core.health.rest.HealthCheckRestService; +import io.vavr.control.Either; + public class HealthCheckRestServiceImpl implements HealthCheckRestService { private static final String SUCCESS_MESSAGE = "Everything is awesome"; @@ -61,8 +60,11 @@ public HealthCheckRestServiceImpl(final HealthCheckService healthCheckService) { @Override public Response probeHealth(int timeoutInMs, int maxAgeMs, UriInfo uriInfo) { List tags = uriInfo.getQueryParameters().get("tag"); - final Health health = getHealthInternally(timeoutInMs, maxAgeMs, tags); - if (health.isSuccess()) { + var isSuccess = getHealthInternally(timeoutInMs, maxAgeMs, tags).fold( + errorMessage -> false, + health -> health.isSuccess() + ); + if (isSuccess) { return Response.ok() .header("Health", SUCCESS_MESSAGE) .entity(SUCCESS_MESSAGE) @@ -75,46 +77,52 @@ public Response probeHealth(int timeoutInMs, int maxAgeMs, UriInfo uriInfo) { } @Override - public Response getHealth(int timeoutInMs, int maxAgeMs, UriInfo uriInfo){ + public Response getHealth(int timeoutInMs, int maxAgeMs, UriInfo uriInfo) { List tags = uriInfo.getQueryParameters().get("tag"); - final Health health = getHealthInternally(timeoutInMs, maxAgeMs, tags); - - // Create response object - final JSONArray jsonResponseArray = new JSONArray(); - for (var pair : health.getResponses()) { - final JSONObject eachJsonResponse = new JSONObject(); - eachJsonResponse.put("status", pair.getRight().getStatus().name()); - eachJsonResponse.put("description", pair.getLeft().getDescription()); - eachJsonResponse.put("message", pair.getRight().getMessage()); - jsonResponseArray.put(eachJsonResponse); - } - final JSONObject jsonHealth = new JSONObject(); - jsonHealth.put("healthy", health.isSuccess()); - jsonHealth.put("errorMessage", health.getErrorMessage()); - jsonHealth.put("responses", jsonResponseArray); + var flagAndResponse = getHealthInternally(timeoutInMs, maxAgeMs, tags).fold( + errorMessage -> { + final JSONObject jsonHealth = new JSONObject(); + final JSONArray jsonResponseArray = new JSONArray(); + jsonHealth.put("healthy", false); + jsonHealth.put("errorMessage", errorMessage); + jsonHealth.put("responses", jsonResponseArray); + return Pair.of(false, jsonHealth); + }, + health -> { + final JSONObject jsonHealth = new JSONObject(); + final JSONArray jsonResponseArray = new JSONArray(); + jsonHealth.put("healthy", health.isSuccess()); + jsonHealth.put("errorMessage", (String) null); + jsonHealth.put("responses", jsonResponseArray); + for (var pair : health.getResponses()) { + final JSONObject eachJsonResponse = new JSONObject(); + eachJsonResponse.put("status", pair.getRight().getStatus().name()); + eachJsonResponse.put("description", pair.getLeft().getDescription()); + eachJsonResponse.put("message", pair.getRight().getMessage()); + jsonResponseArray.put(eachJsonResponse); + } + return Pair.of(health.isSuccess(), jsonHealth); + } + ); // Return response return Response.ok() - .header("Health", health.isSuccess() ? SUCCESS_MESSAGE : ERROR_MESSAGE) - .entity(jsonHealth.toString()) + .header("Health", flagAndResponse.getLeft() ? SUCCESS_MESSAGE : ERROR_MESSAGE) + .entity(flagAndResponse.getRight().toString()) .build(); } - private Health getHealthInternally(int timeoutInMs, int maxAgeMs, List tags){ - try { - final Context context = new Context(); - context.setTimeout(timeoutInMs); - context.setMaxAge(Duration.ofMillis(maxAgeMs)); - final CompletableFuture future = healthCheckService.performAsyncHealthCheck( - context, - healthCheck -> {}, - (healthCheck, response) -> {}, - tags - ); - return future.get(); - } catch (InterruptedException | ExecutionException e) { - throw new RuntimeException(e); - } + private Either getHealthInternally(int timeoutInMs, int maxAgeMs, List tags) { + final Context context = new Context(); + context.setTimeout(timeoutInMs); + context.setMaxAge(Duration.ofMillis(maxAgeMs)); + return healthCheckService.performAsyncHealthCheck(context, null, tags).map(f -> { + try { + return f.toCompletableFuture().get(); + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e); + } + }); } } diff --git a/core/health/shell/pom.xml b/core/health/shell/pom.xml index 56227c614e9f..866e2a8a23b4 100644 --- a/core/health/shell/pom.xml +++ b/core/health/shell/pom.xml @@ -4,7 +4,7 @@ org.opennms.core org.opennms.core.health - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.health @@ -47,7 +47,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/core/health/shell/src/main/java/org/opennms/core/health/shell/HealthCheckCommand.java b/core/health/shell/src/main/java/org/opennms/core/health/shell/HealthCheckCommand.java index 2b68b37de941..e4ba84872559 100644 --- a/core/health/shell/src/main/java/org/opennms/core/health/shell/HealthCheckCommand.java +++ b/core/health/shell/src/main/java/org/opennms/core/health/shell/HealthCheckCommand.java @@ -30,11 +30,12 @@ import java.time.Duration; import java.util.Arrays; -import java.util.Collection; import java.util.Comparator; +import java.util.IdentityHashMap; import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.stream.Collectors; +import java.util.Map; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; import org.apache.karaf.shell.api.action.Action; import org.apache.karaf.shell.api.action.Command; @@ -45,15 +46,22 @@ import org.opennms.core.health.api.Health; import org.opennms.core.health.api.HealthCheck; import org.opennms.core.health.api.HealthCheckService; +import org.opennms.core.health.api.Response; import org.opennms.core.health.api.Status; import org.osgi.framework.BundleContext; -import org.osgi.framework.InvalidSyntaxException; -import org.osgi.framework.ServiceReference; @Command(scope = "opennms", name = "health-check", description="Verifies that the container is healthy.") @Service public class HealthCheckCommand implements Action { + public static final String SUCCESS_MESSAGE = "=> Everything is awesome"; + public static final String FAILURE_MESSAGE = "=> Oh no, something is wrong"; + + public static boolean isEndMessage(String s) { + // a newline is appended to the string -> do a startsWith check + return s.startsWith(SUCCESS_MESSAGE) || s.startsWith(FAILURE_MESSAGE); + } + private static final String DESCRIPTION_FORMAT = "%%-%ds "; private static final String STATUS_FORMAT = "[ %%-%ds ]"; @@ -79,48 +87,28 @@ public Object execute() throws Exception { final Context context = new Context(); context.setTimeout(timeout); context.setMaxAge(Duration.ofMillis(maxAgeMs)); - final CompletableFuture future = performHealthCheck(bundleContext, context); - final Health health = future.get(); - // Print results - System.out.println(); - if (health.isSuccess()) { - System.out.println("=> Everything is awesome"); - } else { - if (health.getErrorMessage() != null) { - System.out.println(Colorizer.colorize("Error: " + health.getErrorMessage(), Color.Red)); - } - System.out.println("=> Oh no, something is wrong"); - } - return null; - } + final var listener = new Listener(); + + healthCheckService.performAsyncHealthCheck(context, listener, null).fold( + errorMessage -> { + System.out.println(Colorizer.colorize("Error: " + errorMessage, Color.Red)); + System.out.println("=> Oh no, something is wrong"); + return null; + }, + completionStage -> { + // the concurrent execution of health checks is started + // -> the listener is informed about progress and creates corresponding ouput + // -> consume that output and print it to the console + String next; + while ((next = listener.read()) != null) { + System.out.print(next); + System.out.flush(); + } + return null; + }); - private CompletableFuture performHealthCheck(BundleContext bundleContext, Context context) throws InvalidSyntaxException { - // Determine attributes (e.g. max length) for visualization - final Collection> serviceReferences = bundleContext.getServiceReferences(HealthCheck.class, null); - final List healthChecks = serviceReferences.stream().map(s -> bundleContext.getService(s)).collect(Collectors.toList()); - final int maxColorLength = Arrays.stream(Color.values()).map(c -> c.toAnsi()).max(Comparator.comparingInt(String::length)).get().length(); - final int maxDescriptionLength = healthChecks.stream().map(check -> check.getDescription()).max(Comparator.comparingInt(String::length)).orElse("").length(); - final int maxStatusLength = Arrays.stream(Status.values()).map(v -> v.name()).max(Comparator.comparingInt(String::length)).get().length() + maxColorLength + "\033[m".length() * 2 + Color.NoColor.toAnsi().length(); - final String descFormat = String.format(DESCRIPTION_FORMAT, maxDescriptionLength); - final String statusFormat = String.format(STATUS_FORMAT, maxStatusLength); - - // Run Health Checks - final CompletableFuture future = healthCheckService - .performAsyncHealthCheck(context, - healthCheck -> System.out.print(String.format(descFormat, healthCheck.getDescription())), - (healthCheck, response) -> { - final Status status = response.getStatus(); - final Color statusColor = determineColor(status); - final String statusText = String.format(statusFormat, Colorizer.colorize(status.name(), statusColor)); - System.out.print(statusText); - if (response.getMessage() != null) { - System.out.print(" => " + response.getMessage()); - } - System.out.println(); - }, - null); - return future; + return null; } private static Color determineColor(Status status) { @@ -133,4 +121,95 @@ private static Color determineColor(Status status) { default: return Color.NoColor; } } + + /** + * Listens for progress during the health check executions. + *

+ * The listener must not output to the console directly when its callbacks are called. There is some multiplexing + * logic that takes care that System.out is multiplexed to the Karaf shell session that invoked a command. + * When a callback is called the listener just stores a corresponding messages in its {@code out} queue. + * That queue is consumed by the thread that called the command. The final success or failure messages are + * used like a poison pill to indicate the end of messages. + */ + private static class Listener implements HealthCheckService.ProgressListener { + + private List checks; + private String descFormat, statusFormat; + private final Map responses = new IdentityHashMap<>(); + private final BlockingQueue out = new LinkedBlockingQueue<>(); + private boolean completed = false; + + private void print(String string) { + out.add(string); + } + + private void println() { + print("\n"); + } + + private void println(String string) { + print(string + "\n"); + } + + @Override + public synchronized void onHealthChecksFound(List healthChecks) { + this.checks = healthChecks; + final int maxColorLength = Arrays.stream(Color.values()).map(c -> c.toAnsi()).max(Comparator.comparingInt(String::length)).get().length(); + final int maxDescriptionLength = healthChecks.stream().map(check -> check.getDescription()).max(Comparator.comparingInt(String::length)).orElse("").length(); + final int maxStatusLength = Arrays.stream(Status.values()).map(v -> v.name()).max(Comparator.comparingInt(String::length)).get().length() + maxColorLength + "\033[m".length() * 2 + Color.NoColor.toAnsi().length(); + descFormat = String.format(DESCRIPTION_FORMAT, maxDescriptionLength); + statusFormat = String.format(STATUS_FORMAT, maxStatusLength); + printCurrentExecutionState(); + } + + @Override + public synchronized void onResponse(HealthCheck check, Response response) { + responses.put(check, response); + print(String.format("\033[%dA", checks.size())); // move cursor up + printCurrentExecutionState(); + } + + @Override + public synchronized void onAllHealthChecksCompleted(Health health) { + println(); + if (health.isSuccess()) { + println(SUCCESS_MESSAGE); + } else { + println(FAILURE_MESSAGE); + } + } + + private void printCurrentExecutionState() { + for (var healthCheck : checks) { + String str; + str = String.format(descFormat, healthCheck.getDescription()); + var response = responses.get(healthCheck); + if (response != null) { + final Status status = response.getStatus(); + final Color statusColor = determineColor(status); + final String statusText = String.format(statusFormat, Colorizer.colorize(status.name(), statusColor)); + str = str + statusText; + if (response.getMessage() != null) { + str = str + " => " + response.getMessage(); + } + } else { + str = str + "[ ]"; + } + println(str); + } + } + + public String read() { + if (completed) { + return null; + } + try { + var string = out.take(); + completed = isEndMessage(string); + return string; + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + } } diff --git a/core/health/shell/src/main/java/org/opennms/core/health/shell/HealthCheckTagCompleter.java b/core/health/shell/src/main/java/org/opennms/core/health/shell/HealthCheckTagCompleter.java new file mode 100644 index 000000000000..5f8adcd7e722 --- /dev/null +++ b/core/health/shell/src/main/java/org/opennms/core/health/shell/HealthCheckTagCompleter.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2018-2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.health.shell; + +import java.util.List; +import java.util.stream.Collectors; + +import org.apache.karaf.shell.api.action.lifecycle.Reference; +import org.apache.karaf.shell.api.action.lifecycle.Service; +import org.apache.karaf.shell.api.console.CommandLine; +import org.apache.karaf.shell.api.console.Completer; +import org.apache.karaf.shell.api.console.Session; +import org.apache.karaf.shell.support.completers.StringsCompleter; +import org.opennms.core.health.api.HealthCheck; +import org.osgi.framework.BundleContext; +import org.osgi.framework.InvalidSyntaxException; + +@Service +public class HealthCheckTagCompleter implements Completer { + + @Reference + private BundleContext bundleContext; + + @Override + public int complete(Session session, CommandLine commandLine, List candidates) { + try { + var tags = bundleContext + .getServiceReferences(HealthCheck.class, null) + .stream() + .flatMap(s -> bundleContext.getService(s).getTags().stream()) + .collect(Collectors.toSet()); + StringsCompleter delegate = new StringsCompleter(); + delegate.getStrings().addAll(tags); + return delegate.complete(session, commandLine, candidates); + } catch (InvalidSyntaxException e) { + throw new RuntimeException("could not retrieve tags", e); + } + } + +} diff --git a/core/icmp-jna/pom.xml b/core/icmp-jna/pom.xml index 1b4a6e741391..89d2fe9bd18e 100644 --- a/core/icmp-jna/pom.xml +++ b/core/icmp-jna/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core @@ -62,7 +62,7 @@ true opennms-repo OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/core/ipc/common/aws-sqs/pom.xml b/core/ipc/common/aws-sqs/pom.xml deleted file mode 100644 index 0344e27d1ae5..000000000000 --- a/core/ipc/common/aws-sqs/pom.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - org.opennms.core.ipc - org.opennms.core.ipc.common - 28.1.1 - - 4.0.0 - org.opennms.core.ipc.common - org.opennms.core.ipc.common.aws-sqs - OpenNMS :: Core :: IPC :: Common :: Amazon SQS - bundle - - true - - - - - org.apache.felix - maven-bundle-plugin - true - - - JavaSE-1.8 - ${project.artifactId} - ${project.version} - - - - - org.apache.maven.plugins - maven-jar-plugin - - - - test-jar - - - - - - - - - com.google.guava - guava - - - org.opennms.core - org.opennms.core.logging - - - org.opennms.dependencies - aws-dependencies - pom - - - org.opennms.core - org.opennms.core.lib - - - org.osgi - org.osgi.compendium - provided - - - junit - junit - test - - - org.hamcrest - hamcrest-library - test - - - org.mockito - mockito-core - test - - - diff --git a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSConfig.java b/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSConfig.java deleted file mode 100644 index 98c8a7ef5a59..000000000000 --- a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSConfig.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.common.aws.sqs; - -import com.amazonaws.regions.Regions; - -/** - * Encapsulates all the SQS related bits that can be configured. - */ -public interface AmazonSQSConfig { - - /** - * Prefix to be added to all queues. - * - * This can be used to differentiate between OpenNMS deployments in a single region. - * - * @return the prefix, or null if no prefix should be used. - */ - String getQueuePrefix(); - - /** - * AWS region to use. - * - * @return the region, or null if the default region should be used. - */ - Regions getRegion(); - - /** - * AWS access key. - * - * @return the key, or null if the client should be initialized without static credentials. - */ - String getAccessKey(); - - /** - * AWS secret key. - * - * @return the key, or null if the client should be initialized without static credentials. - */ - String getSecretKey(); - - /** - * Convenience method that returns true if both an access key and secret key have been set. - * - * @return true if both an access key and secret key have been set, false otherwise. - */ - boolean hasStaticCredentials(); - - /** - * Used to force the SQS client to use HTTP instead of HTTPS. - * - * This can be used for testing, making it easier to intercept the messages sent over the wire. - * - * @return true if HTTP should be used insetad of HTTPS, false otherwise. - */ - boolean isUseHttp(); - - /** - * Retrieves the queue configuration for queues used by the Sink API. - * - * @return the queue configuration - */ - AmazonSQSQueueConfig getSinkQueueConfig(); - - /** - * Retrieves the queue configuration for queues used by the RPC API. - * - * @return the queue configuration - */ - AmazonSQSQueueConfig getRpcQueueConfig(); - -} diff --git a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSConstants.java b/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSConstants.java deleted file mode 100644 index 191ffb2ef510..000000000000 --- a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSConstants.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.common.aws.sqs; - -/** - * The Interface AmazonSQSConstants. - * - * @author Alejandro Galue - */ -public interface AmazonSQSConstants { - - final String AWS_CONFIG_PID = "org.opennms.core.ipc.aws.sqs"; - - final String AWS_CONFIG_SYS_PROP_PREFIX = AWS_CONFIG_PID + "."; - - final String SINK_QUEUE_PROP_PREFIX = "sink."; - - final String RPC_QUEUE_PROP_PREFIX = "rpc."; - - final String AWS_REGION = "aws_region"; - - final String AWS_ACCESS_KEY_ID = "aws_access_key_id"; - - final String AWS_SECRET_ACCESS_KEY = "aws_secret_access_key"; - - final String AWS_QUEUE_NAME_PREFIX = "aws_queue_name_prefix"; - - final String AWS_USE_HTTP = "aws_use_http"; - -} diff --git a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSManager.java b/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSManager.java deleted file mode 100644 index 8b776a57bcc5..000000000000 --- a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSManager.java +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.common.aws.sqs; - -import com.amazon.sqs.javamessaging.SQSConnectionFactory; -import com.amazonaws.services.sqs.AmazonSQS; - -public interface AmazonSQSManager { - - /** - * Retrieve the underlying SQS client. - * - * @return the sqs client - */ - AmazonSQS getSQSClient(); - - /** - * Retrieve a connection factory that wraps the - * SQS client as a JMS provider. - * - * @return the JMS connection factory - */ - SQSConnectionFactory getSQSConnectionFactory(); - - /** - * Retrieve the queue URL for the given Sink Module - * and create the queue if it does not already exist. - * - *

This is a blocking operation. If AWS is unreachable, - * the method will keep retrying indefinitely until the queue is - * created and the queue URL is determined, or the thread is interrupted.

- * - *

This function may cache the queue URL, avoiding unecesssary - * API calls.

- * - * @param moduleId the ID of the Sink Module - * @return the queue URL - */ - String getSinkQueueUrlAndCreateIfNecessary(String moduleId) throws InterruptedException; - - /** - * Retrieve the queue name to use for RPC request targetting - * a specific RPC Module and location. Also create the queue if - * it does not already exist. - * - *

This function may cache the queue URL, avoiding unecesssary - * API calls.

- * - * @param moduleId the ID of the RPC Module - * @param location the targetted location of the request - * @return the queue name - * @throws AmazonSQSQueueException if some error occured creating the queue or determining the URL - */ - String getRpcRequestQueueNameAndCreateIfNecessary(String moduleId, String location) throws AmazonSQSQueueException; - - /** - * Retrieve the queue name to use for RPC replies from a - * specific RPC Module and location. Also create the queue if - * it does not already exist. - * - *

This function may cache the queue URL, avoiding unecesssary - * API calls.

- * - * @param moduleId the ID of the RPC Module - * @param location the source location of the reply - * @return the queue name - * @throws AmazonSQSQueueException if some error occured creating the queue or determining the URL - */ - String getRpcReplyQueueNameAndCreateIfNecessary(String moduleId, String location) throws AmazonSQSQueueException; - - /** - * Send message. - * - *

This is a blocking operation. If AWS is unreachable, - * the method will keep retrying indefinitely until the message is delivered - * or the thread is interrupted.

- * - * @param queueUrl the queue URL - * @param body the message body - * @return the message ID - */ - String sendMessage(String queueUrl, String body) throws InterruptedException; - -} diff --git a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSQueueAttributes.java b/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSQueueAttributes.java deleted file mode 100644 index b4cd8fae8717..000000000000 --- a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSQueueAttributes.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.common.aws.sqs; - -import java.io.Serializable; - -/** - * An Enumeration for the SQS Queue Attributes. - */ -public enum AmazonSQSQueueAttributes implements Serializable { - - /** The Delay seconds. */ - DelaySeconds, - - /** The Maximum message size. */ - MaximumMessageSize, - - /** The Message retention period. */ - MessageRetentionPeriod, - - /** The Receive message wait time seconds. */ - ReceiveMessageWaitTimeSeconds, - - /** The Visibility timeout. */ - VisibilityTimeout, - - /** The FIFO queue. */ - FifoQueue, - - /** The Content based deduplication. */ - ContentBasedDeduplication, - - /** The Policy. */ - Policy, - - /** The Redrive policy. */ - RedrivePolicy, - - /** The KMS master key id. */ - KmsMasterKeyId, - - /** The KMS data key reuse period seconds. */ - KmsDataKeyReusePeriodSeconds -} diff --git a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSQueueConfig.java b/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSQueueConfig.java deleted file mode 100644 index 9d2dda776f41..000000000000 --- a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSQueueConfig.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.common.aws.sqs; - -import com.google.common.collect.ImmutableMap; - -import java.util.HashMap; -import java.util.Map; - -public class AmazonSQSQueueConfig { - - public static final ImmutableMap DEFAULT_QUEUE_ATTRIBUTES = new ImmutableMap.Builder() - .put(AmazonSQSQueueAttributes.DelaySeconds.toString(), "0") - .put(AmazonSQSQueueAttributes.MaximumMessageSize.toString(), "262144") - .put(AmazonSQSQueueAttributes.MessageRetentionPeriod.toString(), "1209600") - .put(AmazonSQSQueueAttributes.ReceiveMessageWaitTimeSeconds.toString(), "10") - .put(AmazonSQSQueueAttributes.VisibilityTimeout.toString(), "30") - .put(AmazonSQSQueueAttributes.FifoQueue.toString(), "false") - .put(AmazonSQSQueueAttributes.ContentBasedDeduplication.toString(), "false") - .build(); - - private final Map attributes; - - public AmazonSQSQueueConfig(Map sqsConfig) { - final Map attributes = new HashMap<>(); - for (AmazonSQSQueueAttributes attr : AmazonSQSQueueAttributes.values()) { - // Retrieve the property, using the default if provided - final String val = sqsConfig.getOrDefault(attr.toString(), DEFAULT_QUEUE_ATTRIBUTES.get(attr.toString())); - if (val != null) { - attributes.put(attr.toString(), val); - } - } - if (!Boolean.parseBoolean(attributes.get(AmazonSQSQueueAttributes.FifoQueue.toString()))) { - attributes.remove(AmazonSQSQueueAttributes.FifoQueue.toString()); - attributes.remove(AmazonSQSQueueAttributes.ContentBasedDeduplication.toString()); - } - this.attributes = ImmutableMap.copyOf(attributes); - } - - public Map getAttributes() { - return attributes; - } - - public boolean isFifoEnabled() { - return Boolean.parseBoolean(attributes.get(AmazonSQSQueueAttributes.FifoQueue.toString())); - } - - public boolean isFifoContentDedupEnabled() { - return Boolean.parseBoolean(attributes.get(AmazonSQSQueueAttributes.ContentBasedDeduplication.toString())); - - } - - @Override - public String toString() { - return "AmazonSQSQueueConfig{" + - "attributes=" + attributes + - '}'; - } -} diff --git a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSQueueException.java b/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSQueueException.java deleted file mode 100644 index 8fd53a7fdf9c..000000000000 --- a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/AmazonSQSQueueException.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.common.aws.sqs; - -public class AmazonSQSQueueException extends Exception { - - public AmazonSQSQueueException(Throwable cause) { - super(cause); - } -} diff --git a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/DefaultAmazonSQSManager.java b/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/DefaultAmazonSQSManager.java deleted file mode 100644 index f629c3c98d82..000000000000 --- a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/DefaultAmazonSQSManager.java +++ /dev/null @@ -1,244 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.common.aws.sqs; - -import com.amazon.sqs.javamessaging.ProviderConfiguration; -import com.amazon.sqs.javamessaging.SQSConnectionFactory; -import com.amazonaws.ClientConfiguration; -import com.amazonaws.Protocol; -import com.amazonaws.auth.AWSStaticCredentialsProvider; -import com.amazonaws.auth.BasicAWSCredentials; -import com.amazonaws.services.sqs.AmazonSQS; -import com.amazonaws.services.sqs.AmazonSQSClientBuilder; -import com.amazonaws.services.sqs.model.CreateQueueRequest; -import com.amazonaws.services.sqs.model.QueueNameExistsException; -import com.amazonaws.services.sqs.model.SendMessageRequest; -import com.amazonaws.services.sqs.model.SetQueueAttributesRequest; -import com.google.common.base.Strings; -import com.google.common.base.Supplier; -import com.google.common.base.Suppliers; -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; -import org.opennms.core.utils.SystemInfoUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.net.SocketException; -import java.net.UnknownHostException; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.ExecutionException; - -public class DefaultAmazonSQSManager implements AmazonSQSManager { - - private static final Logger LOG = LoggerFactory.getLogger(DefaultAmazonSQSManager.class); - - private final AmazonSQSConfig sqsConfig; - - /** - * Creates the SQS client in the first get. - */ - private final Supplier sqsClientSupplier = Suppliers.memoize(() -> createSQSClient()); - - /** - * Caches the RPC queue URL once created. - */ - private LoadingCache rpcQueueUrlsByName = CacheBuilder.newBuilder() - .maximumSize(1000) - .build(new CacheLoader() { - public String load(String queueName) { - return ensureRpcQueueExists(queueName); - } - }); - - /** - * Caches the Sink queue URL once created. - */ - private LoadingCache sinkQueueUrlsById = CacheBuilder.newBuilder() - .maximumSize(1000) - .build(new CacheLoader() { - public String load(String moduleId) { - final String queueName = getSinkQueueName(moduleId); - return ensureSinkQueueExists(queueName); - } - }); - - public DefaultAmazonSQSManager(AmazonSQSConfig sqsConfig) { - this.sqsConfig = Objects.requireNonNull(sqsConfig); - } - - @Override - public String getSinkQueueUrlAndCreateIfNecessary(String moduleId) throws InterruptedException { - while (true) { - try { - return sinkQueueUrlsById.get(moduleId); - } catch (ExecutionException e) { - if (isCause(UnknownHostException.class, e) || isCause(SocketException.class, e)) { - LOG.warn("Cannot reach AWS while trying to retrieve the queue details for module {}, trying again in 5 seconds...", moduleId); - Thread.sleep(5000); - } else { - throw new RuntimeException(e); - } - } - } - } - - @Override - public String getRpcRequestQueueNameAndCreateIfNecessary(String moduleId, String location) throws AmazonSQSQueueException { - final String rpcRequestQueueName = getRpcRequestQueueName(moduleId, location); - try { - rpcQueueUrlsByName.get(rpcRequestQueueName); - return rpcRequestQueueName; - } catch (ExecutionException e) { - throw new AmazonSQSQueueException(e); - } - } - - @Override - public String getRpcReplyQueueNameAndCreateIfNecessary(String moduleId, String location) throws AmazonSQSQueueException { - final String rpcReplyQueueName = getRpcReplyQueueName(moduleId, location); - try { - rpcQueueUrlsByName.get(rpcReplyQueueName); - return rpcReplyQueueName; - } catch (ExecutionException e) { - throw new AmazonSQSQueueException(e); - } - } - - @Override - public AmazonSQS getSQSClient() { - return sqsClientSupplier.get(); - } - - @Override - public SQSConnectionFactory getSQSConnectionFactory() { - return new SQSConnectionFactory( - new ProviderConfiguration(), - getSQSClient() - ); - } - - @Override - public String sendMessage(String queueUrl, String body) throws InterruptedException { - final SendMessageRequest sendMessageRequest = new SendMessageRequest(queueUrl, body); - if (sqsConfig.getSinkQueueConfig().isFifoEnabled()) { - sendMessageRequest.setMessageGroupId(queueUrl); - if (!sqsConfig.getSinkQueueConfig().isFifoContentDedupEnabled()) { - sendMessageRequest.setMessageDeduplicationId(Long.toString(System.nanoTime())); - } - } - while (true) { - try { - return getSQSClient().sendMessage(sendMessageRequest).getMessageId(); - } catch (RuntimeException ex) { - if (isCause(UnknownHostException.class, ex) || isCause(SocketException.class, ex)) { - LOG.warn("Cannot reach AWS at {} while trying to send a message, trying again in 5 seconds...", queueUrl); - Thread.sleep(5000); - } else { - throw ex; - } - } - } - } - - private AmazonSQS createSQSClient() { - final AmazonSQSClientBuilder builder = AmazonSQSClientBuilder.standard() - .withRegion(sqsConfig.getRegion()); - if (sqsConfig.hasStaticCredentials()) { - final BasicAWSCredentials awsCreds = new BasicAWSCredentials(sqsConfig.getAccessKey(), sqsConfig.getSecretKey()); - builder.withCredentials(new AWSStaticCredentialsProvider(awsCreds)); - } - if (sqsConfig.isUseHttp()) { - final ClientConfiguration clientConfig = new ClientConfiguration(); - clientConfig.setProtocol(Protocol.HTTP); - builder.withClientConfiguration(clientConfig); - } - return builder.build(); - } - - private String getRpcRequestQueueName(String moduleId, String location) { - String queueName = String.format("%s-%s-%s", - SystemInfoUtils.getInstanceId(), - moduleId, - location); - if (!Strings.isNullOrEmpty(sqsConfig.getQueuePrefix())) { - queueName = String.format("%s-%s", sqsConfig.getQueuePrefix(), queueName); - } - return queueName; - } - - private String getRpcReplyQueueName(String moduleId, String location) { - return getRpcRequestQueueName(moduleId, location) + "-Reply"; - } - - protected String getSinkQueueName(String moduleId) { - final String prefix = !Strings.isNullOrEmpty(sqsConfig.getQueuePrefix()) ? sqsConfig.getQueuePrefix() + "-" : ""; - final String suffix = sqsConfig.getSinkQueueConfig().isFifoEnabled() ? ".fifo" : ""; - return String.format("%s%s-%s-%s%s", - prefix, - SystemInfoUtils.getInstanceId(), - "Sink", - moduleId, - suffix); - } - - private String ensureRpcQueueExists(String queueName) { - final Map attributes = sqsConfig.getRpcQueueConfig().getAttributes(); - return ensureQueueExists(queueName, attributes); - } - - private String ensureSinkQueueExists(String queueName) { - final Map attributes = sqsConfig.getSinkQueueConfig().getAttributes(); - return ensureQueueExists(queueName, attributes); - } - - private String ensureQueueExists(String queueName, Map attributes) { - final AmazonSQS sqsClient = getSQSClient(); - try { - return sqsClient.createQueue(new CreateQueueRequest(queueName).withAttributes(attributes)).getQueueUrl(); - } catch (QueueNameExistsException e) { - final String queueUrl = sqsClient.getQueueUrl(queueName).getQueueUrl(); - sqsClient.setQueueAttributes(new SetQueueAttributesRequest(queueUrl, attributes)); - return queueUrl; - } - } - - /** - * Checks if is cause. - * - * @param expected the expected - * @param exc the exception - * @return true, if is cause - */ - private static boolean isCause(Class expected, Throwable exc) { - return expected.isInstance(exc) || (exc != null && isCause(expected, exc.getCause())); - } - -} diff --git a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/ManagedSQSConfig.java b/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/ManagedSQSConfig.java deleted file mode 100644 index cd950a3073d4..000000000000 --- a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/ManagedSQSConfig.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.common.aws.sqs; - -import org.osgi.service.cm.ConfigurationAdmin; - -import java.io.IOException; -import java.util.Dictionary; -import java.util.Enumeration; -import java.util.Map; - -public class ManagedSQSConfig extends MapBasedSQSConfig { - - public ManagedSQSConfig(ConfigurationAdmin configAdmin) throws IOException { - // Use the system properties as initial values and overwrite - // the values with the properties from org.opennms.core.ipc.aws.sqs.cfg - super(getConfigMapFromConfigAdmin(configAdmin, getConfigMapFromSystemProperties())); - } - - private static Map getConfigMapFromConfigAdmin(ConfigurationAdmin configAdmin, Map sqsConfig) throws IOException { - final Dictionary properties = configAdmin.getConfiguration(AmazonSQSConstants.AWS_CONFIG_PID).getProperties(); - if (properties != null) { - final Enumeration keys = properties.keys(); - while (keys.hasMoreElements()) { - final String key = keys.nextElement(); - sqsConfig.put(key, (String)properties.get(key)); - } - } - return sqsConfig; - } -} diff --git a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/MapBasedSQSConfig.java b/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/MapBasedSQSConfig.java deleted file mode 100644 index 68bb90dddfa1..000000000000 --- a/core/ipc/common/aws-sqs/src/main/java/org/opennms/core/ipc/common/aws/sqs/MapBasedSQSConfig.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.common.aws.sqs; - -import com.amazonaws.regions.Regions; - -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; - -/** - * SQS configuration from a map of values. - * - * The associated keys are defined in {@link AmazonSQSConstants}. - * - */ -public class MapBasedSQSConfig implements AmazonSQSConfig { - public static final String DEFAULT_REGION = Regions.US_EAST_1.getName(); - private final String queuePrefix; - private final Regions region; - private final String accessKey; - private final String secretKey; - private final boolean useHttp; - private final AmazonSQSQueueConfig sinkQueueConfig; - private final AmazonSQSQueueConfig rpcQueueConfig; - - public MapBasedSQSConfig() { - this(getConfigMapFromSystemProperties()); - } - - public MapBasedSQSConfig(Map sqsConfig) { - queuePrefix = sqsConfig.get(AmazonSQSConstants.AWS_QUEUE_NAME_PREFIX); - region = Regions.fromName(sqsConfig.getOrDefault(AmazonSQSConstants.AWS_REGION, DEFAULT_REGION)); - accessKey = sqsConfig.get(AmazonSQSConstants.AWS_ACCESS_KEY_ID); - secretKey = sqsConfig.get(AmazonSQSConstants.AWS_SECRET_ACCESS_KEY); - useHttp = Boolean.TRUE.toString().equals(sqsConfig.get(AmazonSQSConstants.AWS_USE_HTTP)); - sinkQueueConfig = new AmazonSQSQueueConfig(filterKeysByPrefix(sqsConfig, AmazonSQSConstants.SINK_QUEUE_PROP_PREFIX)); - rpcQueueConfig = new AmazonSQSQueueConfig(filterKeysByPrefix(sqsConfig, AmazonSQSConstants.RPC_QUEUE_PROP_PREFIX)); - } - - protected static Map getConfigMapFromSystemProperties() { - return filterKeysByPrefix(System.getProperties().entrySet(), AmazonSQSConstants.AWS_CONFIG_SYS_PROP_PREFIX); - } - - @Override - public String getQueuePrefix() { - return queuePrefix; - } - - @Override - public Regions getRegion() { - return region; - } - - @Override - public boolean hasStaticCredentials() { - return accessKey != null && secretKey != null; - } - - @Override - public String getAccessKey() { - return accessKey; - } - - @Override - public String getSecretKey() { - return secretKey; - } - - @Override - public boolean isUseHttp() { - return useHttp; - } - - @Override - public AmazonSQSQueueConfig getSinkQueueConfig() { - return sinkQueueConfig; - } - - @Override - public AmazonSQSQueueConfig getRpcQueueConfig() { - return rpcQueueConfig; - } - - @Override - public String toString() { - return "MapBasedSQSConfig{" + - "queuePrefix='" + queuePrefix + '\'' + - ", region='" + region + '\'' + - ", accessKey='" + accessKey != null ? "********" : accessKey + '\'' + - ", secretKey='" + secretKey != null ? "********" : secretKey + '\'' + - ", useHttp=" + useHttp + - ", sinkQueueConfig=" + sinkQueueConfig + - ", rpcQueueConfig=" + rpcQueueConfig + - '}'; - } - - private static Map filterKeysByPrefix(Map map, String prefix) { - return filterKeysByPrefix(map.entrySet(), prefix); - } - - private static Map filterKeysByPrefix(Set> entrySet, String prefix) { - return entrySet.stream() - // Filter out invalid keys and/or values - .filter(e -> e.getKey() != null && e.getKey() instanceof String) - .filter(e -> e.getValue() == null || e.getValue() instanceof String) - .map(e -> (Map.Entry)e) - // Extract the keys from the map that are prefixed - .filter(e -> e.getKey().startsWith(prefix)) - // Remove the prefix, and collect the results back into a map - .collect(Collectors.toMap(e -> e.getKey().substring(prefix.length(), e.getKey().length()), - e -> e.getValue())); - } -} diff --git a/core/ipc/common/aws-sqs/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/core/ipc/common/aws-sqs/src/main/resources/OSGI-INF/blueprint/blueprint.xml deleted file mode 100644 index 7517446b4032..000000000000 --- a/core/ipc/common/aws-sqs/src/main/resources/OSGI-INF/blueprint/blueprint.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - diff --git a/core/ipc/common/aws-sqs/src/test/java/org/opennms/core/ipc/common/aws/sqs/DefaultAmazonSQSManagerTest.java b/core/ipc/common/aws-sqs/src/test/java/org/opennms/core/ipc/common/aws/sqs/DefaultAmazonSQSManagerTest.java deleted file mode 100644 index 99a62b863fd9..000000000000 --- a/core/ipc/common/aws-sqs/src/test/java/org/opennms/core/ipc/common/aws/sqs/DefaultAmazonSQSManagerTest.java +++ /dev/null @@ -1,118 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2002-2018 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2018 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.common.aws.sqs; - -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.hasEntry; -import static org.hamcrest.Matchers.hasKey; -import static org.hamcrest.core.IsNot.not; -import static org.junit.Assert.assertEquals; -import java.util.HashMap; -import java.util.Map; - -import org.opennms.core.utils.SystemInfoUtils; - -import org.junit.Test; - -/** - * The Class DefaultAmazonSQSManagerTest. - * - * @author Alejandro Galue - */ -public class DefaultAmazonSQSManagerTest { - - /** - * Test queue name. - */ - @Test - public void testQueueName() { - String moduleId = "Heartbeat"; - Map sqsConfig = new HashMap<>(); - DefaultAmazonSQSManager mgr = getManagerWith(sqsConfig); - assertEquals(SystemInfoUtils.DEFAULT_INSTANCE_ID + "-Sink-Heartbeat", mgr.getSinkQueueName(moduleId)); - - sqsConfig.put(AmazonSQSConstants.AWS_QUEUE_NAME_PREFIX, "PROD"); - mgr = getManagerWith(sqsConfig); - assertEquals("PROD-" + SystemInfoUtils.DEFAULT_INSTANCE_ID + "-Sink-Heartbeat", mgr.getSinkQueueName(moduleId)); - - sqsConfig.put(AmazonSQSConstants.SINK_QUEUE_PROP_PREFIX + AmazonSQSQueueAttributes.FifoQueue.toString(), "true"); - mgr = getManagerWith(sqsConfig); - assertEquals("PROD-" + SystemInfoUtils.DEFAULT_INSTANCE_ID + "-Sink-Heartbeat.fifo", mgr.getSinkQueueName(moduleId)); - } - - /** - * Test queue attributes. - */ - @Test - public void testQueueAttributes() { - Map sqsConfig = new HashMap<>(); - sqsConfig.put(AmazonSQSConstants.AWS_REGION, "us-east-2"); - - // FifoQueue=false should not be passed. - AmazonSQSQueueConfig queueConfig = getSinkQueueConfig(sqsConfig); - Map queueAttributes = queueConfig.getAttributes(); - assertThat(queueAttributes, not(hasKey(AmazonSQSQueueAttributes.FifoQueue.toString()))); - assertThat(queueAttributes, not(hasKey(AmazonSQSQueueAttributes.ContentBasedDeduplication.toString()))); - - sqsConfig.put(AmazonSQSConstants.SINK_QUEUE_PROP_PREFIX + AmazonSQSQueueAttributes.FifoQueue.toString(), "true"); - queueConfig = getSinkQueueConfig(sqsConfig); - queueAttributes = queueConfig.getAttributes(); - assertThat(queueConfig.isFifoEnabled(), equalTo(true)); - assertThat(queueConfig.isFifoContentDedupEnabled(), equalTo(false)); - // FifoQueue was added as well as ContentBasedDeduplication - assertThat(queueAttributes, hasEntry(AmazonSQSQueueAttributes.FifoQueue.toString(), "true")); - assertThat(queueAttributes, hasEntry(AmazonSQSQueueAttributes.ContentBasedDeduplication.toString(), "false")); - - sqsConfig.put(AmazonSQSConstants.SINK_QUEUE_PROP_PREFIX + AmazonSQSQueueAttributes.ContentBasedDeduplication.toString(), "true"); - queueConfig = getSinkQueueConfig(sqsConfig); - queueAttributes = queueConfig.getAttributes(); - assertThat(queueConfig.isFifoEnabled(), equalTo(true)); - assertThat(queueConfig.isFifoContentDedupEnabled(), equalTo(true)); - // FifoQueue was added as well as ContentBasedDeduplication - assertThat(queueAttributes, hasEntry(AmazonSQSQueueAttributes.FifoQueue.toString(), "true")); - assertThat(queueAttributes, hasEntry(AmazonSQSQueueAttributes.ContentBasedDeduplication.toString(), "true")); - - // Another entry - sqsConfig.put(AmazonSQSConstants.SINK_QUEUE_PROP_PREFIX + AmazonSQSQueueAttributes.Policy.toString(), "a-policy-here"); - queueConfig = getSinkQueueConfig(sqsConfig); - queueAttributes = queueConfig.getAttributes(); - assertThat(queueAttributes, hasEntry(AmazonSQSQueueAttributes.Policy.toString(), "a-policy-here")); - } - - private DefaultAmazonSQSManager getManagerWith(Map sqsConfig) { - AmazonSQSConfig config = new MapBasedSQSConfig(sqsConfig); - return new DefaultAmazonSQSManager(config); - } - - private AmazonSQSQueueConfig getSinkQueueConfig(Map sqsConfig) { - AmazonSQSConfig config = new MapBasedSQSConfig(sqsConfig); - return config.getSinkQueueConfig(); - } -} diff --git a/core/ipc/common/kafka-shell/pom.xml b/core/ipc/common/kafka-shell/pom.xml index b77879e4ae5d..6c32428f6fae 100644 --- a/core/ipc/common/kafka-shell/pom.xml +++ b/core/ipc/common/kafka-shell/pom.xml @@ -5,7 +5,7 @@ org.opennms.core.ipc.common org.opennms.core.ipc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/core/ipc/common/kafka/pom.xml b/core/ipc/common/kafka/pom.xml index e4c6b0f3e4fc..6caf521d97e9 100644 --- a/core/ipc/common/kafka/pom.xml +++ b/core/ipc/common/kafka/pom.xml @@ -4,7 +4,7 @@ org.opennms.core.ipc org.opennms.core.ipc.common - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.common @@ -46,7 +46,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn diff --git a/core/ipc/common/kafka/src/main/java/org/opennms/core/ipc/common/kafka/KafkaTwinConstants.java b/core/ipc/common/kafka/src/main/java/org/opennms/core/ipc/common/kafka/KafkaTwinConstants.java new file mode 100644 index 000000000000..0ca3a735c5cf --- /dev/null +++ b/core/ipc/common/kafka/src/main/java/org/opennms/core/ipc/common/kafka/KafkaTwinConstants.java @@ -0,0 +1,34 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2016 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2016 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.common.kafka; + +public interface KafkaTwinConstants { + String KAFKA_CONFIG_PID = "org.opennms.core.ipc.twin.kafka"; + String KAFKA_CONFIG_SYS_PROP_PREFIX = KAFKA_CONFIG_PID + "."; +} diff --git a/core/ipc/common/pom.xml b/core/ipc/common/pom.xml index f829dad688af..f4be6d5d8009 100644 --- a/core/ipc/common/pom.xml +++ b/core/ipc/common/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.ipc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc @@ -11,7 +11,6 @@ pom OpenNMS :: Core :: IPC :: Common - aws-sqs kafka kafka-shell diff --git a/core/ipc/grpc/client/pom.xml b/core/ipc/grpc/client/pom.xml index b1b34757a07e..60300ee844eb 100644 --- a/core/ipc/grpc/client/pom.xml +++ b/core/ipc/grpc/client/pom.xml @@ -5,7 +5,7 @@ org.opennms.core.ipc.grpc org.opennms.core.ipc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -59,12 +59,12 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided org.osgi - org.osgi.core + osgi.core provided diff --git a/core/ipc/grpc/client/src/main/java/org/opennms/core/ipc/grpc/client/MinionGrpcClient.java b/core/ipc/grpc/client/src/main/java/org/opennms/core/ipc/grpc/client/MinionGrpcClient.java index 65200b157510..70330a34216a 100644 --- a/core/ipc/grpc/client/src/main/java/org/opennms/core/ipc/grpc/client/MinionGrpcClient.java +++ b/core/ipc/grpc/client/src/main/java/org/opennms/core/ipc/grpc/client/MinionGrpcClient.java @@ -122,7 +122,7 @@ public class MinionGrpcClient extends AbstractMessageDispatcherFactory { private static final Logger LOG = LoggerFactory.getLogger(MinionGrpcClient.class); - private static final long SINK_BLOCKING_TIMEOUT = 3000; + private static final long SINK_BLOCKING_TIMEOUT = 1000; private static final int SINK_BLOCKING_THREAD_POOL_SIZE = 100; private ManagedChannel channel; private OpenNMSIpcGrpc.OpenNMSIpcStub asyncStub; diff --git a/core/ipc/grpc/common/pom.xml b/core/ipc/grpc/common/pom.xml index 01c633112a9a..60bb3e3dcdbe 100644 --- a/core/ipc/grpc/common/pom.xml +++ b/core/ipc/grpc/common/pom.xml @@ -5,7 +5,7 @@ org.opennms.core.ipc.grpc org.opennms.core.ipc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.grpc @@ -34,7 +34,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/core/ipc/grpc/itests/pom.xml b/core/ipc/grpc/itests/pom.xml index a1fa1d27cf0e..26c714abee3b 100644 --- a/core/ipc/grpc/itests/pom.xml +++ b/core/ipc/grpc/itests/pom.xml @@ -5,7 +5,7 @@ org.opennms.core.ipc.grpc org.opennms.core.ipc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -47,12 +47,12 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided org.osgi - org.osgi.core + osgi.core provided diff --git a/core/ipc/grpc/itests/src/test/java/org/opennms/core/ipc/grpc/GrpcIpcRpcIT.java b/core/ipc/grpc/itests/src/test/java/org/opennms/core/ipc/grpc/GrpcIpcRpcIT.java index 9af10319e3e2..d68134646518 100644 --- a/core/ipc/grpc/itests/src/test/java/org/opennms/core/ipc/grpc/GrpcIpcRpcIT.java +++ b/core/ipc/grpc/itests/src/test/java/org/opennms/core/ipc/grpc/GrpcIpcRpcIT.java @@ -47,6 +47,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.opennms.core.grpc.common.GrpcIpcServer; +import org.opennms.core.grpc.common.GrpcIpcServerBuilder; import org.opennms.core.ipc.grpc.client.GrpcClientConstants; import org.opennms.core.ipc.grpc.client.MinionGrpcClient; import org.opennms.core.ipc.grpc.common.RpcRequestProto; @@ -91,8 +93,8 @@ public void setup() throws Exception { grpcClient = new MinionGrpcClient(minionIdentity, configAdmin); grpcClient.bind(echoRpcModule); - server = new OpennmsGrpcServer(); - server.setConfigAdmin(configAdmin); + GrpcIpcServer grpcIpcServer = new GrpcIpcServerBuilder(configAdmin, port, "PT0S"); + server = new OpennmsGrpcServer(grpcIpcServer); echoClient = new MockEchoClient(server); server.start(); grpcClient.start(); @@ -120,7 +122,7 @@ public void testRpcWithDefaultLocation() { @Test(timeout = 30000) public void testRpcAtRemoteLocation() { - await().atMost(10, TimeUnit.SECONDS).pollInterval(2, TimeUnit.SECONDS) + await().atMost(15, TimeUnit.SECONDS).pollInterval(2, TimeUnit.SECONDS) .until(() -> { grpcClient.dispatch(new HeartbeatModule(), null, new Heartbeat()); return server.getRpcHandlerByLocation().size(); @@ -135,12 +137,11 @@ public void testRpcAtRemoteLocation() { } catch (InterruptedException | ExecutionException e) { fail(); } - } @Test(timeout = 30000) public void testLargeMessageWithRpcAtRemoteLocation() { - await().atMost(10, TimeUnit.SECONDS).pollInterval(2, TimeUnit.SECONDS) + await().atMost(15, TimeUnit.SECONDS).pollInterval(2, TimeUnit.SECONDS) .until(() -> { grpcClient.dispatch(new HeartbeatModule(), null, new Heartbeat()); return server.getRpcHandlerByLocation().size(); diff --git a/core/ipc/grpc/itests/src/test/java/org/opennms/core/ipc/grpc/GrpcIpcSinkIT.java b/core/ipc/grpc/itests/src/test/java/org/opennms/core/ipc/grpc/GrpcIpcSinkIT.java index 9fb1b69d5ff8..a28281d66f03 100644 --- a/core/ipc/grpc/itests/src/test/java/org/opennms/core/ipc/grpc/GrpcIpcSinkIT.java +++ b/core/ipc/grpc/itests/src/test/java/org/opennms/core/ipc/grpc/GrpcIpcSinkIT.java @@ -44,6 +44,8 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.opennms.core.grpc.common.GrpcIpcServer; +import org.opennms.core.grpc.common.GrpcIpcServerBuilder; import org.opennms.core.ipc.grpc.client.GrpcClientConstants; import org.opennms.core.ipc.grpc.client.MinionGrpcClient; import org.opennms.core.ipc.grpc.server.GrpcServerConstants; @@ -82,8 +84,8 @@ public void setup() throws Exception { MinionIdentity minionIdentity = new MockMinionIdentity(REMOTE_LOCATION_NAME); grpcClient = new MinionGrpcClient(minionIdentity, configAdmin); - server = new OpennmsGrpcServer(); - server.setConfigAdmin(configAdmin); + GrpcIpcServer grpcIpcServer = new GrpcIpcServerBuilder(configAdmin, port, "PT0S"); + server = new OpennmsGrpcServer(grpcIpcServer); grpcClient.start(); } diff --git a/core/ipc/grpc/itests/src/test/java/org/opennms/core/ipc/grpc/GrpcTLSMutualAuthIT.java b/core/ipc/grpc/itests/src/test/java/org/opennms/core/ipc/grpc/GrpcTLSMutualAuthIT.java index 0e472e97bb27..4ef9e0c561e1 100644 --- a/core/ipc/grpc/itests/src/test/java/org/opennms/core/ipc/grpc/GrpcTLSMutualAuthIT.java +++ b/core/ipc/grpc/itests/src/test/java/org/opennms/core/ipc/grpc/GrpcTLSMutualAuthIT.java @@ -44,6 +44,8 @@ import org.junit.Before; import org.junit.Test; +import org.opennms.core.grpc.common.GrpcIpcServer; +import org.opennms.core.grpc.common.GrpcIpcServerBuilder; import org.opennms.core.ipc.grpc.client.GrpcClientConstants; import org.opennms.core.ipc.grpc.client.MinionGrpcClient; import org.opennms.core.ipc.grpc.server.GrpcServerConstants; @@ -96,8 +98,8 @@ public void setup() throws Exception { grpcClient = new MinionGrpcClient(minionIdentity, configAdmin); grpcClient.bind(echoRpcModule); - server = new OpennmsGrpcServer(); - server.setConfigAdmin(configAdmin); + GrpcIpcServer grpcIpcServer = new GrpcIpcServerBuilder(configAdmin, port, "PT0S"); + server = new OpennmsGrpcServer(grpcIpcServer); echoClient = new MockEchoClient(server); server.start(); grpcClient.start(); @@ -105,7 +107,7 @@ public void setup() throws Exception { @Test(timeout = 30000) public void testgRPCWithTLSAtRemoteLocation() { - await().atMost(10, TimeUnit.SECONDS).pollInterval(2, TimeUnit.SECONDS) + await().atMost(15, TimeUnit.SECONDS).pollInterval(2, TimeUnit.SECONDS) .until(() -> { grpcClient.dispatch(new HeartbeatModule(), null, new Heartbeat()); return server.getRpcHandlerByLocation().size(); diff --git a/core/ipc/grpc/pom.xml b/core/ipc/grpc/pom.xml index 6afd4b1b15eb..f16f5d7ca094 100644 --- a/core/ipc/grpc/pom.xml +++ b/core/ipc/grpc/pom.xml @@ -5,7 +5,7 @@ org.opennms.core.ipc org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 OpenNMS :: Core :: IPC :: GRPC :: Parent diff --git a/core/ipc/grpc/server/pom.xml b/core/ipc/grpc/server/pom.xml index 20c16ed4de87..2c1e7dfbb6de 100644 --- a/core/ipc/grpc/server/pom.xml +++ b/core/ipc/grpc/server/pom.xml @@ -5,7 +5,7 @@ org.opennms.core.ipc.grpc org.opennms.core.ipc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.grpc @@ -33,7 +33,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided @@ -41,6 +41,11 @@ grpc-netty-shaded ${grpcVersion} + + org.opennms.core.grpc + org.opennms.core.grpc.common + ${project.version} + org.opennms.core.ipc.grpc org.opennms.core.ipc.grpc.common @@ -63,7 +68,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/core/ipc/grpc/server/src/main/java/org/opennms/core/ipc/grpc/server/OpennmsGrpcServer.java b/core/ipc/grpc/server/src/main/java/org/opennms/core/ipc/grpc/server/OpennmsGrpcServer.java index 6fdbb7026ed2..751b6115595b 100644 --- a/core/ipc/grpc/server/src/main/java/org/opennms/core/ipc/grpc/server/OpennmsGrpcServer.java +++ b/core/ipc/grpc/server/src/main/java/org/opennms/core/ipc/grpc/server/OpennmsGrpcServer.java @@ -28,26 +28,15 @@ package org.opennms.core.ipc.grpc.server; -import static org.opennms.core.ipc.grpc.server.GrpcServerConstants.DEFAULT_GRPC_PORT; import static org.opennms.core.ipc.grpc.server.GrpcServerConstants.DEFAULT_GRPC_TTL; -import static org.opennms.core.ipc.grpc.server.GrpcServerConstants.DEFAULT_MESSAGE_SIZE; -import static org.opennms.core.ipc.grpc.server.GrpcServerConstants.GRPC_MAX_INBOUND_SIZE; -import static org.opennms.core.ipc.grpc.server.GrpcServerConstants.GRPC_SERVER_PID; -import static org.opennms.core.ipc.grpc.server.GrpcServerConstants.GRPC_SERVER_PORT; import static org.opennms.core.ipc.grpc.server.GrpcServerConstants.GRPC_TTL_PROPERTY; -import static org.opennms.core.ipc.grpc.server.GrpcServerConstants.PRIVATE_KEY_FILE_PATH; -import static org.opennms.core.ipc.grpc.server.GrpcServerConstants.SERVER_CERTIFICATE_FILE_PATH; -import static org.opennms.core.ipc.grpc.server.GrpcServerConstants.TLS_ENABLED; -import static org.opennms.core.ipc.grpc.server.GrpcServerConstants.TRUST_CERTIFICATE_FILE_PATH; import static org.opennms.core.ipc.sink.api.Message.SINK_METRIC_CONSUMER_DOMAIN; import static org.opennms.core.rpc.api.RpcModule.MINION_HEADERS_MODULE; import static org.opennms.core.tracing.api.TracerConstants.TAG_LOCATION; import static org.opennms.core.tracing.api.TracerConstants.TAG_SYSTEM_ID; import static org.opennms.core.tracing.api.TracerConstants.TAG_TIMEOUT; -import java.io.File; import java.io.IOException; -import java.net.InetSocketAddress; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; @@ -65,7 +54,7 @@ import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicBoolean; -import org.opennms.core.ipc.grpc.common.ConfigUtils; +import org.opennms.core.grpc.common.GrpcIpcServer; import org.opennms.core.ipc.grpc.common.Empty; import org.opennms.core.ipc.grpc.common.OpenNMSIpcGrpc; import org.opennms.core.ipc.grpc.common.RpcRequestProto; @@ -89,7 +78,6 @@ import org.opennms.core.tracing.util.TracingInfoCarrier; import org.opennms.core.utils.PropertiesUtils; import org.opennms.distributed.core.api.Identity; -import org.osgi.service.cm.ConfigurationAdmin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -104,12 +92,6 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.protobuf.ByteString; -import io.grpc.Server; -import io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts; -import io.grpc.netty.shaded.io.grpc.netty.NettyServerBuilder; -import io.grpc.netty.shaded.io.netty.handler.ssl.ClientAuth; -import io.grpc.netty.shaded.io.netty.handler.ssl.SslContextBuilder; -import io.grpc.netty.shaded.io.netty.handler.ssl.SslProvider; import io.grpc.stub.StreamObserver; import io.opentracing.References; import io.opentracing.Scope; @@ -141,8 +123,7 @@ public class OpennmsGrpcServer extends AbstractMessageConsumerManager implements RpcClientFactory { private static final Logger LOG = LoggerFactory.getLogger(OpennmsGrpcServer.class); - private ConfigurationAdmin configAdmin; - private Server server; + private final GrpcIpcServer grpcIpcServer; private String location; private Identity identity; private Properties properties; @@ -184,26 +165,19 @@ public class OpennmsGrpcServer extends AbstractMessageConsumerManager implements // Maintains the map of sink consumer executor and by module Id. private final Map sinkConsumersByModuleId = new ConcurrentHashMap<>(); + public OpennmsGrpcServer(GrpcIpcServer grpcIpcServer) { + this.grpcIpcServer = grpcIpcServer; + } + public void start() throws IOException { try (Logging.MDCCloseable mdc = Logging.withPrefixCloseable(RpcClientFactory.LOG_PREFIX)) { - properties = ConfigUtils.getPropertiesFromConfig(configAdmin, GRPC_SERVER_PID); - int port = PropertiesUtils.getProperty(properties, GRPC_SERVER_PORT, DEFAULT_GRPC_PORT); - int maxInboundMessageSize = PropertiesUtils.getProperty(properties, GRPC_MAX_INBOUND_SIZE, DEFAULT_MESSAGE_SIZE); + + grpcIpcServer.startServer(new OpennmsIpcService()); + LOG.info("Added RPC/Sink Service to OpenNMS IPC Grpc Server"); + + properties = grpcIpcServer.getProperties(); ttl = PropertiesUtils.getProperty(properties, GRPC_TTL_PROPERTY, DEFAULT_GRPC_TTL); - boolean tlsEnabled = PropertiesUtils.getProperty(properties, TLS_ENABLED, false); - - NettyServerBuilder serverBuilder = NettyServerBuilder.forAddress(new InetSocketAddress(port)) - .addService(new OpennmsIpcService()) - .maxInboundMessageSize(maxInboundMessageSize); - if (tlsEnabled) { - SslContextBuilder sslContextBuilder = getSslContextBuilder(); - if (sslContextBuilder != null) { - serverBuilder.sslContext(sslContextBuilder.build()); - LOG.info("TLS enabled for gRPC"); - } - } - server = serverBuilder.build(); rpcTimeoutExecutor.execute(this::handleRpcTimeouts); rpcMetricsReporter = JmxReporter.forRegistry(getRpcMetrics()) .inDomain(JMX_DOMAIN_RPC) @@ -213,35 +187,13 @@ public void start() throws IOException { .inDomain(SINK_METRIC_CONSUMER_DOMAIN) .build(); sinkMetricsReporter.start(); - server.start(); // Initialize tracer from tracer registry. if (tracerRegistry != null) { tracerRegistry.init(identity.getId()); } - LOG.info("OpenNMS gRPC server started"); } } - - private SslContextBuilder getSslContextBuilder() { - String certChainFilePath = properties.getProperty(SERVER_CERTIFICATE_FILE_PATH); - String privateKeyFilePath = properties.getProperty(PRIVATE_KEY_FILE_PATH); - String trustCertCollectionFilePath = properties.getProperty(TRUST_CERTIFICATE_FILE_PATH); - if (Strings.isNullOrEmpty(certChainFilePath) || Strings.isNullOrEmpty(privateKeyFilePath)) { - return null; - } - - SslContextBuilder sslClientContextBuilder = SslContextBuilder.forServer(new File(certChainFilePath), - new File(privateKeyFilePath)); - if (!Strings.isNullOrEmpty(trustCertCollectionFilePath)) { - sslClientContextBuilder.trustManager(new File(trustCertCollectionFilePath)); - sslClientContextBuilder.clientAuth(ClientAuth.REQUIRE); - } - return GrpcSslContexts.configure(sslClientContextBuilder, - SslProvider.OPENSSL); - } - - @Override protected void startConsumingForModule(SinkModule module) throws Exception { if (sinkConsumersByModuleId.get(module.getId()) == null) { @@ -463,10 +415,6 @@ public void setIdentity(Identity identity) { this.identity = identity; } - public void setConfigAdmin(ConfigurationAdmin configAdmin) { - this.configAdmin = configAdmin; - } - private MetricRegistry getRpcMetrics() { if (rpcMetrics == null) { rpcMetrics = new MetricRegistry(); @@ -519,9 +467,7 @@ public void shutdown() { if (sinkMetricsReporter != null) { sinkMetricsReporter.close(); } - if (server != null) { - server.shutdown(); - } + grpcIpcServer.stopServer(); rpcTimeoutExecutor.shutdownNow(); responseHandlerExecutor.shutdownNow(); LOG.info("OpenNMS gRPC server stopped"); diff --git a/core/ipc/grpc/server/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/core/ipc/grpc/server/src/main/resources/OSGI-INF/blueprint/blueprint.xml index 61f9129676ba..f07798edec66 100644 --- a/core/ipc/grpc/server/src/main/resources/OSGI-INF/blueprint/blueprint.xml +++ b/core/ipc/grpc/server/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -1,35 +1,21 @@ - - - - - - - - + + + + - diff --git a/core/ipc/osgi/pom.xml b/core/ipc/osgi/pom.xml index da519c39b356..17f96138353c 100644 --- a/core/ipc/osgi/pom.xml +++ b/core/ipc/osgi/pom.xml @@ -5,7 +5,7 @@ org.opennms.core.ipc org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -47,9 +47,19 @@ org.opennms.core.ipc.sink.common ${project.version} + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.api + ${project.version} + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.common + ${project.version} + org.osgi - org.osgi.core + osgi.core provided diff --git a/core/ipc/osgi/src/main/java/org/opennms/core/ipc/twin/osgi/OsgiTwinPublisher.java b/core/ipc/osgi/src/main/java/org/opennms/core/ipc/twin/osgi/OsgiTwinPublisher.java new file mode 100644 index 000000000000..7bb16dae447e --- /dev/null +++ b/core/ipc/osgi/src/main/java/org/opennms/core/ipc/twin/osgi/OsgiTwinPublisher.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.osgi; + +import java.io.IOException; + +import org.opennms.core.ipc.twin.api.TwinPublisher; +import org.opennms.core.soa.lookup.ServiceLookup; +import org.opennms.core.soa.lookup.ServiceLookupBuilder; +import org.opennms.core.soa.lookup.ServiceRegistryLookup; +import org.opennms.core.soa.support.DefaultServiceRegistry; + +public class OsgiTwinPublisher implements TwinPublisher { + + private final ServiceLookup, String> blockingServiceLookup; + + public OsgiTwinPublisher() { + this.blockingServiceLookup = new ServiceLookupBuilder(new ServiceRegistryLookup(DefaultServiceRegistry.INSTANCE)) + .blocking() + .build(); + ; + } + + private TwinPublisher getDelegate() throws IOException { + final TwinPublisher twinPublisher = this.blockingServiceLookup.lookup(TwinPublisher.class, "(!(strategy=delegate))"); + if (twinPublisher != null) { + return twinPublisher; + } else { + throw new IOException("Only delegate publisher is registered. No real publisher available"); + } + } + + @Override + public Session register(String key, Class clazz, String location) throws IOException { + return this.getDelegate().register(key, clazz, location); + } + + @Override + public void close() throws IOException { + this.getDelegate().close(); + } +} diff --git a/core/ipc/osgi/src/main/resources/META-INF/opennms/applicationContext-ipc-osgi.xml b/core/ipc/osgi/src/main/resources/META-INF/opennms/applicationContext-ipc-osgi.xml index acf688691795..35ebecdb56e1 100644 --- a/core/ipc/osgi/src/main/resources/META-INF/opennms/applicationContext-ipc-osgi.xml +++ b/core/ipc/osgi/src/main/resources/META-INF/opennms/applicationContext-ipc-osgi.xml @@ -17,6 +17,17 @@ + + + + + + + + + + + diff --git a/core/ipc/pom.xml b/core/ipc/pom.xml index c8da82fc73c4..cf98cf695d17 100644 --- a/core/ipc/pom.xml +++ b/core/ipc/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core @@ -16,5 +16,6 @@ sink grpc osgi + twin diff --git a/core/ipc/rpc/api/pom.xml b/core/ipc/rpc/api/pom.xml index 05e1aa2cfa5d..2120a2410a8c 100644 --- a/core/ipc/rpc/api/pom.xml +++ b/core/ipc/rpc/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.rpc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.rpc diff --git a/core/ipc/rpc/aws-sqs-impl/pom.xml b/core/ipc/rpc/aws-sqs-impl/pom.xml deleted file mode 100644 index 5bcf7ead15ee..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/pom.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - org.opennms.core.ipc - org.opennms.core.ipc.rpc - 28.1.1 - - 4.0.0 - org.opennms.core.ipc.rpc - org.opennms.core.ipc.rpc.aws-sqs-impl - OpenNMS :: Core :: IPC :: RPC :: Amazon SQS Impl. - bundle - - - - org.apache.felix - maven-bundle-plugin - true - - - JavaSE-1.8 - ${project.artifactId} - ${project.version} - - - - - - - - org.opennms.core.ipc.rpc - org.opennms.core.ipc.rpc.common - - - org.opennms.core.ipc.rpc - org.opennms.core.ipc.rpc.camel - - - org.opennms.core.ipc.common - org.opennms.core.ipc.common.aws-sqs - ${project.version} - - - org.opennms.features.distributed - core-api - ${project.version} - provided - - - org.opennms.core - org.opennms.core.daemon - test - - - org.opennms.core.test-api - org.opennms.core.test-api.activemq - test - - - org.opennms.core.test-api - org.opennms.core.test-api.snmp - test - - - org.opennms.core.test-api - org.opennms.core.test-api.services - test - - - org.opennms.core.tracing - org.opennms.core.tracing.registry - ${project.version} - test - - - org.opennms.core.test-api - org.opennms.core.test-api.camel - test - - - org.opennms.core.ipc.rpc - org.opennms.core.ipc.rpc.camel - ${project.version} - test-jar - test - - - org.hamcrest - hamcrest-library - test - - - org.opennms - opennms-dao - test - - - org.opennms - opennms-dao-mock - test - - - diff --git a/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/AmazonSQSClientPreProcessor.java b/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/AmazonSQSClientPreProcessor.java deleted file mode 100644 index 1c9c5ae6f8fa..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/AmazonSQSClientPreProcessor.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.rpc.aws.sqs; - -import org.apache.camel.Exchange; -import org.opennms.core.ipc.common.aws.sqs.AmazonSQSManager; -import org.opennms.core.ipc.common.aws.sqs.AmazonSQSQueueException; -import org.opennms.core.rpc.api.RpcRequest; -import org.opennms.core.rpc.api.RpcResponse; -import org.opennms.core.rpc.camel.CamelRpcClientPreProcessor; -import org.opennms.core.rpc.camel.CamelRpcConstants; -import org.opennms.core.rpc.camel.CamelRpcRequest; - -import java.util.Objects; - -public class AmazonSQSClientPreProcessor extends CamelRpcClientPreProcessor { - - private final AmazonSQSManager sqsManager; - - public AmazonSQSClientPreProcessor(AmazonSQSManager sqsManager) { - this.sqsManager = Objects.requireNonNull(sqsManager); - } - - @Override - public void process(Exchange exchange) throws AmazonSQSQueueException { - @SuppressWarnings("unchecked") - final CamelRpcRequest wrapper = exchange.getIn().getBody(CamelRpcRequest.class); - - final String requestQueueName = sqsManager.getRpcRequestQueueNameAndCreateIfNecessary( - wrapper.getModule().getId(), - wrapper.getRequest().getLocation()); - final String replyQueueName = sqsManager.getRpcReplyQueueNameAndCreateIfNecessary( - wrapper.getModule().getId(), - wrapper.getRequest().getLocation()); - exchange.getIn().setHeader(CamelRpcConstants.JMS_QUEUE_NAME_HEADER, requestQueueName); - exchange.getIn().setHeader(CamelRpcConstants.JMS_REPLY_TO_QUEUE_NAME_HEADER, replyQueueName); - - exchange.getIn().setHeader(CamelRpcConstants.CAMEL_JMS_REQUEST_TIMEOUT_HEADER, wrapper.getRequest().getTimeToLiveMs() != null ? wrapper.getRequest().getTimeToLiveMs() : CAMEL_JMS_REQUEST_TIMEOUT); - if (wrapper.getRequest().getSystemId() != null) { - exchange.getIn().setHeader(CamelRpcConstants.JMS_SYSTEM_ID_HEADER, wrapper.getRequest().getSystemId()); - } - - final String request = wrapper.getModule().marshalRequest((RpcRequest)wrapper.getRequest()); - exchange.getIn().setBody(request); - } -} diff --git a/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/AmazonSQSRPCConstants.java b/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/AmazonSQSRPCConstants.java deleted file mode 100644 index 251e33d699ff..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/AmazonSQSRPCConstants.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.rpc.aws.sqs; - -public interface AmazonSQSRPCConstants { - - static final String AWS_SQS_CORRELATION_ID_HEADER = "RPCCorrelationId"; - -} diff --git a/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/AmazonSQSServerProcessor.java b/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/AmazonSQSServerProcessor.java deleted file mode 100644 index e52afc451007..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/AmazonSQSServerProcessor.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.rpc.aws.sqs; - -import org.apache.camel.Exchange; -import org.opennms.core.rpc.api.RpcModule; -import org.opennms.core.rpc.api.RpcRequest; -import org.opennms.core.rpc.api.RpcResponse; -import org.opennms.core.rpc.camel.CamelRpcServerProcessor; -import org.opennms.core.tracing.api.TracerRegistry; - -public class AmazonSQSServerProcessor extends CamelRpcServerProcessor { - public AmazonSQSServerProcessor(RpcModule module, TracerRegistry tracerRegistry) { - super(module, tracerRegistry); - } - - @Override - public void postProcess(Exchange exchange) { - // Copy the value of the correlation id header from the in to the out - exchange.getOut().setHeader(AmazonSQSRPCConstants.AWS_SQS_CORRELATION_ID_HEADER, - exchange.getIn().getHeader(AmazonSQSRPCConstants.AWS_SQS_CORRELATION_ID_HEADER)); - } -} diff --git a/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/AmazonSQSServerRouteManager.java b/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/AmazonSQSServerRouteManager.java deleted file mode 100644 index 89018b85aa0a..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/AmazonSQSServerRouteManager.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.rpc.aws.sqs; - -import java.util.Objects; - -import org.apache.camel.CamelContext; -import org.apache.camel.ExchangePattern; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.jms.JmsEndpoint; -import org.opennms.core.ipc.common.aws.sqs.AmazonSQSManager; -import org.opennms.core.rpc.api.RpcModule; -import org.opennms.core.rpc.api.RpcRequest; -import org.opennms.core.rpc.api.RpcResponse; -import org.opennms.core.rpc.camel.CamelRpcServerRouteManager; -import org.opennms.core.tracing.api.TracerRegistry; -import org.opennms.distributed.core.api.MinionIdentity; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class AmazonSQSServerRouteManager extends CamelRpcServerRouteManager { - private static final Logger LOG = LoggerFactory.getLogger(CamelRpcServerRouteManager.class); - - private final AmazonSQSManager sqsManager; - private final TracerRegistry tracerRegistry; - - public AmazonSQSServerRouteManager(CamelContext context, MinionIdentity identity, AmazonSQSManager sqsManager, TracerRegistry tracerRegistry) { - super(context, identity); - this.sqsManager = Objects.requireNonNull(sqsManager); - this.tracerRegistry = Objects.requireNonNull(tracerRegistry); - } - - @Override - public RouteBuilder getRouteBuilder(CamelContext context, MinionIdentity identity, RpcModule module) { - return new DynamicRpcRouteBuilder(sqsManager, context, identity, module, tracerRegistry); - } - - private static final class DynamicRpcRouteBuilder extends RouteBuilder { - private final AmazonSQSManager sqsManager; - private final MinionIdentity identity; - private final RpcModule module; - private final TracerRegistry tracerRegistry; - - private DynamicRpcRouteBuilder(AmazonSQSManager sqsManager, CamelContext context, MinionIdentity identity, RpcModule module, TracerRegistry tracerRegistry) { - super(context); - this.sqsManager = sqsManager; - this.identity = identity; - this.module = module; - this.tracerRegistry = tracerRegistry; - } - - @Override - public void configure() throws Exception { - final String requestQueueName = sqsManager.getRpcRequestQueueNameAndCreateIfNecessary(module.getId(), identity.getLocation()); - final JmsEndpoint endpoint = getContext().getEndpoint(String.format("jms:queue:%s?connectionFactory=#connectionFactory" - + "&correlationProperty=%s" - + "&asyncConsumer=true", requestQueueName, - AmazonSQSRPCConstants.AWS_SQS_CORRELATION_ID_HEADER), JmsEndpoint.class); - tracerRegistry.init(identity.getLocation()+"@"+identity.getId()); - from(endpoint).setExchangePattern(ExchangePattern.InOut) - .process(new SystemIdFilterProcessor(identity.getId())) - .process(new AmazonSQSServerProcessor(module, tracerRegistry)) - .routeId(getRouteId(module)); - } - } -} diff --git a/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/ConditionalAmazonSqsRpcContext.java b/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/ConditionalAmazonSqsRpcContext.java deleted file mode 100644 index 3a60f4e8239c..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/ConditionalAmazonSqsRpcContext.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2016 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2016 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.rpc.aws.sqs; - -import org.opennms.core.rpc.common.RpcStrategy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.annotation.ConditionContext; -import org.springframework.context.annotation.Conditional; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.ConfigurationCondition; -import org.springframework.context.annotation.ImportResource; -import org.springframework.core.type.AnnotatedTypeMetadata; - -import static org.opennms.core.rpc.common.RpcStrategy.Strategy.SQS; - -@Configuration -@Conditional(ConditionalAmazonSqsRpcContext.Condition.class) -@ImportResource("/META-INF/opennms/applicationContext-rpc-client-sqs.xml") -public class ConditionalAmazonSqsRpcContext { - private static final Logger LOG = LoggerFactory.getLogger(ConditionalAmazonSqsRpcContext.class); - - static class Condition implements ConfigurationCondition { - @Override - public ConfigurationPhase getConfigurationPhase() { - return ConfigurationPhase.PARSE_CONFIGURATION; - } - - @Override - public boolean matches(final ConditionContext context, final AnnotatedTypeMetadata metadata) { - final boolean enabled = SQS.equals(RpcStrategy.getRpcStrategy()); - LOG.debug("Enable SQS RPC: {}", enabled); - return enabled; - } - } -} diff --git a/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/SystemIdFilterProcessor.java b/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/SystemIdFilterProcessor.java deleted file mode 100644 index cac92cfefd01..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/src/main/java/org/opennms/core/rpc/aws/sqs/SystemIdFilterProcessor.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.rpc.aws.sqs; - -import org.apache.camel.AsyncCallback; -import org.apache.camel.AsyncProcessor; -import org.apache.camel.Exchange; -import org.opennms.core.rpc.camel.CamelRpcConstants; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Objects; - -public class SystemIdFilterProcessor implements AsyncProcessor { - private static final Logger LOG = LoggerFactory.getLogger(SystemIdFilterProcessor.class); - - private final String systemId; - - public SystemIdFilterProcessor(String systemId) { - this.systemId = Objects.requireNonNull(systemId); - } - - @Override - public void process(Exchange exchange) throws Exception { - throw new UnsupportedOperationException("This processor must be invoked using the async interface."); - } - - @Override - public boolean process(Exchange exchange, AsyncCallback callback) { - // Retrieve the system id header in the given request - final String targettedSystemId = (String)exchange.getIn().getHeader(CamelRpcConstants.JMS_SYSTEM_ID_HEADER); - if (targettedSystemId == null || systemId.equals(targettedSystemId)) { - // Either no system was specified, or the requested system id matches our - // Accept the request - } else { - // We should reject this request, but the SQS JMS connector doesn't provide - // a way for us to reset the visibility timeout of the message at this stage - // so for now we just log and process the message anyways - LOG.info("Directed RPCs are not supported with SQS. The message targeted to %s, but our system id is %s." + - "Processing the message anyways."); - } - callback.done(false); - return false; - } -} diff --git a/core/ipc/rpc/aws-sqs-impl/src/main/resources/META-INF/opennms/applicationContext-rpc-client-sqs.xml b/core/ipc/rpc/aws-sqs-impl/src/main/resources/META-INF/opennms/applicationContext-rpc-client-sqs.xml deleted file mode 100644 index d59f9aaa5aa7..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/src/main/resources/META-INF/opennms/applicationContext-rpc-client-sqs.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - jms:queue:${header.JmsQueueName}?connectionFactory=#connectionFactory&replyTo=${header.JmsReplyToQueueName}&replyToType=Exclusive&correlationProperty=RPCCorrelationId - - - - diff --git a/core/ipc/rpc/aws-sqs-impl/src/main/resources/META-INF/opennms/component-dao.xml b/core/ipc/rpc/aws-sqs-impl/src/main/resources/META-INF/opennms/component-dao.xml deleted file mode 100644 index d0f753bb159f..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/src/main/resources/META-INF/opennms/component-dao.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - diff --git a/core/ipc/rpc/aws-sqs-impl/src/main/resources/OSGI-INF/blueprint/blueprint-rpc-server.xml b/core/ipc/rpc/aws-sqs-impl/src/main/resources/OSGI-INF/blueprint/blueprint-rpc-server.xml deleted file mode 100644 index 908381521697..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/src/main/resources/OSGI-INF/blueprint/blueprint-rpc-server.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/core/ipc/rpc/aws-sqs-impl/src/test/java/org/opennms/core/rpc/aws/sqs/EchoRpcBlueprintIT.java b/core/ipc/rpc/aws-sqs-impl/src/test/java/org/opennms/core/rpc/aws/sqs/EchoRpcBlueprintIT.java deleted file mode 100644 index 2d0249012a0e..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/src/test/java/org/opennms/core/rpc/aws/sqs/EchoRpcBlueprintIT.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2016 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2016 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.rpc.aws.sqs; - -import java.util.Dictionary; -import java.util.Map; -import java.util.Properties; - -import org.apache.camel.util.KeyValueHolder; -import org.junit.Ignore; -import org.junit.runner.RunWith; -import org.opennms.core.ipc.common.aws.sqs.AmazonSQSConfig; -import org.opennms.core.ipc.common.aws.sqs.MapBasedSQSConfig; -import org.opennms.core.rpc.camel.MockMinionIdentity; -import org.opennms.core.test.OpenNMSJUnit4ClassRunner; -import org.opennms.distributed.core.api.MinionIdentity; -import org.opennms.test.JUnitConfigurationEnvironment; -import org.springframework.test.context.ContextConfiguration; - -@Ignore("Requires access to AWS") -@RunWith(OpenNMSJUnit4ClassRunner.class) -@ContextConfiguration(locations={ - "classpath:/META-INF/opennms/applicationContext-soa.xml", - "classpath:/META-INF/opennms/applicationContext-mockDao.xml", - "classpath:/META-INF/opennms/applicationContext-proxy-snmp.xml", - "classpath:/META-INF/opennms/applicationContext-rpc-client-sqs.xml", - "classpath:/META-INF/opennms/applicationContext-rpc-echo.xml", - "classpath:/META-INF/opennms/applicationContext-tracer-registry.xml" -}) -@JUnitConfigurationEnvironment(systemProperties={ - "org.opennms.core.ipc.aws.sqs.aws_use_http=true", - "org.opennms.core.ipc.aws.sqs.aws_region=ca-central-1"}) -public class EchoRpcBlueprintIT extends org.opennms.core.rpc.camel.EchoRpcBlueprintIT { - - @SuppressWarnings( "rawtypes" ) - @Override - protected void addServicesOnStartup(Map> services) { - services.put(MinionIdentity.class.getName(), - new KeyValueHolder(new MockMinionIdentity(REMOTE_LOCATION_NAME), - new Properties())); - services.put(AmazonSQSConfig.class.getName(), - new KeyValueHolder(new MapBasedSQSConfig(), - new Properties())); - } - - @Override - protected String getBlueprintDescriptor() { - return "classpath:OSGI-INF/blueprint/blueprint-rpc-server.xml"; - } - -} diff --git a/core/ipc/rpc/aws-sqs-impl/src/test/java/org/opennms/core/rpc/aws/sqs/EchoRpcIT.java b/core/ipc/rpc/aws-sqs-impl/src/test/java/org/opennms/core/rpc/aws/sqs/EchoRpcIT.java deleted file mode 100644 index e698c1aaed90..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/src/test/java/org/opennms/core/rpc/aws/sqs/EchoRpcIT.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2016 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2016 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.rpc.aws.sqs; - -import org.apache.camel.CamelContext; -import org.apache.camel.impl.DefaultCamelContext; -import org.apache.camel.impl.SimpleRegistry; -import org.junit.Ignore; -import org.junit.runner.RunWith; -import org.opennms.core.ipc.common.aws.sqs.AmazonSQSManager; -import org.opennms.core.rpc.camel.CamelRpcServerRouteManager; -import org.opennms.core.rpc.camel.MockMinionIdentity; -import org.opennms.core.test.OpenNMSJUnit4ClassRunner; -import org.opennms.core.tracing.api.TracerRegistry; -import org.opennms.netmgt.model.OnmsDistPoller; -import org.opennms.test.JUnitConfigurationEnvironment; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.annotation.DirtiesContext.ClassMode; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.TestExecutionListeners; -import org.springframework.test.context.support.DirtiesContextTestExecutionListener; - -import com.amazon.sqs.javamessaging.SQSConnectionFactory; - -import io.opentracing.Tracer; -import io.opentracing.util.GlobalTracer; - -@Ignore("Requires access to AWS") -@RunWith(OpenNMSJUnit4ClassRunner.class) -@ContextConfiguration(locations={ - "classpath:/META-INF/opennms/applicationContext-soa.xml", - "classpath:/META-INF/opennms/applicationContext-mockDao.xml", - "classpath:/META-INF/opennms/applicationContext-proxy-snmp.xml", - "classpath:/META-INF/opennms/applicationContext-rpc-client-sqs.xml", - "classpath:/META-INF/opennms/applicationContext-rpc-echo.xml", - "classpath:/META-INF/opennms/applicationContext-tracer-registry.xml" -}) -@JUnitConfigurationEnvironment(systemProperties={ - "org.opennms.core.ipc.aws.sqs.aws_use_http=true", - "org.opennms.core.ipc.aws.sqs.aws_region=ca-central-1"}) -@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD) -@TestExecutionListeners({DirtiesContextTestExecutionListener.class}) -public class EchoRpcIT extends org.opennms.core.rpc.camel.EchoRpcIT { - - @Autowired - private OnmsDistPoller identity; - - @Autowired - private AmazonSQSManager sqsManager; - - @Autowired - private SQSConnectionFactory sqsConnectionFactory; - - @Autowired - @Qualifier("rpcClient") - private CamelContext rpcClientContext; - - private TracerRegistry tracerRegistry = new TracerRegistry() { - @Override - public Tracer getTracer() { - return GlobalTracer.get(); - } - - @Override - public void init(String serviceName) { - } - }; - - @Override - public CamelContext getContext() { - SimpleRegistry registry = new SimpleRegistry(); - registry.put("connectionFactory", sqsManager.getSQSConnectionFactory()); - return new DefaultCamelContext(registry); - } - - @Override - public CamelContext getClientContext() { - return rpcClientContext; - } - - @Override - public CamelRpcServerRouteManager getRouteManager(CamelContext context) { - return new AmazonSQSServerRouteManager(context, - new MockMinionIdentity(REMOTE_LOCATION_NAME), sqsManager, tracerRegistry); - } - - @Ignore("Directed RPCs are not supported.") - public void failsWithTimeoutWhenSystemIdDoesNotExist() { - // pass - } -} diff --git a/core/ipc/rpc/aws-sqs-impl/src/test/java/org/opennms/core/rpc/aws/sqs/EchoRpcThreadIT.java b/core/ipc/rpc/aws-sqs-impl/src/test/java/org/opennms/core/rpc/aws/sqs/EchoRpcThreadIT.java deleted file mode 100644 index d0d4f9255f1a..000000000000 --- a/core/ipc/rpc/aws-sqs-impl/src/test/java/org/opennms/core/rpc/aws/sqs/EchoRpcThreadIT.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2016 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2016 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.rpc.aws.sqs; - -import java.util.Dictionary; -import java.util.Map; -import java.util.Properties; - -import org.apache.camel.util.KeyValueHolder; -import org.junit.Ignore; -import org.junit.runner.RunWith; -import org.opennms.core.ipc.common.aws.sqs.AmazonSQSConfig; -import org.opennms.core.ipc.common.aws.sqs.MapBasedSQSConfig; -import org.opennms.core.rpc.api.RpcModule; -import org.opennms.core.rpc.camel.MockMinionIdentity; -import org.opennms.core.test.OpenNMSJUnit4ClassRunner; -import org.opennms.distributed.core.api.MinionIdentity; -import org.opennms.netmgt.model.OnmsDistPoller; -import org.opennms.test.JUnitConfigurationEnvironment; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; - -/** - * Used to verify and validate the thread profiles of the RPC - * server via the EchoRpcModule. - * - * @author jwhite - */ -@Ignore("Requires access to AWS") -@RunWith(OpenNMSJUnit4ClassRunner.class) -@ContextConfiguration(locations={ - "classpath:/META-INF/opennms/applicationContext-soa.xml", - "classpath:/META-INF/opennms/applicationContext-mockDao.xml", - "classpath:/META-INF/opennms/applicationContext-proxy-snmp.xml", - "classpath:/META-INF/opennms/applicationContext-rpc-client-sqs.xml", - "classpath:/META-INF/opennms/applicationContext-tracer-registry.xml" -}) -@JUnitConfigurationEnvironment(systemProperties={ - "org.opennms.ipc.rpc.threads=1", - "org.opennms.ipc.rpc.queue.max=-1" , - "org.opennms.ipc.rpc.threads.max=" + EchoRpcThreadIT.NTHREADS, - "org.opennms.core.ipc.aws.sqs.aws_use_http=true", - "org.opennms.core.ipc.aws.sqs.aws_region=ca-central-1" - }) -public class EchoRpcThreadIT extends org.opennms.core.rpc.camel.EchoRpcThreadIT { - - @Autowired - private OnmsDistPoller identity; - - @SuppressWarnings( "rawtypes" ) - @Override - protected void addServicesOnStartup(Map> services) { - services.put(MinionIdentity.class.getName(), - new KeyValueHolder(new MockMinionIdentity(REMOTE_LOCATION_NAME), - new Properties())); - services.put(AmazonSQSConfig.class.getName(), - new KeyValueHolder(new MapBasedSQSConfig(), - new Properties())); - services.put(RpcModule.class.getName(), new KeyValueHolder(lockingRpcModule, new Properties())); - } - - @Override - protected String getBlueprintDescriptor() { - return "classpath:OSGI-INF/blueprint/blueprint-rpc-server.xml"; - } - -} diff --git a/core/ipc/rpc/camel/pom.xml b/core/ipc/rpc/camel/pom.xml index 4b6bfaa089e5..a6571c8d3395 100644 --- a/core/ipc/rpc/camel/pom.xml +++ b/core/ipc/rpc/camel/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.rpc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.rpc diff --git a/core/ipc/rpc/common/pom.xml b/core/ipc/rpc/common/pom.xml index 5261f6f33e2a..54c0a044635e 100644 --- a/core/ipc/rpc/common/pom.xml +++ b/core/ipc/rpc/common/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.rpc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.rpc diff --git a/core/ipc/rpc/common/src/main/java/org/opennms/core/rpc/common/RpcStrategy.java b/core/ipc/rpc/common/src/main/java/org/opennms/core/rpc/common/RpcStrategy.java index 683b764f92a5..f2e73b052d1d 100644 --- a/core/ipc/rpc/common/src/main/java/org/opennms/core/rpc/common/RpcStrategy.java +++ b/core/ipc/rpc/common/src/main/java/org/opennms/core/rpc/common/RpcStrategy.java @@ -38,8 +38,6 @@ public class RpcStrategy { private static final String JMS_RPC_STRATEGY_NAME = "jms"; - private static final String SQS_RPC_STRATEGY_NAME = "sqs"; - private static final String KAFKA_RPC_STRATEGY_NAME = "kafka"; private static final String GRPC_RPC_STRATEGY_NAME = "grpc"; @@ -48,7 +46,6 @@ public class RpcStrategy { public static enum Strategy { JMS(JMS_RPC_STRATEGY_NAME, "JMS implementation using Camel"), - SQS(SQS_RPC_STRATEGY_NAME, "Amazon SQS implementation"), KAFKA(KAFKA_RPC_STRATEGY_NAME, "Kafka implementation"), GRPC(GRPC_RPC_STRATEGY_NAME, "GRPC implementation"), OSGI(OSGI_RPC_STRATEGY_NAME, "OSGI Delegate implementation"); diff --git a/core/ipc/rpc/jms-impl/pom.xml b/core/ipc/rpc/jms-impl/pom.xml index 29b509656653..d89006b91e6a 100644 --- a/core/ipc/rpc/jms-impl/pom.xml +++ b/core/ipc/rpc/jms-impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.rpc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.rpc diff --git a/core/ipc/rpc/kafka/pom.xml b/core/ipc/rpc/kafka/pom.xml index f12d87d50d01..bafd88ef2c12 100644 --- a/core/ipc/rpc/kafka/pom.xml +++ b/core/ipc/rpc/kafka/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.rpc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.rpc @@ -89,7 +89,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided @@ -151,7 +151,7 @@ org.osgi - org.osgi.core + osgi.core test diff --git a/core/ipc/rpc/mock-impl/pom.xml b/core/ipc/rpc/mock-impl/pom.xml index 4218694a2c38..e3df3f3e241b 100644 --- a/core/ipc/rpc/mock-impl/pom.xml +++ b/core/ipc/rpc/mock-impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.rpc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.rpc diff --git a/core/ipc/rpc/pom.xml b/core/ipc/rpc/pom.xml index 4048aad16cfd..81e5a08fef1b 100644 --- a/core/ipc/rpc/pom.xml +++ b/core/ipc/rpc/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.ipc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc @@ -12,7 +12,6 @@ OpenNMS :: Core :: IPC :: RPC api - aws-sqs-impl camel common jms-impl diff --git a/core/ipc/rpc/shell-commands/pom.xml b/core/ipc/rpc/shell-commands/pom.xml index 5fb689389429..ab33bf7226a8 100644 --- a/core/ipc/rpc/shell-commands/pom.xml +++ b/core/ipc/rpc/shell-commands/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.rpc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.rpc @@ -53,7 +53,7 @@ org.osgi - org.osgi.enterprise + osgi.enterprise provided diff --git a/core/ipc/rpc/utils/pom.xml b/core/ipc/rpc/utils/pom.xml index 53ceccf0d527..3512c9df4f12 100644 --- a/core/ipc/rpc/utils/pom.xml +++ b/core/ipc/rpc/utils/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.rpc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.rpc diff --git a/core/ipc/rpc/xml/pom.xml b/core/ipc/rpc/xml/pom.xml index 2dc6b112264a..18bc5257ce89 100644 --- a/core/ipc/rpc/xml/pom.xml +++ b/core/ipc/rpc/xml/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.rpc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.rpc diff --git a/core/ipc/sink/api/pom.xml b/core/ipc/sink/api/pom.xml index dd667709b4e0..98d1709c27de 100644 --- a/core/ipc/sink/api/pom.xml +++ b/core/ipc/sink/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.sink - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.sink diff --git a/core/ipc/sink/aws-sqs/client/pom.xml b/core/ipc/sink/aws-sqs/client/pom.xml deleted file mode 100644 index e9ba3ca0d5d8..000000000000 --- a/core/ipc/sink/aws-sqs/client/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - org.opennms.core.ipc.sink - org.opennms.core.ipc.sink.aws.sqs - 28.1.1 - - 4.0.0 - org.opennms.core.ipc.sink.aws.sqs - org.opennms.core.ipc.sink.aws.sqs.client - OpenNMS :: Core :: IPC :: Sink :: AWS :: SQS :: Client - bundle - - true - - - - - org.apache.felix - maven-bundle-plugin - true - - - JavaSE-1.8 - ${project.artifactId} - ${project.version} - - - !org.opennms.core.ipc.sink.aws.sqs.server, - * - - - - - - - - - org.osgi - org.osgi.core - provided - - - org.opennms.core.ipc.sink.aws.sqs - org.opennms.core.ipc.sink.aws.sqs.common - ${project.version} - - - org.opennms.core.ipc.sink.aws.sqs - org.opennms.core.ipc.sink.aws.sqs.server - ${project.version} - - - diff --git a/core/ipc/sink/aws-sqs/client/src/main/java/org/opennms/core/ipc/sink/aws/sqs/client/AmazonSQSConditionalSinkContext.java b/core/ipc/sink/aws-sqs/client/src/main/java/org/opennms/core/ipc/sink/aws/sqs/client/AmazonSQSConditionalSinkContext.java deleted file mode 100644 index 59196591fa99..000000000000 --- a/core/ipc/sink/aws-sqs/client/src/main/java/org/opennms/core/ipc/sink/aws/sqs/client/AmazonSQSConditionalSinkContext.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.sink.aws.sqs.client; - -import static org.opennms.core.ipc.sink.common.SinkStrategy.Strategy.SQS; - -import org.opennms.core.ipc.sink.api.MessageConsumerManager; -import org.opennms.core.ipc.sink.common.SinkStrategy; -import org.opennms.core.logging.Logging; -import org.opennms.core.logging.Logging.MDCCloseable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.annotation.ConditionContext; -import org.springframework.context.annotation.Conditional; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.ConfigurationCondition; -import org.springframework.context.annotation.ImportResource; -import org.springframework.core.type.AnnotatedTypeMetadata; - -@Configuration -@Conditional(AmazonSQSConditionalSinkContext.Condition.class) -@ImportResource("/META-INF/opennms/applicationContext-ipc-sink-aws-client.xml") -public class AmazonSQSConditionalSinkContext { - - /** The Constant LOG. */ - private static final Logger LOG = LoggerFactory.getLogger(AmazonSQSConditionalSinkContext.class); - - /** - * The Class Condition. - */ - static class Condition implements ConfigurationCondition { - - /* (non-Javadoc) - * @see org.springframework.context.annotation.ConfigurationCondition#getConfigurationPhase() - */ - @Override - public ConfigurationPhase getConfigurationPhase() { - return ConfigurationPhase.PARSE_CONFIGURATION; - } - - /* (non-Javadoc) - * @see org.springframework.context.annotation.Condition#matches(org.springframework.context.annotation.ConditionContext, org.springframework.core.type.AnnotatedTypeMetadata) - */ - @Override - public boolean matches(final ConditionContext context, final AnnotatedTypeMetadata metadata) { - final boolean enabled = SQS.equals(SinkStrategy.getSinkStrategy()); - try (MDCCloseable mdc = Logging.withPrefixCloseable(MessageConsumerManager.LOG_PREFIX)) { - LOG.debug("Enable AWS SQS Sink: {}", enabled); - } - return enabled; - } - } -} diff --git a/core/ipc/sink/aws-sqs/client/src/main/java/org/opennms/core/ipc/sink/aws/sqs/client/AmazonSQSLocalMessageDispatcherFactory.java b/core/ipc/sink/aws-sqs/client/src/main/java/org/opennms/core/ipc/sink/aws/sqs/client/AmazonSQSLocalMessageDispatcherFactory.java deleted file mode 100644 index 5bffebe18635..000000000000 --- a/core/ipc/sink/aws-sqs/client/src/main/java/org/opennms/core/ipc/sink/aws/sqs/client/AmazonSQSLocalMessageDispatcherFactory.java +++ /dev/null @@ -1,103 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.sink.aws.sqs.client; - -import static org.opennms.core.ipc.sink.api.Message.SINK_METRIC_PRODUCER_DOMAIN; - -import org.opennms.core.ipc.sink.api.Message; -import org.opennms.core.ipc.sink.api.SinkModule; -import org.opennms.core.ipc.sink.aws.sqs.server.AmazonSQSMessageConsumerManager; -import org.opennms.core.ipc.sink.common.AbstractMessageDispatcherFactory; -import org.osgi.framework.BundleContext; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; - -import com.codahale.metrics.MetricRegistry; - -import io.opentracing.Tracer; -import io.opentracing.util.GlobalTracer; - -/** - * Dispatches the messages directly the consumers. - * - * @author Alejandro Galue - */ -public class AmazonSQSLocalMessageDispatcherFactory extends AbstractMessageDispatcherFactory implements InitializingBean, DisposableBean { - - /** The message consumer manager. */ - @Autowired - private AmazonSQSMessageConsumerManager messageConsumerManager; - - private MetricRegistry metrics; - - /* (non-Javadoc) - * @see org.opennms.core.ipc.sink.common.AbstractMessageDispatcherFactory#dispatch(org.opennms.core.ipc.sink.api.SinkModule, java.lang.Object, org.opennms.core.ipc.sink.api.Message) - */ - public void dispatch(final SinkModule module, final Void metadata, final T message) { - messageConsumerManager.dispatch(module, message); - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() - */ - @Override - public void afterPropertiesSet() { - onInit(); - } - - @Override - public void destroy() { - onDestroy(); - } - - @Override - public String getMetricDomain() { - return SINK_METRIC_PRODUCER_DOMAIN; - } - - @Override - public BundleContext getBundleContext() { - return null; - } - - @Override - public Tracer getTracer() { - return GlobalTracer.get(); - } - - @Override - public MetricRegistry getMetrics() { - return new MetricRegistry(); - } - - public void setMetrics(MetricRegistry metrics) { - this.metrics = metrics; - } -} diff --git a/core/ipc/sink/aws-sqs/client/src/main/java/org/opennms/core/ipc/sink/aws/sqs/client/AmazonSQSRemoteMessageDispatcherFactory.java b/core/ipc/sink/aws-sqs/client/src/main/java/org/opennms/core/ipc/sink/aws/sqs/client/AmazonSQSRemoteMessageDispatcherFactory.java deleted file mode 100644 index 0c077226fdef..000000000000 --- a/core/ipc/sink/aws-sqs/client/src/main/java/org/opennms/core/ipc/sink/aws/sqs/client/AmazonSQSRemoteMessageDispatcherFactory.java +++ /dev/null @@ -1,154 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.sink.aws.sqs.client; - -import static org.opennms.core.ipc.sink.api.Message.SINK_METRIC_PRODUCER_DOMAIN; - -import java.io.IOException; -import java.nio.charset.StandardCharsets; - -import org.opennms.core.ipc.common.aws.sqs.AmazonSQSManager; -import org.opennms.core.ipc.sink.api.Message; -import org.opennms.core.ipc.sink.api.MessageConsumerManager; -import org.opennms.core.ipc.sink.api.SinkModule; -import org.opennms.core.ipc.sink.common.AbstractMessageDispatcherFactory; -import org.opennms.core.logging.Logging; -import org.opennms.core.logging.Logging.MDCCloseable; -import org.osgi.framework.BundleContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.amazonaws.services.sqs.AmazonSQS; -import com.amazonaws.services.sqs.model.AmazonSQSException; -import com.codahale.metrics.MetricRegistry; - -import io.opentracing.Tracer; -import io.opentracing.util.GlobalTracer; - -/** - * A factory for creating AwsRemoteMessageDispatcher objects. - * - * @author Alejandro Galue - */ -public class AmazonSQSRemoteMessageDispatcherFactory extends AbstractMessageDispatcherFactory { - - /** The Constant LOG. */ - private static final Logger LOG = LoggerFactory.getLogger(AmazonSQSRemoteMessageDispatcherFactory.class); - - /** The AWS SQS Object. */ - private AmazonSQS sqs; - - /** The AWS SQS manager. */ - private AmazonSQSManager awsSqsManager; - - private BundleContext bundleContext; - - private MetricRegistry metrics; - - /* (non-Javadoc) - * @see org.opennms.core.ipc.sink.common.AbstractMessageDispatcherFactory#dispatch(org.opennms.core.ipc.sink.api.SinkModule, java.lang.Object, org.opennms.core.ipc.sink.api.Message) - */ - @Override - public void dispatch(SinkModule module, String topic, T message) { - try (MDCCloseable mdc = Logging.withPrefixCloseable(MessageConsumerManager.LOG_PREFIX)) { - LOG.trace("dispatch({}): sending message {}", topic, message); - try { - final String queueUrl = awsSqsManager.getSinkQueueUrlAndCreateIfNecessary(module.getId()); - final String messageId = awsSqsManager.sendMessage(queueUrl, new String(module.marshal((T)message), StandardCharsets.UTF_8)); - LOG.debug("SQS Message with ID {} has been successfully sent to {}", messageId, queueUrl); - } catch (InterruptedException ex) { - LOG.warn("Interrupted while trying to send message. Aborting.", ex); - } catch (RuntimeException ex) { - LOG.error("Unexpected AWS SDK exception while sending a message. Aborting.", ex); - } - } - } - - /** - * Initializes the producers. - * - * @throws IOException Signals that an I/O exception has occurred. - */ - public void init() throws IOException { - try (MDCCloseable mdc = Logging.withPrefixCloseable(MessageConsumerManager.LOG_PREFIX)) { - try { - sqs = awsSqsManager.getSQSClient(); - } catch (AmazonSQSException e) { - LOG.error("Can't create an AmazonSQS Object", e); - } - onInit(); - } - } - - /** - * Destroy. - */ - public void destroy() { - onDestroy(); - sqs.shutdown(); - } - - @Override - public String getMetricDomain() { - return SINK_METRIC_PRODUCER_DOMAIN; - } - - @Override - public BundleContext getBundleContext() { - return bundleContext; - } - - - @Override - public Tracer getTracer() { - return GlobalTracer.get(); - } - - /** - * Sets the AWS SQS manager. - * - * @param awsSqsManager the new AWS SQS manager - */ - public void setAwsSqsManager(AmazonSQSManager awsSqsManager) { - this.awsSqsManager = awsSqsManager; - } - - public void setBundleContext(BundleContext bundleContext) { - this.bundleContext = bundleContext; - } - - @Override - public MetricRegistry getMetrics() { - return new MetricRegistry(); - } - - public void setMetrics(MetricRegistry metrics) { - this.metrics = metrics; - } -} diff --git a/core/ipc/sink/aws-sqs/client/src/main/resources/META-INF/opennms/applicationContext-ipc-sink-aws-client.xml b/core/ipc/sink/aws-sqs/client/src/main/resources/META-INF/opennms/applicationContext-ipc-sink-aws-client.xml deleted file mode 100644 index 219d879a59e1..000000000000 --- a/core/ipc/sink/aws-sqs/client/src/main/resources/META-INF/opennms/applicationContext-ipc-sink-aws-client.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - diff --git a/core/ipc/sink/aws-sqs/client/src/main/resources/META-INF/opennms/component-dao.xml b/core/ipc/sink/aws-sqs/client/src/main/resources/META-INF/opennms/component-dao.xml deleted file mode 100644 index a871c9e0c219..000000000000 --- a/core/ipc/sink/aws-sqs/client/src/main/resources/META-INF/opennms/component-dao.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - diff --git a/core/ipc/sink/aws-sqs/client/src/main/resources/OSGI-INF/blueprint/blueprint-ipc-client.xml b/core/ipc/sink/aws-sqs/client/src/main/resources/OSGI-INF/blueprint/blueprint-ipc-client.xml deleted file mode 100644 index 69ba83741c6e..000000000000 --- a/core/ipc/sink/aws-sqs/client/src/main/resources/OSGI-INF/blueprint/blueprint-ipc-client.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/core/ipc/sink/aws-sqs/common/pom.xml b/core/ipc/sink/aws-sqs/common/pom.xml deleted file mode 100644 index baf6fdcfb393..000000000000 --- a/core/ipc/sink/aws-sqs/common/pom.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - org.opennms.core.ipc.sink - org.opennms.core.ipc.sink.aws.sqs - 28.1.1 - - 4.0.0 - org.opennms.core.ipc.sink.aws.sqs - org.opennms.core.ipc.sink.aws.sqs.common - OpenNMS :: Core :: IPC :: Sink :: AWS :: SQS :: Common - bundle - - true - - - - - org.apache.felix - maven-bundle-plugin - true - - - JavaSE-1.8 - ${project.artifactId} - ${project.version} - - - - - - - - com.google.guava - guava - - - org.opennms.core - org.opennms.core.logging - - - org.opennms.core.ipc.sink - org.opennms.core.ipc.sink.api - - - org.opennms.core.ipc.sink - org.opennms.core.ipc.sink.common - ${project.version} - - - org.osgi - org.osgi.compendium - provided - - - org.opennms.dependencies - spring-dependencies - pom - - - org.opennms.core.ipc.common - org.opennms.core.ipc.common.aws-sqs - ${project.version} - - - diff --git a/core/ipc/sink/aws-sqs/itests/pom.xml b/core/ipc/sink/aws-sqs/itests/pom.xml deleted file mode 100644 index 1e8af9a44ee1..000000000000 --- a/core/ipc/sink/aws-sqs/itests/pom.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - org.opennms.core.ipc.sink - org.opennms.core.ipc.sink.aws.sqs - 28.1.1 - - 4.0.0 - org.opennms.core.ipc.sink.aws.sqs - org.opennms.core.ipc.sink.aws.sqs.itests - OpenNMS :: Core :: IPC :: Sink :: AWS :: SQS :: Integration Tests - bundle - - true - - - - - org.apache.felix - maven-bundle-plugin - true - - - JavaSE-1.8 - ${project.artifactId} - ${project.version} - - - - - - - - org.opennms.core.ipc.sink.aws.sqs - org.opennms.core.ipc.sink.aws.sqs.client - ${project.version} - test - - - org.opennms.core.ipc.sink.aws.sqs - org.opennms.core.ipc.sink.aws.sqs.server - ${project.version} - test - - - org.opennms.core - org.opennms.core.daemon - test - - - org.opennms.core.test-api - org.opennms.core.test-api.snmp - test - - - org.opennms.core.test-api - org.opennms.core.test-api.services - test - - - org.opennms.core.test-api - org.opennms.core.test-api.camel - test - - - org.opennms.core.ipc.sink - org.opennms.core.ipc.sink.xml - test - - - org.hamcrest - hamcrest-library - test - - - com.jayway.awaitility - awaitility - test - - - org.mockito - mockito-core - - - org.opennms - opennms-dao - test - - - org.opennms - opennms-dao-mock - test - - - org.opennms.core.ipc.sink - org.opennms.core.ipc.sink.mock-impl - ${project.version} - test - - - org.opennms.core.ipc.sink - org.opennms.core.ipc.sink.common - ${project.version} - test-jar - test - - - diff --git a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/AmazonSQSDispatcherBlueprintIT.java b/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/AmazonSQSDispatcherBlueprintIT.java deleted file mode 100644 index 131dbfb2312e..000000000000 --- a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/AmazonSQSDispatcherBlueprintIT.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.sink.aws.sqs.itests; - -import org.apache.camel.util.KeyValueHolder; -import org.junit.Test; -import org.opennms.core.ipc.common.aws.sqs.AmazonSQSConfig; -import org.opennms.core.ipc.common.aws.sqs.MapBasedSQSConfig; -import org.opennms.core.ipc.common.aws.sqs.AmazonSQSConstants; -import org.opennms.core.test.camel.CamelBlueprintTest; - -import java.util.Dictionary; -import java.util.Map; -import java.util.Properties; - -/** - * The Class AwsDispatcherBlueprintIT. - * - * @author Alejandro Galue - */ -public class AmazonSQSDispatcherBlueprintIT extends CamelBlueprintTest { - - @SuppressWarnings( "rawtypes" ) - @Override - protected void addServicesOnStartup(Map> services) { - services.put(AmazonSQSConfig.class.getName(), - new KeyValueHolder(new MapBasedSQSConfig(), - new Properties())); - } - - /* (non-Javadoc) - * @see org.apache.camel.test.blueprint.CamelBlueprintTestSupport#getBlueprintDescriptor() - */ - @Override - protected String getBlueprintDescriptor() { - return "classpath:/OSGI-INF/blueprint/blueprint-ipc-client.xml,blueprint-empty-camel-context.xml"; - } - - /* (non-Javadoc) - * @see org.apache.camel.test.blueprint.CamelBlueprintTestSupport#setConfigAdminInitialConfiguration(java.util.Properties) - */ - @Override - protected String setConfigAdminInitialConfiguration(final Properties props) { - return AmazonSQSConstants.AWS_CONFIG_PID; - } - - /** - * Can blueprint load successfully. - */ - @Test - public void canBlueprintLoadSuccessfully() { - } - -} diff --git a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/HeartbeatSinkIT.java b/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/HeartbeatSinkIT.java deleted file mode 100644 index 6eb749dd41e1..000000000000 --- a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/HeartbeatSinkIT.java +++ /dev/null @@ -1,177 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2020 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2020 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.sink.aws.sqs.itests; - -import static com.jayway.awaitility.Awaitility.await; -import static java.util.concurrent.TimeUnit.MINUTES; -import static org.hamcrest.Matchers.equalTo; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.RETURNS_DEEP_STUBS; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.stream.Collectors; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; -import org.opennms.core.ipc.common.aws.sqs.AmazonSQSManager; -import org.opennms.core.ipc.sink.api.MessageConsumer; -import org.opennms.core.ipc.sink.api.MessageDispatcherFactory; -import org.opennms.core.ipc.sink.api.SinkModule; -import org.opennms.core.ipc.sink.api.SyncDispatcher; -import org.opennms.core.ipc.sink.aws.sqs.client.AmazonSQSRemoteMessageDispatcherFactory; -import org.opennms.core.ipc.sink.aws.sqs.itests.heartbeat.Heartbeat; -import org.opennms.core.ipc.sink.aws.sqs.itests.heartbeat.HeartbeatModule; -import org.opennms.core.ipc.sink.aws.sqs.server.AmazonSQSMessageConsumerManager; -import org.opennms.core.test.OpenNMSJUnit4ClassRunner; -import org.opennms.test.JUnitConfigurationEnvironment; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; - -import com.amazonaws.services.sqs.AmazonSQS; -import com.amazonaws.services.sqs.model.Message; - -/** - * The Class HeartbeatSinkIT. - * - * Warning: This test requires AWS Access and appropriate credentials stored on ~/.aws/credentials - * - * @author Alejandro Galue - */ -@RunWith(OpenNMSJUnit4ClassRunner.class) -@ContextConfiguration(locations={ - "classpath:/META-INF/opennms/applicationContext-soa.xml", - "classpath:/META-INF/opennms/applicationContext-mockDao.xml", - "classpath:/META-INF/opennms/applicationContext-proxy-snmp.xml", - "classpath:/META-INF/opennms/applicationContext-ipc-sink-server-aws-mock.xml" -}) -@JUnitConfigurationEnvironment -public class HeartbeatSinkIT { - - /** The local message dispatcher factory. */ - @Autowired - private MessageDispatcherFactory localMessageDispatcherFactory; - - /** The consumer manager. */ - @Autowired - private AmazonSQSMessageConsumerManager consumerManager; - - /** The SQS manager. */ - @Autowired - private AmazonSQSManager sqsManager; - - /** The remote message dispatcher factory. */ - private AmazonSQSRemoteMessageDispatcherFactory remoteMessageDispatcherFactory; - - /** - * Sets the up. - * - * @throws Exception the exception - */ - @Before - public void setUp() throws Exception { - remoteMessageDispatcherFactory = new AmazonSQSRemoteMessageDispatcherFactory(); - remoteMessageDispatcherFactory.setAwsSqsManager(sqsManager); - remoteMessageDispatcherFactory.init(); - - LinkedBlockingQueue bodies = new LinkedBlockingQueue<>(); - AmazonSQS sqsClient = mock(AmazonSQS.class, RETURNS_DEEP_STUBS); - when(sqsClient.receiveMessage(anyString()).getMessages()).thenAnswer(new Answer>() { - @Override - public List answer(InvocationOnMock invocation) { - List messageBodies = new LinkedList<>(); - bodies.drainTo(messageBodies); - return messageBodies.stream() - .map(b -> { - Message msg = new Message(); - msg.setBody(b); - return msg; - }) - .collect(Collectors.toList()); - } - }); - - when(sqsManager.getSQSClient()).thenReturn(sqsClient); - when(sqsManager.getSinkQueueUrlAndCreateIfNecessary(anyString())).thenReturn("some-url"); - when(sqsManager.sendMessage(anyString(), anyString())).thenAnswer(new Answer() { - @Override - public String answer(InvocationOnMock invocation) throws Throwable { - String body = invocation.getArgument(1); - bodies.add(body); - return null; - } - }); - } - - /** - * Can produce and consume messages. - * - * @throws Exception the exception - */ - @Test(timeout=30000) - public void canProduceAndConsumeMessages() throws Exception { - HeartbeatModule module = new HeartbeatModule(); - - AtomicInteger heartbeatCount = new AtomicInteger(); - final MessageConsumer heartbeatConsumer = new MessageConsumer() { - @Override - public SinkModule getModule() { - return module; - } - - @Override - public void handleMessage(final Heartbeat heartbeat) { - heartbeatCount.incrementAndGet(); - } - }; - - try { - consumerManager.registerConsumer(heartbeatConsumer); - - final SyncDispatcher localDispatcher = localMessageDispatcherFactory.createSyncDispatcher(module); - localDispatcher.send(new Heartbeat()); - await().atMost(1, MINUTES).until(() -> heartbeatCount.get(), equalTo(1)); - - final SyncDispatcher dispatcher = remoteMessageDispatcherFactory.createSyncDispatcher(HeartbeatModule.INSTANCE); - - dispatcher.send(new Heartbeat()); - await().atMost(1, MINUTES).until(() -> heartbeatCount.get(), equalTo(2)); - } finally { - consumerManager.unregisterConsumer(heartbeatConsumer); - } - } - -} diff --git a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/HeartbeatSinkPerfIT.java b/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/HeartbeatSinkPerfIT.java deleted file mode 100644 index 3749e5283dbd..000000000000 --- a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/HeartbeatSinkPerfIT.java +++ /dev/null @@ -1,218 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017-2020 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2020 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.sink.aws.sqs.itests; - -import com.amazonaws.services.sqs.AmazonSQS; -import com.amazonaws.services.sqs.model.Message; -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; -import org.opennms.core.ipc.common.aws.sqs.AmazonSQSManager; -import org.opennms.core.ipc.sink.api.SyncDispatcher; -import org.opennms.core.ipc.sink.aws.sqs.server.AmazonSQSMessageConsumerManager; -import org.opennms.core.ipc.sink.aws.sqs.client.AmazonSQSRemoteMessageDispatcherFactory; -import org.opennms.core.ipc.sink.aws.sqs.itests.heartbeat.Heartbeat; -import org.opennms.core.ipc.sink.aws.sqs.itests.heartbeat.HeartbeatConsumer; -import org.opennms.core.ipc.sink.aws.sqs.itests.heartbeat.HeartbeatGenerator; -import org.opennms.core.ipc.sink.aws.sqs.itests.heartbeat.HeartbeatModule; -import org.opennms.core.test.OpenNMSJUnit4ClassRunner; -import org.opennms.test.JUnitConfigurationEnvironment; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; - -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; - -import static com.jayway.awaitility.Awaitility.await; -import static org.hamcrest.Matchers.greaterThan; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.RETURNS_DEEP_STUBS; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -/** - * Used to help profile the sink producer and consumer against AWS SQS. - * - * Warning: This test requires AWS Access and appropriate credentials stored on ~/.aws/credentials - * - * @author Alejandro Galue - */ -@RunWith(OpenNMSJUnit4ClassRunner.class) -@ContextConfiguration(locations={ - "classpath:/META-INF/opennms/applicationContext-soa.xml", - "classpath:/META-INF/opennms/applicationContext-mockDao.xml", - "classpath:/META-INF/opennms/applicationContext-proxy-snmp.xml", - "classpath:/META-INF/opennms/applicationContext-ipc-sink-server-aws-mock.xml" -}) -@JUnitConfigurationEnvironment -public class HeartbeatSinkPerfIT { - - /** The consumer manager. */ - @Autowired - private AmazonSQSMessageConsumerManager consumerManager; - - /** The SQS manager. */ - @Autowired - private AmazonSQSManager sqsManager; - - /** The message dispatcher factory. */ - private AmazonSQSRemoteMessageDispatcherFactory messageDispatcherFactory = new AmazonSQSRemoteMessageDispatcherFactory(); - - /** The generators. */ - private List generators = new ArrayList<>(); - - /** The metrics. */ - private final MetricRegistry metrics = new MetricRegistry(); - - /** The received meter. */ - private final Meter receivedMeter = metrics.meter("receivedMeter"); - - /** The sent meter. */ - private final Meter sentMeter = metrics.meter("sent"); - - /** The send timer. */ - private final Timer sendTimer = metrics.timer("send"); - - /** The Constant NUM_CONSUMER_THREADS. */ - private static final int NUM_CONSUMER_THREADS = 2; - - /** The Constant NUM_GENERATORS. */ - private static final int NUM_GENERATORS = 2; - - /** The Constant RATE_PER_GENERATOR. */ - private static final double RATE_PER_GENERATOR = 1000.0; - - /** - * Sets the up. - * - * @throws Exception the exception - */ - @Before - public void setUp() throws Exception { - messageDispatcherFactory = new AmazonSQSRemoteMessageDispatcherFactory(); - messageDispatcherFactory.setAwsSqsManager(sqsManager); - messageDispatcherFactory.init(); - - LinkedBlockingQueue bodies = new LinkedBlockingQueue<>(); - AmazonSQS sqsClient = mock(AmazonSQS.class, RETURNS_DEEP_STUBS); - when(sqsClient.receiveMessage(anyString()).getMessages()).thenAnswer(new Answer>() { - @Override - public List answer(InvocationOnMock invocation) { - List messageBodies = new LinkedList<>(); - bodies.drainTo(messageBodies); - return messageBodies.stream() - .map(b -> { - Message msg = new Message(); - msg.setBody(b); - return msg; - }) - .collect(Collectors.toList()); - } - }); - - when(sqsManager.getSQSClient()).thenReturn(sqsClient); - when(sqsManager.getSinkQueueUrlAndCreateIfNecessary(anyString())).thenReturn("some-url"); - when(sqsManager.sendMessage(anyString(), anyString())).thenAnswer(new Answer() { - @Override - public String answer(InvocationOnMock invocation) throws Throwable { - String body = invocation.getArgument(1); - bodies.add(body); - return null; - } - }); - } - - /** - * Configure generators. - * - * @throws Exception the exception - */ - public void configureGenerators() throws Exception { - System.err.println("Starting Heartbeat generators."); - - // Start the consumer - final HeartbeatModule parallelHeartbeatModule = new HeartbeatModule() { - @Override - public int getNumConsumerThreads() { - return NUM_CONSUMER_THREADS; - } - }; - final HeartbeatConsumer consumer = new HeartbeatConsumer(parallelHeartbeatModule, receivedMeter); - consumerManager.registerConsumer(consumer); - - // Start the dispatcher - final SyncDispatcher dispatcher = messageDispatcherFactory.createSyncDispatcher(HeartbeatModule.INSTANCE); - - // Fire up the generators - generators = new ArrayList<>(NUM_GENERATORS); - for (int k = 0; k < NUM_GENERATORS; k++) { - final HeartbeatGenerator generator = new HeartbeatGenerator(dispatcher, RATE_PER_GENERATOR, sentMeter, sendTimer); - generators.add(generator); - generator.start(); - } - } - - /** - * Tear down. - * - * @throws Exception the exception - */ - @After - public void tearDown() throws Exception { - if (generators != null) { - for (HeartbeatGenerator generator : generators) { - generator.stop(); - } - generators.clear(); - } - consumerManager.unregisterAllConsumers(); - } - - /** - * Quick run. - * - * @throws Exception the exception - */ - @Test(timeout=30000) - public void quickRun() throws Exception { - configureGenerators(); - await().atMost(30, TimeUnit.SECONDS).until(() -> Long.valueOf(receivedMeter.getCount()), greaterThan(100L)); - } - -} diff --git a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/heartbeat/Heartbeat.java b/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/heartbeat/Heartbeat.java deleted file mode 100644 index 878276f042ed..000000000000 --- a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/heartbeat/Heartbeat.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.sink.aws.sqs.itests.heartbeat; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; - -import org.opennms.core.ipc.sink.api.Message; - -/** - * The Class Heartbeat. - * - * @author Alejandro Galue - */ -@XmlRootElement(name="heartbeat") -@XmlAccessorType(XmlAccessType.NONE) -public class Heartbeat implements Message { - -} diff --git a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/heartbeat/HeartbeatConsumer.java b/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/heartbeat/HeartbeatConsumer.java deleted file mode 100644 index af07c0d17ced..000000000000 --- a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/heartbeat/HeartbeatConsumer.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.sink.aws.sqs.itests.heartbeat; - -import org.opennms.core.ipc.sink.api.MessageConsumer; -import org.opennms.core.ipc.sink.api.SinkModule; - -import com.codahale.metrics.Meter; - -/** - * The Class HeartbeatConsumer. - * - * @author Alejandro Galue - */ -public class HeartbeatConsumer implements MessageConsumer { - - /** The heartbeat module. */ - private final HeartbeatModule heartbeatModule; - - /** The received meter. */ - private final Meter receivedMeter; - - /** - * Instantiates a new heartbeat consumer. - * - * @param heartbeatModule the heartbeat module - * @param receivedMeter the received meter - */ - public HeartbeatConsumer(HeartbeatModule heartbeatModule, Meter receivedMeter) { - this.heartbeatModule = heartbeatModule; - this.receivedMeter = receivedMeter; - } - - /* (non-Javadoc) - * @see org.opennms.core.ipc.sink.api.MessageConsumer#getModule() - */ - @Override - public SinkModule getModule() { - return heartbeatModule; - } - - /* (non-Javadoc) - * @see org.opennms.core.ipc.sink.api.MessageConsumer#handleMessage(org.opennms.core.ipc.sink.api.Message) - */ - @Override - public void handleMessage(Heartbeat message) { - receivedMeter.mark(); - } - -} diff --git a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/heartbeat/HeartbeatGenerator.java b/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/heartbeat/HeartbeatGenerator.java deleted file mode 100644 index 8e2e27e532ca..000000000000 --- a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/heartbeat/HeartbeatGenerator.java +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.sink.aws.sqs.itests.heartbeat; - -import java.util.concurrent.atomic.AtomicBoolean; - -import org.opennms.core.ipc.sink.api.SyncDispatcher; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; -import com.codahale.metrics.Timer.Context; -import com.google.common.util.concurrent.RateLimiter; - -/** - * The Class HeartbeatGenerator. - * - * @author Alejandro Galue - */ -public class HeartbeatGenerator { - - /** The thread. */ - Thread thread; - - /** The dispatcher. */ - final SyncDispatcher dispatcher; - - /** The rate. */ - final double rate; - - /** The stopped. */ - final AtomicBoolean stopped = new AtomicBoolean(false); - - /** The sent meter. */ - private final Meter sentMeter; - - /** The send timer. */ - private final Timer sendTimer; - - /** - * Instantiates a new heartbeat generator. - * - * @param dispatcher the dispatcher - * @param rate the rate - */ - public HeartbeatGenerator(SyncDispatcher dispatcher, double rate) { - this.dispatcher = dispatcher; - this.rate = rate; - MetricRegistry metrics = new MetricRegistry(); - this.sentMeter = metrics.meter("sent"); - this.sendTimer = metrics.timer("send"); - } - - /** - * Instantiates a new heartbeat generator. - * - * @param dispatcher the dispatcher - * @param rate the rate - * @param sentMeter the sent meter - * @param sendTimer the send timer - */ - public HeartbeatGenerator(SyncDispatcher dispatcher, double rate, Meter sentMeter, Timer sendTimer) { - this.dispatcher = dispatcher; - this.rate = rate; - this.sentMeter = sentMeter; - this.sendTimer = sendTimer; - } - - /** - * Start. - */ - public synchronized void start() { - stopped.set(false); - final RateLimiter rateLimiter = RateLimiter.create(rate); - thread = new Thread(new Runnable() { - @Override - public void run() { - - while(!stopped.get()) { - rateLimiter.acquire(); - try (Context ctx = sendTimer.time()) { - dispatcher.send(new Heartbeat()); - sentMeter.mark(); - } - } - } - }); - thread.start(); - } - - /** - * Stop. - * - * @throws InterruptedException the interrupted exception - */ - public synchronized void stop() throws InterruptedException { - stopped.set(true); - if (thread != null) { - thread.join(); - thread = null; - } - } -} \ No newline at end of file diff --git a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/heartbeat/HeartbeatModule.java b/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/heartbeat/HeartbeatModule.java deleted file mode 100644 index bb41907a9092..000000000000 --- a/core/ipc/sink/aws-sqs/itests/src/test/java/org/opennms/core/ipc/sink/aws/sqs/itests/heartbeat/HeartbeatModule.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.sink.aws.sqs.itests.heartbeat; - -import org.opennms.core.ipc.sink.api.AggregationPolicy; -import org.opennms.core.ipc.sink.api.AsyncPolicy; -import org.opennms.core.ipc.sink.xml.AbstractXmlSinkModule; - -/** - * The Class HeartbeatModule. - * - * @author Alejandro Galue - */ -public class HeartbeatModule extends AbstractXmlSinkModule { - - /** The Constant INSTANCE. */ - public static final HeartbeatModule INSTANCE = new HeartbeatModule(); - - /** - * Instantiates a new heartbeat module. - */ - public HeartbeatModule() { - super(Heartbeat.class); - } - - /* (non-Javadoc) - * @see org.opennms.core.ipc.sink.api.SinkModule#getNumConsumerThreads() - */ - @Override - public int getNumConsumerThreads() { - return 1; - } - - /* (non-Javadoc) - * @see org.opennms.core.ipc.sink.api.SinkModule#getId() - */ - @Override - public String getId() { - return "Heartbeat"; - } - - /* (non-Javadoc) - * @see org.opennms.core.ipc.sink.api.SinkModule#getAggregationPolicy() - */ - @Override - public AggregationPolicy getAggregationPolicy() { - // No aggregation - return null; - } - - /* (non-Javadoc) - * @see org.opennms.core.ipc.sink.api.SinkModule#getAsyncPolicy() - */ - @Override - public AsyncPolicy getAsyncPolicy() { - // Only synchronous dispatching - return null; - } - -} diff --git a/core/ipc/sink/aws-sqs/itests/src/test/resources/META-INF/opennms/applicationContext-ipc-sink-server-aws-mock.xml b/core/ipc/sink/aws-sqs/itests/src/test/resources/META-INF/opennms/applicationContext-ipc-sink-server-aws-mock.xml deleted file mode 100644 index 4247f086d750..000000000000 --- a/core/ipc/sink/aws-sqs/itests/src/test/resources/META-INF/opennms/applicationContext-ipc-sink-server-aws-mock.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/core/ipc/sink/aws-sqs/pom.xml b/core/ipc/sink/aws-sqs/pom.xml deleted file mode 100644 index 8415d318f939..000000000000 --- a/core/ipc/sink/aws-sqs/pom.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - org.opennms.core.ipc - org.opennms.core.ipc.sink - 28.1.1 - - 4.0.0 - org.opennms.core.ipc.sink - org.opennms.core.ipc.sink.aws.sqs - pom - OpenNMS :: Core :: IPC :: Sink :: AWS :: SQS - - common - client - server - itests - - diff --git a/core/ipc/sink/aws-sqs/server/pom.xml b/core/ipc/sink/aws-sqs/server/pom.xml deleted file mode 100644 index 3ca7092659f6..000000000000 --- a/core/ipc/sink/aws-sqs/server/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - org.opennms.core.ipc.sink - org.opennms.core.ipc.sink.aws.sqs - 28.1.1 - - 4.0.0 - org.opennms.core.ipc.sink.aws.sqs - org.opennms.core.ipc.sink.aws.sqs.server - OpenNMS :: Core :: IPC :: Sink :: AWS :: SQS :: Server - bundle - - true - - - - - org.apache.felix - maven-bundle-plugin - true - - - JavaSE-1.8 - ${project.artifactId} - ${project.version} - - - - - - - - org.opennms.core.ipc.sink.aws.sqs - org.opennms.core.ipc.sink.aws.sqs.common - ${project.version} - - - diff --git a/core/ipc/sink/aws-sqs/server/src/main/java/org/opennms/core/ipc/sink/aws/sqs/server/AmazonSQSConditionalSinkContext.java b/core/ipc/sink/aws-sqs/server/src/main/java/org/opennms/core/ipc/sink/aws/sqs/server/AmazonSQSConditionalSinkContext.java deleted file mode 100644 index 7b1ab7d532bd..000000000000 --- a/core/ipc/sink/aws-sqs/server/src/main/java/org/opennms/core/ipc/sink/aws/sqs/server/AmazonSQSConditionalSinkContext.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.sink.aws.sqs.server; - -import static org.opennms.core.ipc.sink.common.SinkStrategy.Strategy.SQS; - -import org.opennms.core.ipc.sink.api.MessageConsumerManager; -import org.opennms.core.ipc.sink.common.SinkStrategy; -import org.opennms.core.logging.Logging; -import org.opennms.core.logging.Logging.MDCCloseable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.annotation.ConditionContext; -import org.springframework.context.annotation.Conditional; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.ConfigurationCondition; -import org.springframework.context.annotation.ImportResource; -import org.springframework.core.type.AnnotatedTypeMetadata; - -@Configuration -@Conditional(AmazonSQSConditionalSinkContext.Condition.class) -@ImportResource("/META-INF/opennms/applicationContext-ipc-sink-aws-server.xml") -public class AmazonSQSConditionalSinkContext { - - /** The Constant LOG. */ - private static final Logger LOG = LoggerFactory.getLogger(AmazonSQSConditionalSinkContext.class); - - /** - * The Class Condition. - */ - static class Condition implements ConfigurationCondition { - - /* (non-Javadoc) - * @see org.springframework.context.annotation.ConfigurationCondition#getConfigurationPhase() - */ - @Override - public ConfigurationPhase getConfigurationPhase() { - return ConfigurationPhase.PARSE_CONFIGURATION; - } - - /* (non-Javadoc) - * @see org.springframework.context.annotation.Condition#matches(org.springframework.context.annotation.ConditionContext, org.springframework.core.type.AnnotatedTypeMetadata) - */ - @Override - public boolean matches(final ConditionContext context, final AnnotatedTypeMetadata metadata) { - final boolean enabled = SQS.equals(SinkStrategy.getSinkStrategy()); - try (MDCCloseable mdc = Logging.withPrefixCloseable(MessageConsumerManager.LOG_PREFIX)) { - LOG.debug("Enable AWS SQS Sink: {}", enabled); - } - return enabled; - } - } -} diff --git a/core/ipc/sink/aws-sqs/server/src/main/java/org/opennms/core/ipc/sink/aws/sqs/server/AmazonSQSMessageConsumerManager.java b/core/ipc/sink/aws-sqs/server/src/main/java/org/opennms/core/ipc/sink/aws/sqs/server/AmazonSQSMessageConsumerManager.java deleted file mode 100644 index ab899540fdcb..000000000000 --- a/core/ipc/sink/aws-sqs/server/src/main/java/org/opennms/core/ipc/sink/aws/sqs/server/AmazonSQSMessageConsumerManager.java +++ /dev/null @@ -1,209 +0,0 @@ -/******************************************************************************* - * This file is part of OpenNMS(R). - * - * Copyright (C) 2017 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2017 The OpenNMS Group, Inc. - * - * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. - * - * OpenNMS(R) is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, - * or (at your option) any later version. - * - * OpenNMS(R) is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with OpenNMS(R). If not, see: - * http://www.gnu.org/licenses/ - * - * For more information contact: - * OpenNMS(R) Licensing - * http://www.opennms.org/ - * http://www.opennms.com/ - *******************************************************************************/ - -package org.opennms.core.ipc.sink.aws.sqs.server; - -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.atomic.AtomicBoolean; - -import org.opennms.core.ipc.common.aws.sqs.AmazonSQSManager; -import org.opennms.core.ipc.sink.api.Message; -import org.opennms.core.ipc.sink.api.MessageConsumerManager; -import org.opennms.core.ipc.sink.api.SinkModule; -import org.opennms.core.ipc.sink.common.AbstractMessageConsumerManager; -import org.opennms.core.logging.Logging; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.amazonaws.services.sqs.AmazonSQS; -import com.amazonaws.services.sqs.model.AmazonSQSException; -import com.google.common.util.concurrent.ThreadFactoryBuilder; - -/** - * The Class AwsMessageConsumerManager. - * - * @author Alejandro Galue - */ -public class AmazonSQSMessageConsumerManager extends AbstractMessageConsumerManager { - - /** The Constant LOG. */ - private static final Logger LOG = LoggerFactory.getLogger(AmazonSQSMessageConsumerManager.class); - - /** The consumer runners by module. */ - private final Map, List> consumerRunnersByModule = new ConcurrentHashMap<>(); - - /** The thread factory. */ - private final ThreadFactory threadFactory = new ThreadFactoryBuilder() - .setNameFormat("sqs-consumer-%d") - .build(); - - /** The executor. */ - private final ExecutorService executor = Executors.newCachedThreadPool(threadFactory); - - /** The AWS SQS manager. */ - private AmazonSQSManager awsSqsManager; - - /** - * The Class AwsConsumerRunner. - */ - private class AwsConsumerRunner implements Runnable { - - /** The module. */ - private final SinkModule module; - - /** The closed. */ - private final AtomicBoolean closed = new AtomicBoolean(false); - - /** The AWS SQS Object. */ - private final AmazonSQS sqs; - - /** The queue URL. This is cached to avoid an API call on each attempt to send a message. */ - private String queueUrl; - - /** - * Instantiates a new AWS consumer runner. - * - * @param module the module - * @throws AmazonSQSException the Amazon SQS exception - */ - public AwsConsumerRunner(SinkModule module) throws AmazonSQSException { - this.module = module; - sqs = awsSqsManager.getSQSClient(); - } - - /* (non-Javadoc) - * @see java.lang.Runnable#run() - */ - @Override - public void run() { - Logging.putPrefix(MessageConsumerManager.LOG_PREFIX); - try { - LOG.debug("Retrieving queue URL for module with id: {}", module.getId()); - queueUrl = awsSqsManager.getSinkQueueUrlAndCreateIfNecessary(module.getId()); - LOG.debug("Using queue URL: {}", queueUrl); - } catch (InterruptedException e) { - LOG.error("Interrupted while retrieving queue URL. Aborting consumer.", e); - } - - while (!closed.get()) { - // The SQS Queue is configured to use "Long Polling" through "ReceiveMessageWaitTimeSeconds". - // That means, calling receiveMessage will block the thread execution for that amount of time if there are no messages on the queue. - // This is recommended to reduce the traffic against AWS, which can be translated into undesired costs. - List messages = null; - try { - messages = sqs.receiveMessage(queueUrl).getMessages(); - } catch (RuntimeException e) { - LOG.error("Unexpected exception while receiving messages from " + queueUrl, e); - } - if (messages != null) { - for (com.amazonaws.services.sqs.model.Message m : messages) { - try { - LOG.debug("Received SQS message with ID {} from {}", m.getMessageId(), queueUrl); - final Message msg = module.unmarshal(m.getBody().getBytes(StandardCharsets.UTF_8)); - dispatch(module, msg); - LOG.debug("Message with ID {} successfully dispatched.", m.getMessageId(), queueUrl); - } catch (RuntimeException e) { - final String msg = String.format("Unexpected exception while dispatching message with ID %s from %s", m.getMessageId(), queueUrl); - LOG.warn(msg, e); - } finally { - // This is mandatory to avoid re-process a message on a subsequent receive request. - LOG.debug("Deleting SQS message receipt handle {} from {}", m.getReceiptHandle(), queueUrl); - sqs.deleteMessage(queueUrl, m.getReceiptHandle()); - } - } - } - } - } - - /** - * Shutdown hook which can be called from a separate thread - */ - public void shutdown() { - closed.set(true); - sqs.shutdown(); - } - } - - /** - * Sets the AWS SQS manager. - * - * @param awsSqsManager the new AWS SQS manager - */ - public void setAwsSqsManager(AmazonSQSManager awsSqsManager) { - this.awsSqsManager = awsSqsManager; - } - - /* (non-Javadoc) - * @see org.opennms.core.ipc.sink.common.AbstractMessageConsumerManager#startConsumingForModule(org.opennms.core.ipc.sink.api.SinkModule) - */ - @Override - protected void startConsumingForModule(SinkModule module) throws Exception { - if (!consumerRunnersByModule.containsKey(module)) { - LOG.info("Starting consumers for module: {}", module); - - final int numConsumerThreads = getNumConsumerThreads(module); - final List consumerRunners = new ArrayList<>(numConsumerThreads); - for (int i = 0; i < numConsumerThreads; i++) { - final AwsConsumerRunner consumerRunner = new AwsConsumerRunner(module); - executor.execute(consumerRunner); - consumerRunners.add(new AwsConsumerRunner(module)); - } - - consumerRunnersByModule.put(module, consumerRunners); - } - } - - /* (non-Javadoc) - * @see org.opennms.core.ipc.sink.common.AbstractMessageConsumerManager#stopConsumingForModule(org.opennms.core.ipc.sink.api.SinkModule) - */ - @Override - protected void stopConsumingForModule(SinkModule module) throws Exception { - if (consumerRunnersByModule.containsKey(module)) { - LOG.info("Stopping consumers for module: {}", module); - final List consumerRunners = consumerRunnersByModule.get(module); - for (AwsConsumerRunner consumerRunner : consumerRunners) { - consumerRunner.shutdown(); - } - consumerRunnersByModule.remove(module); - } - } - - public void shutdown() { - executor.shutdown(); - if(getStartupExecutor() != null) { - getStartupExecutor().shutdown(); - } - } -} diff --git a/core/ipc/sink/aws-sqs/server/src/main/resources/META-INF/opennms/applicationContext-ipc-sink-aws-server.xml b/core/ipc/sink/aws-sqs/server/src/main/resources/META-INF/opennms/applicationContext-ipc-sink-aws-server.xml deleted file mode 100644 index 1d664405d61c..000000000000 --- a/core/ipc/sink/aws-sqs/server/src/main/resources/META-INF/opennms/applicationContext-ipc-sink-aws-server.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/core/ipc/sink/aws-sqs/server/src/main/resources/META-INF/opennms/component-dao.xml b/core/ipc/sink/aws-sqs/server/src/main/resources/META-INF/opennms/component-dao.xml deleted file mode 100644 index 36fd9fc370a8..000000000000 --- a/core/ipc/sink/aws-sqs/server/src/main/resources/META-INF/opennms/component-dao.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - diff --git a/core/ipc/sink/aws-sqs/server/src/main/resources/OSGI-INF/blueprint/blueprint-ipc-server.xml b/core/ipc/sink/aws-sqs/server/src/main/resources/OSGI-INF/blueprint/blueprint-ipc-server.xml deleted file mode 100644 index a301df63312b..000000000000 --- a/core/ipc/sink/aws-sqs/server/src/main/resources/OSGI-INF/blueprint/blueprint-ipc-server.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/ipc/sink/camel/client/pom.xml b/core/ipc/sink/camel/client/pom.xml index 028b32bbfae1..51eb998160b7 100644 --- a/core/ipc/sink/camel/client/pom.xml +++ b/core/ipc/sink/camel/client/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc.sink org.opennms.core.ipc.sink.camel - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -42,7 +42,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/core/ipc/sink/camel/common/pom.xml b/core/ipc/sink/camel/common/pom.xml index 70ffef02539f..da6f7371b034 100644 --- a/core/ipc/sink/camel/common/pom.xml +++ b/core/ipc/sink/camel/common/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc.sink org.opennms.core.ipc.sink.camel - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/core/ipc/sink/camel/itests/pom.xml b/core/ipc/sink/camel/itests/pom.xml index bbc385347cc5..dcf86f47ebee 100644 --- a/core/ipc/sink/camel/itests/pom.xml +++ b/core/ipc/sink/camel/itests/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc.sink org.opennms.core.ipc.sink.camel - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/core/ipc/sink/camel/pom.xml b/core/ipc/sink/camel/pom.xml index 29feba05abbc..858013b5603a 100644 --- a/core/ipc/sink/camel/pom.xml +++ b/core/ipc/sink/camel/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.sink - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.sink diff --git a/core/ipc/sink/camel/server/pom.xml b/core/ipc/sink/camel/server/pom.xml index f87039578aa7..905f6b414587 100644 --- a/core/ipc/sink/camel/server/pom.xml +++ b/core/ipc/sink/camel/server/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc.sink org.opennms.core.ipc.sink.camel - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/core/ipc/sink/common/pom.xml b/core/ipc/sink/common/pom.xml index d086160bb5ce..fa963396064a 100644 --- a/core/ipc/sink/common/pom.xml +++ b/core/ipc/sink/common/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.sink - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.sink @@ -69,7 +69,7 @@ org.osgi - org.osgi.core + osgi.core provided @@ -103,7 +103,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/core/ipc/sink/common/src/main/java/org/opennms/core/ipc/sink/common/SinkStrategy.java b/core/ipc/sink/common/src/main/java/org/opennms/core/ipc/sink/common/SinkStrategy.java index 75e787bdda85..f8232f3499fd 100644 --- a/core/ipc/sink/common/src/main/java/org/opennms/core/ipc/sink/common/SinkStrategy.java +++ b/core/ipc/sink/common/src/main/java/org/opennms/core/ipc/sink/common/SinkStrategy.java @@ -40,8 +40,6 @@ public class SinkStrategy { private static final String KAFKA_SINK_STRATEGY_NAME = "kafka"; - private static final String SQS_SINK_STRATEGY_NAME = "sqs"; - private static final String GRPC_SINK_STRATEGY_NAME = "grpc"; private static final String OSGI_SINK_STRATEGY_NAME = "osgi"; @@ -49,7 +47,6 @@ public class SinkStrategy { public static enum Strategy { CAMEL(CAMEL_SINK_STRATEGY_NAME, "JMS implementation using Camel"), KAFKA(KAFKA_SINK_STRATEGY_NAME, "Kafka implementation using the Kafka consumer/producer APIs"), - SQS(SQS_SINK_STRATEGY_NAME, "AWS SQS implementation using the AWS SDK"), GRPC(GRPC_SINK_STRATEGY_NAME, "GRPC implementation using gRPC APIs"), OSGI(OSGI_SINK_STRATEGY_NAME, "OSGI Delegate implementation"); diff --git a/core/ipc/sink/kafka/client/pom.xml b/core/ipc/sink/kafka/client/pom.xml index 8b6a315c41ed..519144ab660e 100644 --- a/core/ipc/sink/kafka/client/pom.xml +++ b/core/ipc/sink/kafka/client/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc.sink org.opennms.core.ipc.sink.kafka - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.sink.kafka @@ -40,7 +40,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/core/ipc/sink/kafka/itests/pom.xml b/core/ipc/sink/kafka/itests/pom.xml index ae82b5ed8eca..765b01c52ee7 100644 --- a/core/ipc/sink/kafka/itests/pom.xml +++ b/core/ipc/sink/kafka/itests/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc.sink org.opennms.core.ipc.sink.kafka - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.sink.kafka diff --git a/core/ipc/sink/kafka/pom.xml b/core/ipc/sink/kafka/pom.xml index 95957be3428f..59710c15470c 100644 --- a/core/ipc/sink/kafka/pom.xml +++ b/core/ipc/sink/kafka/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.sink - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.sink diff --git a/core/ipc/sink/kafka/server/pom.xml b/core/ipc/sink/kafka/server/pom.xml index 79dcacb44d44..30d60d27ca42 100644 --- a/core/ipc/sink/kafka/server/pom.xml +++ b/core/ipc/sink/kafka/server/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc.sink org.opennms.core.ipc.sink.kafka - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.sink.kafka diff --git a/core/ipc/sink/mock-impl/pom.xml b/core/ipc/sink/mock-impl/pom.xml index 40d28f3293b8..abc68d3766f7 100644 --- a/core/ipc/sink/mock-impl/pom.xml +++ b/core/ipc/sink/mock-impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.sink - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.sink @@ -29,7 +29,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/core/ipc/sink/off-heap/pom.xml b/core/ipc/sink/off-heap/pom.xml index f6a1d3ffd5fb..1d3d6ca316d0 100644 --- a/core/ipc/sink/off-heap/pom.xml +++ b/core/ipc/sink/off-heap/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.sink - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.sink diff --git a/core/ipc/sink/pom.xml b/core/ipc/sink/pom.xml index bf0cacd93774..32fe627c7fbf 100644 --- a/core/ipc/sink/pom.xml +++ b/core/ipc/sink/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.ipc - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc @@ -15,7 +15,6 @@ common camel kafka - aws-sqs mock-impl xml off-heap diff --git a/core/ipc/sink/xml/pom.xml b/core/ipc/sink/xml/pom.xml index 804c46b6f26c..d7bb52aed4f3 100644 --- a/core/ipc/sink/xml/pom.xml +++ b/core/ipc/sink/xml/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.ipc org.opennms.core.ipc.sink - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.ipc.sink diff --git a/core/ipc/twin/api/pom.xml b/core/ipc/twin/api/pom.xml new file mode 100644 index 000000000000..a75e6916524b --- /dev/null +++ b/core/ipc/twin/api/pom.xml @@ -0,0 +1,37 @@ + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc + 29.0.0-SNAPSHOT + + 4.0.0 + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.api + bundle + OpenNMS :: Core :: IPC :: Twin :: API + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + + + + + + + + com.google.guava + guava + + + \ No newline at end of file diff --git a/core/ipc/twin/api/src/main/java/org/opennms/core/ipc/twin/api/TwinPublisher.java b/core/ipc/twin/api/src/main/java/org/opennms/core/ipc/twin/api/TwinPublisher.java new file mode 100644 index 000000000000..1b876af57ae9 --- /dev/null +++ b/core/ipc/twin/api/src/main/java/org/opennms/core/ipc/twin/api/TwinPublisher.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.api; + +import java.io.Closeable; +import java.io.IOException; + +/** + * TwinPublisher lives on OpenNMS that handles all the Objects that need to be replicated. + * At boot up, modules register module specific key with TwinPublisher. + * Modules publish initial objects/updated objects on the session. + */ + +public interface TwinPublisher extends Closeable { + + /** + * Session that can publish initial objects and updates to T. + * + * @param type of object that is getting replicated. + */ + interface Session extends Closeable { + /** + * @param obj an object that needs replication on Minion + */ + void publish(T obj) throws IOException; + } + + /** + * @param type of object for replication + * @param key unique key for the object. + * @param clazz a class used for serialization. + * @param location targeted Minion location for the object, set null for all locations. + * @return Session which provides updates to object. + */ + Session register(String key, Class clazz, String location) throws IOException; + + default Session register(String key, Class clazz) throws IOException { + return register(key, clazz, null); + } +} + diff --git a/core/ipc/twin/api/src/main/java/org/opennms/core/ipc/twin/api/TwinStrategy.java b/core/ipc/twin/api/src/main/java/org/opennms/core/ipc/twin/api/TwinStrategy.java new file mode 100644 index 000000000000..a87fb011ff2e --- /dev/null +++ b/core/ipc/twin/api/src/main/java/org/opennms/core/ipc/twin/api/TwinStrategy.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.api; + +import com.google.common.base.Strings; + +public class TwinStrategy { + + public static final String IPC_STRATEGY = "org.opennms.core.ipc.strategy"; + + public static final String TWIN_STRATEGY_PROPERTY = "org.opennms.core.ipc.twin.strategy"; + + private static final String JMS_TWIN_STRATEGY_NAME = "jms"; + + private static final String KAFKA_TWIN_STRATEGY_NAME = "kafka"; + + private static final String GRPC_TWIN_STRATEGY_NAME = "grpc"; + + private static final String OSGI_TWIN_STRATEGY_NAME = "osgi"; + + public static enum Strategy { + JMS(JMS_TWIN_STRATEGY_NAME, "JMS implementation using Camel"), + KAFKA(KAFKA_TWIN_STRATEGY_NAME, "Kafka implementation using the Kafka consumer/producer APIs"), + GRPC(GRPC_TWIN_STRATEGY_NAME, "GRPC implementation using gRPC APIs"), + OSGI(OSGI_TWIN_STRATEGY_NAME, "OSGI Delegate implementation"); + + private final String m_name; + private final String m_descr; + + Strategy(String name, String descr) { + m_name = name; + m_descr = descr; + } + Strategy(String name) { + this(name, name); + } + + public String getName() { + return m_name; + } + + public String getDescr() { + return m_descr; + } + } + + public static Strategy getTwinStrategy() { + String effectiveStrategyName = System.getProperty(IPC_STRATEGY); + if (Strings.isNullOrEmpty(effectiveStrategyName)) { + effectiveStrategyName = System.getProperty(TWIN_STRATEGY_PROPERTY, JMS_TWIN_STRATEGY_NAME); + } + for (Strategy strategy : Strategy.values()) { + if (strategy.getName().equalsIgnoreCase(effectiveStrategyName)) { + return strategy; + } + } + throw new IllegalArgumentException("Unsupported Twin strategy: " + effectiveStrategyName); + } +} diff --git a/core/ipc/twin/api/src/main/java/org/opennms/core/ipc/twin/api/TwinSubscriber.java b/core/ipc/twin/api/src/main/java/org/opennms/core/ipc/twin/api/TwinSubscriber.java new file mode 100644 index 000000000000..8cfc828d6c94 --- /dev/null +++ b/core/ipc/twin/api/src/main/java/org/opennms/core/ipc/twin/api/TwinSubscriber.java @@ -0,0 +1,49 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.api; + +import java.io.Closeable; +import java.util.function.Consumer; + +/** + * TwinSubscriber lives on Minion that handles all the Object subscriptions on Minion. + * At boot up, a module that lives on Minion issues an RPC from Minion to OpenNMS to get an object. + * Subsequent updates of the object will come as reverse sink messages from OpenNMS to Minion + */ +public interface TwinSubscriber extends Closeable { + + /** + * @param key Unique key for the object. + * @param clazz Specific bean class of T to marshal/unmarshal. + * @param consumer Consumer of T for subsequent updates to T. + * @param T is an object type that needs to be replicated from OpenNMS to Minion. + * @return Closeable to close the subscription of T. + */ + Closeable subscribe(String key, Class clazz, Consumer consumer); +} diff --git a/core/ipc/twin/api/src/main/java/org/opennms/core/ipc/twin/api/util/StatefulSubscription.java b/core/ipc/twin/api/src/main/java/org/opennms/core/ipc/twin/api/util/StatefulSubscription.java new file mode 100644 index 000000000000..1c775e702ee0 --- /dev/null +++ b/core/ipc/twin/api/src/main/java/org/opennms/core/ipc/twin/api/util/StatefulSubscription.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.api.util; + +import java.util.Objects; +import java.util.function.Consumer; + +public abstract class StatefulSubscription implements Consumer { + + private T current = null; + + protected abstract void accept(final T current, final T update); + + @Override + public final void accept(final T update) { + if (!Objects.equals(this.current, update)) { + this.accept(this.current, update); + } + + this.current = update; + } + + public T getCurrent() { + return this.current; + } +} diff --git a/core/ipc/twin/common/pom.xml b/core/ipc/twin/common/pom.xml new file mode 100644 index 000000000000..4e71c6feddc6 --- /dev/null +++ b/core/ipc/twin/common/pom.xml @@ -0,0 +1,157 @@ + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc + 29.0.0-SNAPSHOT + + 4.0.0 + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.common + OpenNMS :: Core :: IPC :: Twin :: Common + bundle + + ${project.basedir}/src/main + + + + + + + + + ${protobuf.source.dir} + + proto/twin-message.proto + + + + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + + + + + + + + + org.slf4j + slf4j-api + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.api + ${project.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson2Version} + + + com.github.java-json-tools + json-patch + ${jsonPatchVersion} + + + org.opennms.features.distributed + core-api + ${project.version} + + + com.google.protobuf + protobuf-java + ${protobufVersion} + + + junit + junit + test + + + org.opennms.core.test-api + org.opennms.core.test-api.kafka + ${project.version} + test + + + com.jayway.awaitility + awaitility + test + + + org.apache.logging.log4j + log4j-slf4j-impl + 2.11.2 + test + + + \ No newline at end of file diff --git a/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/AbstractTwinPublisher.java b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/AbstractTwinPublisher.java new file mode 100644 index 000000000000..994f94847a9b --- /dev/null +++ b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/AbstractTwinPublisher.java @@ -0,0 +1,238 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.common; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.function.BiConsumer; + +import com.fasterxml.jackson.databind.JsonNode; +import com.github.fge.jsonpatch.diff.JsonDiff; +import com.google.common.base.Strings; +import com.google.protobuf.ByteString; +import com.google.protobuf.InvalidProtocolBufferException; +import org.opennms.core.ipc.twin.api.TwinPublisher; +import org.opennms.core.ipc.twin.model.TwinRequestProto; +import org.opennms.core.ipc.twin.model.TwinResponseProto; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + +public abstract class AbstractTwinPublisher implements TwinPublisher { + + private static final Logger LOG = LoggerFactory.getLogger(AbstractTwinPublisher.class); + private final Map twinTrackerMap = new HashMap<>(); + protected final ObjectMapper objectMapper = new ObjectMapper(); + + private final LocalTwinSubscriber localTwinSubscriber; + + public AbstractTwinPublisher(LocalTwinSubscriber localTwinSubscriber) { + this.localTwinSubscriber = Objects.requireNonNull(localTwinSubscriber); + } + + /** + * @param sinkUpdate Handle sink Update from @{@link AbstractTwinPublisher}. + */ + protected abstract void handleSinkUpdate(TwinUpdate sinkUpdate); + + @Override + public Session register(String key, Class clazz, String location) throws IOException { + SessionKey sessionKey = new SessionKey(key, location); + LOG.info("Registered a session with key {}", sessionKey); + return new SessionImpl<>(sessionKey); + } + + protected TwinUpdate getTwin(TwinRequest twinRequest) { + TwinTracker twinTracker = getTwinTracker(twinRequest.getKey(), twinRequest.getLocation()); + TwinUpdate twinUpdate; + if (twinTracker == null) { + // No twin object exists for this key yet, return with null object. + twinUpdate = new TwinUpdate(twinRequest.getKey(), twinRequest.getLocation(), null); + } else { + // Fill TwinUpdate fields from TwinTracker. + twinUpdate = new TwinUpdate(twinRequest.getKey(), twinRequest.getLocation(), twinTracker.getObj()); + twinUpdate.setPatch(false); + twinUpdate.setVersion(twinTracker.getVersion()); + twinUpdate.setSessionId(twinTracker.getSessionId()); + } + return twinUpdate; + } + + private synchronized TwinTracker getTwinTracker(String key, String location) { + // Check if we have a session key specific to location else check session key without location. + TwinTracker twinTracker = twinTrackerMap.get(new SessionKey(key, location)); + if(twinTracker == null) { + twinTracker = twinTrackerMap.get(new SessionKey(key, null)); + } + return twinTracker; + } + + protected TwinResponseProto mapTwinResponse(TwinUpdate twinUpdate) { + TwinResponseProto.Builder builder = TwinResponseProto.newBuilder(); + if (!Strings.isNullOrEmpty(twinUpdate.getLocation())) { + builder.setLocation(twinUpdate.getLocation()); + } + if(!Strings.isNullOrEmpty(twinUpdate.getSessionId())) { + builder.setSessionId(twinUpdate.getSessionId()); + } + builder.setConsumerKey(twinUpdate.getKey()); + if (twinUpdate.getObject() != null) { + builder.setTwinObject(ByteString.copyFrom(twinUpdate.getObject())); + } + builder.setIsPatchObject(twinUpdate.isPatch()); + builder.setVersion(twinUpdate.getVersion()); + return builder.build(); + } + + protected TwinRequest mapTwinRequestProto(byte[] twinRequestBytes) { + TwinRequest twinRequest = new TwinRequest(); + try { + TwinRequestProto twinRequestProto = TwinRequestProto.parseFrom(twinRequestBytes); + twinRequest.setKey(twinRequestProto.getConsumerKey()); + if (!Strings.isNullOrEmpty(twinRequestProto.getLocation())) { + twinRequest.setLocation(twinRequestProto.getLocation()); + } + } catch (InvalidProtocolBufferException e) { + LOG.warn("Failed to parse protobuf for the request", e); + throw new RuntimeException(e); + } + return twinRequest; + } + + private synchronized TwinUpdate getResponseFromUpdatedObj(byte[] updatedObj, SessionKey sessionKey) { + TwinTracker twinTracker = getTwinTracker(sessionKey.key, sessionKey.location); + if (twinTracker == null || !Arrays.equals(twinTracker.getObj(), updatedObj)) { + TwinUpdate twinUpdate = new TwinUpdate(sessionKey.key, sessionKey.location, updatedObj); + if (twinTracker == null) { + twinTracker = new TwinTracker(updatedObj); + } else { + // Generate patch and update response with patch. + byte[] patchValue = getPatchValue(twinTracker.getObj(), updatedObj, sessionKey); + if (patchValue != null) { + twinUpdate.setObject(patchValue); + twinUpdate.setPatch(true); + } + // Update Twin tracker with updated obj. + twinTracker.setObj(updatedObj); + twinTracker.incrementVersion(); + } + twinTrackerMap.put(sessionKey, twinTracker); + twinUpdate.setVersion(twinTracker.getVersion()); + twinUpdate.setSessionId(twinTracker.getSessionId()); + return twinUpdate; + } + return null; + } + + private byte[] getPatchValue(byte[] originalObj, byte[] updatedObj, SessionKey sessionKey) { + try { + JsonNode sourceNode = objectMapper.readTree(originalObj); + JsonNode targetNode = objectMapper.readTree(updatedObj); + JsonNode diffNode = JsonDiff.asJson(sourceNode, targetNode); + return diffNode.toString().getBytes(StandardCharsets.UTF_8); + } catch (Exception e) { + LOG.error("Unable to generate patch for SessionKey {}", sessionKey, e); + } + return null; + } + + private synchronized void removeSessionKey(SessionKey sessionKey) { + twinTrackerMap.remove(sessionKey); + } + + public synchronized void forEachSession(BiConsumer consumer) { + twinTrackerMap.forEach(consumer); + } + + private class SessionImpl implements Session { + + private final SessionKey sessionKey; + + public SessionImpl(SessionKey sessionKey) { + this.sessionKey = sessionKey; + } + + @Override + public void publish(T obj) throws IOException { + LOG.info("Published an object update for the session with key {}", sessionKey.toString()); + byte[] objInBytes = objectMapper.writeValueAsBytes(obj); + TwinUpdate twinUpdate = getResponseFromUpdatedObj(objInBytes, sessionKey); + if(twinUpdate != null) { + // Send update to local subscriber and on sink path. + localTwinSubscriber.accept(twinUpdate); + handleSinkUpdate(twinUpdate); + } + } + + + @Override + public void close() throws IOException { + removeSessionKey(sessionKey); + LOG.info("Closed session with key {} ", sessionKey); + } + } + + public static class SessionKey { + + public final String key; + public final String location; + + private SessionKey(String key, String location) { + this.key = key; + this.location = location; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SessionKey that = (SessionKey) o; + return Objects.equals(key, that.key) && Objects.equals(location, that.location); + } + + @Override + public int hashCode() { + return Objects.hash(key, location); + } + + @Override + public String toString() { + return "SessionKey{" + + "key='" + key + '\'' + + ", location='" + location + '\'' + + '}'; + } + } + +} diff --git a/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/AbstractTwinSubscriber.java b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/AbstractTwinSubscriber.java new file mode 100644 index 000000000000..540d90cecf5b --- /dev/null +++ b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/AbstractTwinSubscriber.java @@ -0,0 +1,302 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.common; + +import java.io.Closeable; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import java.util.Map; +import java.util.Objects; +import java.util.StringJoiner; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadFactory; +import java.util.function.Consumer; + +import com.fasterxml.jackson.databind.JsonNode; +import com.github.fge.jsonpatch.JsonPatch; +import com.google.common.base.Strings; +import com.google.common.collect.Multimap; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.google.protobuf.InvalidProtocolBufferException; +import org.opennms.core.ipc.twin.api.TwinSubscriber; +import org.opennms.core.ipc.twin.model.TwinRequestProto; +import org.opennms.core.ipc.twin.model.TwinResponseProto; +import org.opennms.distributed.core.api.MinionIdentity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimaps; + +public abstract class AbstractTwinSubscriber implements TwinSubscriber { + + private final Multimap> sessionMap = Multimaps.synchronizedListMultimap(ArrayListMultimap.create()); + private final Map objMap = new ConcurrentHashMap<>(); + private final ObjectMapper objectMapper = new ObjectMapper(); + private MinionIdentity minionIdentity; + private static final Logger LOG = LoggerFactory.getLogger(AbstractTwinSubscriber.class); + private final ThreadFactory threadFactory = new ThreadFactoryBuilder() + .setNameFormat("abstract-twin-subscriber-%d") + .build(); + private ExecutorService executorService = Executors.newSingleThreadExecutor(threadFactory); + + protected AbstractTwinSubscriber(MinionIdentity minionIdentity) { + this.minionIdentity = minionIdentity; + } + + public AbstractTwinSubscriber() { + } + + /** + * @param twinRequest Send RpcRequest from @{@link AbstractTwinSubscriber} + */ + protected abstract void sendRpcRequest(TwinRequest twinRequest); + + + @Override + public Closeable subscribe(String key, Class clazz, Consumer consumer) { + SessionImpl session = new SessionImpl(key, clazz, consumer); + sessionMap.put(key, session); + String location = minionIdentity != null ? minionIdentity.getLocation() : null; + + TwinTracker twinTracker = objMap.get(key); + // If there is an existing object, send that update to subscriber + if (twinTracker != null) { + try { + session.accept(twinTracker.getObj()); + } catch (Exception e) { + LOG.error("Exception while sending response to consumer", e); + } + } else { + TwinRequest twinRequest = new TwinRequest(key, location); + sendRpcRequest(twinRequest); + } + + LOG.info("Subscribed to object updates with key {}", key); + return session; + } + + protected void accept(TwinUpdate twinUpdate) { + + // If Response is targeted to a location, ignore if it doesn't belong to the location of subscriber. + if (twinUpdate.getLocation() != null && !twinUpdate.getLocation().equals(getLocation())) { + return; + } + + // Got empty response + if (twinUpdate.getObject() == null || twinUpdate.getSessionId() == null) { + return; + } + + // Consume in our own thread instead of using broker's callback thread. + executorService.execute(() -> { + validateAndHandleUpdate(twinUpdate); + }); + } + + private void validateAndHandleUpdate(TwinUpdate twinUpdate) { + TwinTracker twinTracker = objMap.get(twinUpdate.getKey()); + if (twinTracker == null) { + if (!twinUpdate.isPatch()) { + updateSessions(twinUpdate, twinUpdate.getObject()); + } + return; + } + if (isObjectUpdated(twinTracker, twinUpdate)) { + LOG.trace("Received object update with key {}", twinUpdate.getKey()); + // No need to update if version we are getting is less than what we have with the same session. + if (twinTracker.getSessionId().equals(twinUpdate.getSessionId()) + && twinTracker.getVersion() > twinUpdate.getVersion()) { + return; + } + // If this is coming completely from new session, reset tracker. + if (!twinTracker.getSessionId().equals(twinUpdate.getSessionId())) { + if (!twinUpdate.isPatch()) { + updateSessions(twinUpdate, twinUpdate.getObject()); + } + return; + } + // We can't apply patch when the version jumps more than one version. + if (twinUpdate.getVersion() != twinTracker.getVersion() + 1) { + sendRpcRequest(new TwinRequest(twinUpdate.getKey(), twinUpdate.getLocation())); + return; + } + byte[] patchedBytes = applyPatch(twinTracker, twinUpdate); + // Invoke RPC when we can't apply patch properly. + if (patchedBytes != null) { + // Update twin object for sessions. + updateSessions(twinUpdate, patchedBytes); + } else { + sendRpcRequest(new TwinRequest(twinUpdate.getKey(), twinUpdate.getLocation())); + } + } + } + + private byte[] applyPatch(TwinTracker twinTracker, TwinUpdate twinUpdate) { + if (!twinUpdate.isPatch()) { + return twinUpdate.getObject(); + } + try { + JsonNode resultingDiff = objectMapper.readTree(twinUpdate.getObject()); + JsonNode original = objectMapper.readTree(twinTracker.getObj()); + JsonPatch patch = JsonPatch.fromJson(resultingDiff); + JsonNode resultNode = patch.apply(original); + return resultNode.toString().getBytes(StandardCharsets.UTF_8); + } catch (Exception e) { + LOG.error("Not able to apply patch for key {}", twinUpdate.getKey(), e); + } + return null; + } + + private boolean isObjectUpdated(TwinTracker twinTracker, TwinUpdate twinUpdate) { + if (twinUpdate.isPatch()) { + return true; + } + return !Arrays.equals(twinTracker.getObj(), twinUpdate.getObject()); + } + + private void updateSessions(TwinUpdate twinUpdate, byte[] newObjBytes) { + // Update twin object in local cache. + objMap.put(twinUpdate.getKey(), new TwinTracker(newObjBytes, twinUpdate.getVersion(), twinUpdate.getSessionId())); + // Send update to each session. + synchronized(sessionMap) { + final var sessions = sessionMap.get(twinUpdate.getKey()); + if (sessions != null) { + sessions.forEach(session -> { + try { + session.accept(newObjBytes); + } catch (Exception e) { + LOG.error("Exception while sending update to Session {} for key {}", session, twinUpdate.getKey(), e); + } + }); + } + } + } + + + protected TwinUpdate mapTwinResponseToProto(byte[] responseBytes) { + TwinUpdate twinUpdate = new TwinUpdate(); + try { + TwinResponseProto twinResponseProto = TwinResponseProto.parseFrom(responseBytes); + + if (!Strings.isNullOrEmpty(twinResponseProto.getLocation())) { + twinUpdate.setLocation(twinResponseProto.getLocation()); + } + if(!Strings.isNullOrEmpty(twinResponseProto.getSessionId())) { + twinUpdate.setSessionId(twinResponseProto.getSessionId()); + } + twinUpdate.setKey(twinResponseProto.getConsumerKey()); + if (twinResponseProto.getTwinObject() != null) { + twinUpdate.setObject(twinResponseProto.getTwinObject().toByteArray()); + } + twinUpdate.setPatch(twinResponseProto.getIsPatchObject()); + twinUpdate.setVersion(twinResponseProto.getVersion()); + return twinUpdate; + } catch (InvalidProtocolBufferException e) { + LOG.error("Failed to parse response from proto", e); + throw new RuntimeException(e); + } + } + + protected TwinRequestProto mapTwinRequestToProto(TwinRequest twinRequest) { + TwinRequestProto.Builder builder = TwinRequestProto.newBuilder(); + builder.setConsumerKey(twinRequest.getKey()).setLocation(getMinionIdentity().getLocation()) + .setSystemId(getMinionIdentity().getId()); + return builder.build(); + } + + public void close() throws IOException { + executorService.shutdown(); + objMap.clear(); + sessionMap.clear(); + } + + public MinionIdentity getMinionIdentity() { + return minionIdentity; + } + + private String getLocation() { + if (minionIdentity != null) { + return minionIdentity.getLocation(); + } + return null; + } + + private class SessionImpl implements Closeable { + + private final String key; + private final Consumer consumer; + private final Class clazz; + + public SessionImpl(String key, Class clazz, Consumer consumer) { + this.key = key; + this.clazz = clazz; + this.consumer = consumer; + } + + @Override + public void close() throws IOException { + sessionMap.remove(key, this); + LOG.info("Closed session with key {} ", key); + } + + public void accept(byte[] objValue) throws IOException { + final T value = objectMapper.readValue(objValue, clazz); + LOG.trace("Updated consumer with key {}", key); + consumer.accept(value); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SessionImpl session = (SessionImpl) o; + return Objects.equals(key, session.key) && Objects.equals(consumer, session.consumer) && Objects.equals(clazz, session.clazz); + } + + @Override + public int hashCode() { + return Objects.hash(key, consumer, clazz); + } + + @Override + public String toString() { + return new StringJoiner(", ", SessionImpl.class.getSimpleName() + "[", "]") + .add("key='" + key + "'") + .add("consumer=" + consumer) + .add("clazz=" + clazz) + .toString(); + } + } + +} diff --git a/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/LocalTwinSubscriber.java b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/LocalTwinSubscriber.java new file mode 100644 index 000000000000..7f9d7f83a180 --- /dev/null +++ b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/LocalTwinSubscriber.java @@ -0,0 +1,36 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.common; + +import org.opennms.core.ipc.twin.api.TwinSubscriber; + +public interface LocalTwinSubscriber extends TwinSubscriber { + + void accept(TwinUpdate twinResponse); +} diff --git a/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/LocalTwinSubscriberImpl.java b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/LocalTwinSubscriberImpl.java new file mode 100644 index 000000000000..769479b22844 --- /dev/null +++ b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/LocalTwinSubscriberImpl.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.common; + + +import java.io.IOException; + +public class LocalTwinSubscriberImpl extends AbstractTwinSubscriber implements LocalTwinSubscriber { + + + @Override + protected void sendRpcRequest(TwinRequest twinRequest) { + // no need to send any RPC on local subscriber. + } + + @Override + public void accept(TwinUpdate twinUpdate) { + super.accept(twinUpdate); + } + + @Override + public void close() throws IOException { + } +} + + diff --git a/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/TwinRequest.java b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/TwinRequest.java new file mode 100644 index 000000000000..a2a5fb3bd08a --- /dev/null +++ b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/TwinRequest.java @@ -0,0 +1,83 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.common; + +import java.util.Objects; + +public class TwinRequest { + + protected String key; + + protected String location; + + public TwinRequest(String key, String location) { + this.key = key; + this.location = location; + } + + public TwinRequest() { + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TwinRequest that = (TwinRequest) o; + return Objects.equals(key, that.key) && Objects.equals(location, that.location); + } + + @Override + public int hashCode() { + return Objects.hash(key, location); + } + + @Override + public String toString() { + return "TwinRequestBean{" + + "key='" + key + '\'' + + ", location='" + location + '\'' + + '}'; + } +} diff --git a/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/TwinTracker.java b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/TwinTracker.java new file mode 100644 index 000000000000..7a0feff0d9aa --- /dev/null +++ b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/TwinTracker.java @@ -0,0 +1,78 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.common; + +import java.util.Objects; +import java.util.UUID; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * This Tracks Twin Object Updates for a given SessionKey (key, location). + * Twin Tracker consists of marshalled object( byte[]), version and sessionId. + * Version is incremented whenever object updates. + * sessionId is created only once per a SessionKey. + * TwinTracker is created and updated by publisher and only consumed by Subscriber. + * Subscriber will ignore any stale updates based on version but resets version whenever there is new SessionId. + */ +public class TwinTracker { + + private final AtomicInteger version; + private byte[] obj; + private final String sessionId; + + public TwinTracker(byte[] obj) { + this(obj, 0, UUID.randomUUID().toString()); + } + public TwinTracker(byte[] obj, int version, String sessionId) { + this.obj = obj; + this.version = new AtomicInteger(version); + this.sessionId = Objects.requireNonNull(sessionId); + } + + public int getVersion() { + return version.get(); + } + + public int incrementVersion() { + return version.incrementAndGet(); + } + + public byte[] getObj() { + return obj; + } + + public String getSessionId() { + return sessionId; + } + + + public void setObj(byte[] obj) { + this.obj = obj; + } +} diff --git a/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/TwinUpdate.java b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/TwinUpdate.java new file mode 100644 index 000000000000..098c3f7eeb8c --- /dev/null +++ b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/common/TwinUpdate.java @@ -0,0 +1,136 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.common; + +import com.google.common.base.Objects; + +import java.util.Arrays; +import java.util.StringJoiner; + +public class TwinUpdate { + + + private final TwinRequest twinRequest; + + public TwinUpdate() { + this.twinRequest = new TwinRequest(); + } + + public TwinUpdate(String key, String location, byte[] object) { + this.twinRequest = new TwinRequest(key, location); + this.object = object; + } + public TwinUpdate(String key, String location) { + this.twinRequest = new TwinRequest(key, location); + } + + private byte[] object; + + private int version; + + private boolean isPatch; + + private String sessionId; + + public byte[] getObject() { + return object; + } + + public void setObject(byte[] object) { + this.object = object; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + + + public String getSessionId() { + return sessionId; + } + + public void setSessionId(String sessionId) { + this.sessionId = sessionId; + } + + public boolean isPatch() { + return isPatch; + } + + public void setPatch(boolean patch) { + isPatch = patch; + } + + public void setLocation(String location) { + twinRequest.setLocation(location); + } + + public void setKey(String key) { + twinRequest.setKey(key); + } + + public String getLocation() { + return twinRequest.getLocation(); + } + + public String getKey() { + return twinRequest.getKey(); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof TwinUpdate)) return false; + TwinUpdate that = (TwinUpdate) o; + return version == that.version && isPatch == that.isPatch + && Objects.equal(twinRequest, that.twinRequest) + && Objects.equal(object, that.object) + && Objects.equal(sessionId, that.sessionId); + } + + @Override + public int hashCode() { + return Objects.hashCode(twinRequest, object, version, isPatch, sessionId); + } + + @Override + public String toString() { + return new StringJoiner(", ", TwinUpdate.class.getSimpleName() + "[", "]") + .add("twinRequest=" + twinRequest) + .add("object=" + Arrays.toString(object)) + .add("version=" + version) + .add("isPatch=" + isPatch) + .add("sessionId='" + sessionId + "'") + .toString(); + } +} diff --git a/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinMessageProto.java b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinMessageProto.java new file mode 100644 index 000000000000..bc43b319e210 --- /dev/null +++ b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinMessageProto.java @@ -0,0 +1,128 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: twin-message.proto + +package org.opennms.core.ipc.twin.model; + +public final class TwinMessageProto { + private TwinMessageProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_TwinRequestProto_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TwinRequestProto_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_TwinRequestProto_TracingInfoEntry_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TwinRequestProto_TracingInfoEntry_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_TwinResponseProto_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TwinResponseProto_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_TwinResponseProto_TracingInfoEntry_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TwinResponseProto_TracingInfoEntry_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\022twin-message.proto\"\273\001\n\020TwinRequestProt" + + "o\022\024\n\014consumer_key\030\001 \001(\t\022\021\n\tsystem_id\030\002 \001" + + "(\t\022\020\n\010location\030\003 \001(\t\0228\n\014tracing_info\030\004 \003" + + "(\0132\".TwinRequestProto.TracingInfoEntry\0322" + + "\n\020TracingInfoEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value" + + "\030\002 \001(\t:\0028\001\"\220\002\n\021TwinResponseProto\022\024\n\014cons" + + "umer_key\030\001 \001(\t\022\023\n\013twin_object\030\002 \001(\014\022\021\n\ts" + + "ystem_id\030\003 \001(\t\022\020\n\010location\030\004 \001(\t\022\027\n\017is_p" + + "atch_object\030\005 \001(\010\022\022\n\nsession_id\030\006 \001(\t\022\017\n" + + "\007version\030\007 \001(\005\0229\n\014tracing_info\030\010 \003(\0132#.T" + + "winResponseProto.TracingInfoEntry\0322\n\020Tra" + + "cingInfoEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(" + + "\t:\0028\001B5\n\037org.opennms.core.ipc.twin.model" + + "B\020TwinMessageProtoP\001b\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }, assigner); + internal_static_TwinRequestProto_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_TwinRequestProto_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TwinRequestProto_descriptor, + new java.lang.String[] { "ConsumerKey", "SystemId", "Location", "TracingInfo", }); + internal_static_TwinRequestProto_TracingInfoEntry_descriptor = + internal_static_TwinRequestProto_descriptor.getNestedTypes().get(0); + internal_static_TwinRequestProto_TracingInfoEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TwinRequestProto_TracingInfoEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_TwinResponseProto_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_TwinResponseProto_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TwinResponseProto_descriptor, + new java.lang.String[] { "ConsumerKey", "TwinObject", "SystemId", "Location", "IsPatchObject", "SessionId", "Version", "TracingInfo", }); + internal_static_TwinResponseProto_TracingInfoEntry_descriptor = + internal_static_TwinResponseProto_descriptor.getNestedTypes().get(0); + internal_static_TwinResponseProto_TracingInfoEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TwinResponseProto_TracingInfoEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinRequestProto.java b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinRequestProto.java new file mode 100644 index 000000000000..6fab747ca203 --- /dev/null +++ b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinRequestProto.java @@ -0,0 +1,1109 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: twin-message.proto + +package org.opennms.core.ipc.twin.model; + +/** + *
+ *Twin Request object used by Minion to make RPC Request.
+ * 
+ * + * Protobuf type {@code TwinRequestProto} + */ +public final class TwinRequestProto extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:TwinRequestProto) + TwinRequestProtoOrBuilder { +private static final long serialVersionUID = 0L; + // Use TwinRequestProto.newBuilder() to construct. + private TwinRequestProto(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TwinRequestProto() { + consumerKey_ = ""; + systemId_ = ""; + location_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private TwinRequestProto( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + consumerKey_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + systemId_ = s; + break; + } + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + + location_ = s; + break; + } + case 34: { + if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + tracingInfo_ = com.google.protobuf.MapField.newMapField( + TracingInfoDefaultEntryHolder.defaultEntry); + mutable_bitField0_ |= 0x00000008; + } + com.google.protobuf.MapEntry + tracingInfo__ = input.readMessage( + TracingInfoDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + tracingInfo_.getMutableMap().put( + tracingInfo__.getKey(), tracingInfo__.getValue()); + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.opennms.core.ipc.twin.model.TwinMessageProto.internal_static_TwinRequestProto_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 4: + return internalGetTracingInfo(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.opennms.core.ipc.twin.model.TwinMessageProto.internal_static_TwinRequestProto_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.opennms.core.ipc.twin.model.TwinRequestProto.class, org.opennms.core.ipc.twin.model.TwinRequestProto.Builder.class); + } + + private int bitField0_; + public static final int CONSUMER_KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object consumerKey_; + /** + * string consumer_key = 1; + */ + public java.lang.String getConsumerKey() { + java.lang.Object ref = consumerKey_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + consumerKey_ = s; + return s; + } + } + /** + * string consumer_key = 1; + */ + public com.google.protobuf.ByteString + getConsumerKeyBytes() { + java.lang.Object ref = consumerKey_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + consumerKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SYSTEM_ID_FIELD_NUMBER = 2; + private volatile java.lang.Object systemId_; + /** + * string system_id = 2; + */ + public java.lang.String getSystemId() { + java.lang.Object ref = systemId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + systemId_ = s; + return s; + } + } + /** + * string system_id = 2; + */ + public com.google.protobuf.ByteString + getSystemIdBytes() { + java.lang.Object ref = systemId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + systemId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LOCATION_FIELD_NUMBER = 3; + private volatile java.lang.Object location_; + /** + * string location = 3; + */ + public java.lang.String getLocation() { + java.lang.Object ref = location_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + location_ = s; + return s; + } + } + /** + * string location = 3; + */ + public com.google.protobuf.ByteString + getLocationBytes() { + java.lang.Object ref = location_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + location_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TRACING_INFO_FIELD_NUMBER = 4; + private static final class TracingInfoDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, java.lang.String> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + org.opennms.core.ipc.twin.model.TwinMessageProto.internal_static_TwinRequestProto_TracingInfoEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> tracingInfo_; + private com.google.protobuf.MapField + internalGetTracingInfo() { + if (tracingInfo_ == null) { + return com.google.protobuf.MapField.emptyMapField( + TracingInfoDefaultEntryHolder.defaultEntry); + } + return tracingInfo_; + } + + public int getTracingInfoCount() { + return internalGetTracingInfo().getMap().size(); + } + /** + * map<string, string> tracing_info = 4; + */ + + public boolean containsTracingInfo( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + return internalGetTracingInfo().getMap().containsKey(key); + } + /** + * Use {@link #getTracingInfoMap()} instead. + */ + @java.lang.Deprecated + public java.util.Map getTracingInfo() { + return getTracingInfoMap(); + } + /** + * map<string, string> tracing_info = 4; + */ + + public java.util.Map getTracingInfoMap() { + return internalGetTracingInfo().getMap(); + } + /** + * map<string, string> tracing_info = 4; + */ + + public java.lang.String getTracingInfoOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetTracingInfo().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> tracing_info = 4; + */ + + public java.lang.String getTracingInfoOrThrow( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetTracingInfo().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getConsumerKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, consumerKey_); + } + if (!getSystemIdBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, systemId_); + } + if (!getLocationBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, location_); + } + com.google.protobuf.GeneratedMessageV3 + .serializeStringMapTo( + output, + internalGetTracingInfo(), + TracingInfoDefaultEntryHolder.defaultEntry, + 4); + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getConsumerKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, consumerKey_); + } + if (!getSystemIdBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, systemId_); + } + if (!getLocationBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, location_); + } + for (java.util.Map.Entry entry + : internalGetTracingInfo().getMap().entrySet()) { + com.google.protobuf.MapEntry + tracingInfo__ = TracingInfoDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, tracingInfo__); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.opennms.core.ipc.twin.model.TwinRequestProto)) { + return super.equals(obj); + } + org.opennms.core.ipc.twin.model.TwinRequestProto other = (org.opennms.core.ipc.twin.model.TwinRequestProto) obj; + + boolean result = true; + result = result && getConsumerKey() + .equals(other.getConsumerKey()); + result = result && getSystemId() + .equals(other.getSystemId()); + result = result && getLocation() + .equals(other.getLocation()); + result = result && internalGetTracingInfo().equals( + other.internalGetTracingInfo()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CONSUMER_KEY_FIELD_NUMBER; + hash = (53 * hash) + getConsumerKey().hashCode(); + hash = (37 * hash) + SYSTEM_ID_FIELD_NUMBER; + hash = (53 * hash) + getSystemId().hashCode(); + hash = (37 * hash) + LOCATION_FIELD_NUMBER; + hash = (53 * hash) + getLocation().hashCode(); + if (!internalGetTracingInfo().getMap().isEmpty()) { + hash = (37 * hash) + TRACING_INFO_FIELD_NUMBER; + hash = (53 * hash) + internalGetTracingInfo().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.opennms.core.ipc.twin.model.TwinRequestProto parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.opennms.core.ipc.twin.model.TwinRequestProto parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.opennms.core.ipc.twin.model.TwinRequestProto parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.opennms.core.ipc.twin.model.TwinRequestProto parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.opennms.core.ipc.twin.model.TwinRequestProto parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.opennms.core.ipc.twin.model.TwinRequestProto parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.opennms.core.ipc.twin.model.TwinRequestProto parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static org.opennms.core.ipc.twin.model.TwinRequestProto parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static org.opennms.core.ipc.twin.model.TwinRequestProto parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static org.opennms.core.ipc.twin.model.TwinRequestProto parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static org.opennms.core.ipc.twin.model.TwinRequestProto parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static org.opennms.core.ipc.twin.model.TwinRequestProto parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(org.opennms.core.ipc.twin.model.TwinRequestProto prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   *Twin Request object used by Minion to make RPC Request.
+   * 
+ * + * Protobuf type {@code TwinRequestProto} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:TwinRequestProto) + org.opennms.core.ipc.twin.model.TwinRequestProtoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.opennms.core.ipc.twin.model.TwinMessageProto.internal_static_TwinRequestProto_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 4: + return internalGetTracingInfo(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMutableMapField( + int number) { + switch (number) { + case 4: + return internalGetMutableTracingInfo(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.opennms.core.ipc.twin.model.TwinMessageProto.internal_static_TwinRequestProto_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.opennms.core.ipc.twin.model.TwinRequestProto.class, org.opennms.core.ipc.twin.model.TwinRequestProto.Builder.class); + } + + // Construct using org.opennms.core.ipc.twin.model.TwinRequestProto.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + consumerKey_ = ""; + + systemId_ = ""; + + location_ = ""; + + internalGetMutableTracingInfo().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.opennms.core.ipc.twin.model.TwinMessageProto.internal_static_TwinRequestProto_descriptor; + } + + @java.lang.Override + public org.opennms.core.ipc.twin.model.TwinRequestProto getDefaultInstanceForType() { + return org.opennms.core.ipc.twin.model.TwinRequestProto.getDefaultInstance(); + } + + @java.lang.Override + public org.opennms.core.ipc.twin.model.TwinRequestProto build() { + org.opennms.core.ipc.twin.model.TwinRequestProto result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public org.opennms.core.ipc.twin.model.TwinRequestProto buildPartial() { + org.opennms.core.ipc.twin.model.TwinRequestProto result = new org.opennms.core.ipc.twin.model.TwinRequestProto(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + result.consumerKey_ = consumerKey_; + result.systemId_ = systemId_; + result.location_ = location_; + result.tracingInfo_ = internalGetTracingInfo(); + result.tracingInfo_.makeImmutable(); + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.opennms.core.ipc.twin.model.TwinRequestProto) { + return mergeFrom((org.opennms.core.ipc.twin.model.TwinRequestProto)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.opennms.core.ipc.twin.model.TwinRequestProto other) { + if (other == org.opennms.core.ipc.twin.model.TwinRequestProto.getDefaultInstance()) return this; + if (!other.getConsumerKey().isEmpty()) { + consumerKey_ = other.consumerKey_; + onChanged(); + } + if (!other.getSystemId().isEmpty()) { + systemId_ = other.systemId_; + onChanged(); + } + if (!other.getLocation().isEmpty()) { + location_ = other.location_; + onChanged(); + } + internalGetMutableTracingInfo().mergeFrom( + other.internalGetTracingInfo()); + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.opennms.core.ipc.twin.model.TwinRequestProto parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.opennms.core.ipc.twin.model.TwinRequestProto) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.lang.Object consumerKey_ = ""; + /** + * string consumer_key = 1; + */ + public java.lang.String getConsumerKey() { + java.lang.Object ref = consumerKey_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + consumerKey_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string consumer_key = 1; + */ + public com.google.protobuf.ByteString + getConsumerKeyBytes() { + java.lang.Object ref = consumerKey_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + consumerKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string consumer_key = 1; + */ + public Builder setConsumerKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + consumerKey_ = value; + onChanged(); + return this; + } + /** + * string consumer_key = 1; + */ + public Builder clearConsumerKey() { + + consumerKey_ = getDefaultInstance().getConsumerKey(); + onChanged(); + return this; + } + /** + * string consumer_key = 1; + */ + public Builder setConsumerKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + consumerKey_ = value; + onChanged(); + return this; + } + + private java.lang.Object systemId_ = ""; + /** + * string system_id = 2; + */ + public java.lang.String getSystemId() { + java.lang.Object ref = systemId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + systemId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string system_id = 2; + */ + public com.google.protobuf.ByteString + getSystemIdBytes() { + java.lang.Object ref = systemId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + systemId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string system_id = 2; + */ + public Builder setSystemId( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + systemId_ = value; + onChanged(); + return this; + } + /** + * string system_id = 2; + */ + public Builder clearSystemId() { + + systemId_ = getDefaultInstance().getSystemId(); + onChanged(); + return this; + } + /** + * string system_id = 2; + */ + public Builder setSystemIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + systemId_ = value; + onChanged(); + return this; + } + + private java.lang.Object location_ = ""; + /** + * string location = 3; + */ + public java.lang.String getLocation() { + java.lang.Object ref = location_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + location_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string location = 3; + */ + public com.google.protobuf.ByteString + getLocationBytes() { + java.lang.Object ref = location_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + location_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string location = 3; + */ + public Builder setLocation( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + location_ = value; + onChanged(); + return this; + } + /** + * string location = 3; + */ + public Builder clearLocation() { + + location_ = getDefaultInstance().getLocation(); + onChanged(); + return this; + } + /** + * string location = 3; + */ + public Builder setLocationBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + location_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> tracingInfo_; + private com.google.protobuf.MapField + internalGetTracingInfo() { + if (tracingInfo_ == null) { + return com.google.protobuf.MapField.emptyMapField( + TracingInfoDefaultEntryHolder.defaultEntry); + } + return tracingInfo_; + } + private com.google.protobuf.MapField + internalGetMutableTracingInfo() { + onChanged();; + if (tracingInfo_ == null) { + tracingInfo_ = com.google.protobuf.MapField.newMapField( + TracingInfoDefaultEntryHolder.defaultEntry); + } + if (!tracingInfo_.isMutable()) { + tracingInfo_ = tracingInfo_.copy(); + } + return tracingInfo_; + } + + public int getTracingInfoCount() { + return internalGetTracingInfo().getMap().size(); + } + /** + * map<string, string> tracing_info = 4; + */ + + public boolean containsTracingInfo( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + return internalGetTracingInfo().getMap().containsKey(key); + } + /** + * Use {@link #getTracingInfoMap()} instead. + */ + @java.lang.Deprecated + public java.util.Map getTracingInfo() { + return getTracingInfoMap(); + } + /** + * map<string, string> tracing_info = 4; + */ + + public java.util.Map getTracingInfoMap() { + return internalGetTracingInfo().getMap(); + } + /** + * map<string, string> tracing_info = 4; + */ + + public java.lang.String getTracingInfoOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetTracingInfo().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> tracing_info = 4; + */ + + public java.lang.String getTracingInfoOrThrow( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetTracingInfo().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearTracingInfo() { + internalGetMutableTracingInfo().getMutableMap() + .clear(); + return this; + } + /** + * map<string, string> tracing_info = 4; + */ + + public Builder removeTracingInfo( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + internalGetMutableTracingInfo().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableTracingInfo() { + return internalGetMutableTracingInfo().getMutableMap(); + } + /** + * map<string, string> tracing_info = 4; + */ + public Builder putTracingInfo( + java.lang.String key, + java.lang.String value) { + if (key == null) { throw new java.lang.NullPointerException(); } + if (value == null) { throw new java.lang.NullPointerException(); } + internalGetMutableTracingInfo().getMutableMap() + .put(key, value); + return this; + } + /** + * map<string, string> tracing_info = 4; + */ + + public Builder putAllTracingInfo( + java.util.Map values) { + internalGetMutableTracingInfo().getMutableMap() + .putAll(values); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:TwinRequestProto) + } + + // @@protoc_insertion_point(class_scope:TwinRequestProto) + private static final org.opennms.core.ipc.twin.model.TwinRequestProto DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new org.opennms.core.ipc.twin.model.TwinRequestProto(); + } + + public static org.opennms.core.ipc.twin.model.TwinRequestProto getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TwinRequestProto parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new TwinRequestProto(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.opennms.core.ipc.twin.model.TwinRequestProto getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinRequestProtoOrBuilder.java b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinRequestProtoOrBuilder.java new file mode 100644 index 000000000000..476486b440d8 --- /dev/null +++ b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinRequestProtoOrBuilder.java @@ -0,0 +1,101 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: twin-message.proto + +package org.opennms.core.ipc.twin.model; + +public interface TwinRequestProtoOrBuilder extends + // @@protoc_insertion_point(interface_extends:TwinRequestProto) + com.google.protobuf.MessageOrBuilder { + + /** + * string consumer_key = 1; + */ + java.lang.String getConsumerKey(); + /** + * string consumer_key = 1; + */ + com.google.protobuf.ByteString + getConsumerKeyBytes(); + + /** + * string system_id = 2; + */ + java.lang.String getSystemId(); + /** + * string system_id = 2; + */ + com.google.protobuf.ByteString + getSystemIdBytes(); + + /** + * string location = 3; + */ + java.lang.String getLocation(); + /** + * string location = 3; + */ + com.google.protobuf.ByteString + getLocationBytes(); + + /** + * map<string, string> tracing_info = 4; + */ + int getTracingInfoCount(); + /** + * map<string, string> tracing_info = 4; + */ + boolean containsTracingInfo( + java.lang.String key); + /** + * Use {@link #getTracingInfoMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getTracingInfo(); + /** + * map<string, string> tracing_info = 4; + */ + java.util.Map + getTracingInfoMap(); + /** + * map<string, string> tracing_info = 4; + */ + + java.lang.String getTracingInfoOrDefault( + java.lang.String key, + java.lang.String defaultValue); + /** + * map<string, string> tracing_info = 4; + */ + + java.lang.String getTracingInfoOrThrow( + java.lang.String key); +} diff --git a/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinResponseProto.java b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinResponseProto.java new file mode 100644 index 000000000000..2eee5568db78 --- /dev/null +++ b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinResponseProto.java @@ -0,0 +1,1414 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: twin-message.proto + +package org.opennms.core.ipc.twin.model; + +/** + *
+ *Twin Response object sent by OpenNMS for RPC response as well as for Sink update.
+ * 
+ * + * Protobuf type {@code TwinResponseProto} + */ +public final class TwinResponseProto extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:TwinResponseProto) + TwinResponseProtoOrBuilder { +private static final long serialVersionUID = 0L; + // Use TwinResponseProto.newBuilder() to construct. + private TwinResponseProto(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TwinResponseProto() { + consumerKey_ = ""; + twinObject_ = com.google.protobuf.ByteString.EMPTY; + systemId_ = ""; + location_ = ""; + isPatchObject_ = false; + sessionId_ = ""; + version_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private TwinResponseProto( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + consumerKey_ = s; + break; + } + case 18: { + + twinObject_ = input.readBytes(); + break; + } + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + + systemId_ = s; + break; + } + case 34: { + java.lang.String s = input.readStringRequireUtf8(); + + location_ = s; + break; + } + case 40: { + + isPatchObject_ = input.readBool(); + break; + } + case 50: { + java.lang.String s = input.readStringRequireUtf8(); + + sessionId_ = s; + break; + } + case 56: { + + version_ = input.readInt32(); + break; + } + case 66: { + if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) { + tracingInfo_ = com.google.protobuf.MapField.newMapField( + TracingInfoDefaultEntryHolder.defaultEntry); + mutable_bitField0_ |= 0x00000080; + } + com.google.protobuf.MapEntry + tracingInfo__ = input.readMessage( + TracingInfoDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + tracingInfo_.getMutableMap().put( + tracingInfo__.getKey(), tracingInfo__.getValue()); + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.opennms.core.ipc.twin.model.TwinMessageProto.internal_static_TwinResponseProto_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 8: + return internalGetTracingInfo(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.opennms.core.ipc.twin.model.TwinMessageProto.internal_static_TwinResponseProto_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.opennms.core.ipc.twin.model.TwinResponseProto.class, org.opennms.core.ipc.twin.model.TwinResponseProto.Builder.class); + } + + private int bitField0_; + public static final int CONSUMER_KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object consumerKey_; + /** + * string consumer_key = 1; + */ + public java.lang.String getConsumerKey() { + java.lang.Object ref = consumerKey_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + consumerKey_ = s; + return s; + } + } + /** + * string consumer_key = 1; + */ + public com.google.protobuf.ByteString + getConsumerKeyBytes() { + java.lang.Object ref = consumerKey_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + consumerKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TWIN_OBJECT_FIELD_NUMBER = 2; + private com.google.protobuf.ByteString twinObject_; + /** + * bytes twin_object = 2; + */ + public com.google.protobuf.ByteString getTwinObject() { + return twinObject_; + } + + public static final int SYSTEM_ID_FIELD_NUMBER = 3; + private volatile java.lang.Object systemId_; + /** + * string system_id = 3; + */ + public java.lang.String getSystemId() { + java.lang.Object ref = systemId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + systemId_ = s; + return s; + } + } + /** + * string system_id = 3; + */ + public com.google.protobuf.ByteString + getSystemIdBytes() { + java.lang.Object ref = systemId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + systemId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LOCATION_FIELD_NUMBER = 4; + private volatile java.lang.Object location_; + /** + * string location = 4; + */ + public java.lang.String getLocation() { + java.lang.Object ref = location_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + location_ = s; + return s; + } + } + /** + * string location = 4; + */ + public com.google.protobuf.ByteString + getLocationBytes() { + java.lang.Object ref = location_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + location_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int IS_PATCH_OBJECT_FIELD_NUMBER = 5; + private boolean isPatchObject_; + /** + * bool is_patch_object = 5; + */ + public boolean getIsPatchObject() { + return isPatchObject_; + } + + public static final int SESSION_ID_FIELD_NUMBER = 6; + private volatile java.lang.Object sessionId_; + /** + * string session_id = 6; + */ + public java.lang.String getSessionId() { + java.lang.Object ref = sessionId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sessionId_ = s; + return s; + } + } + /** + * string session_id = 6; + */ + public com.google.protobuf.ByteString + getSessionIdBytes() { + java.lang.Object ref = sessionId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sessionId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VERSION_FIELD_NUMBER = 7; + private int version_; + /** + * int32 version = 7; + */ + public int getVersion() { + return version_; + } + + public static final int TRACING_INFO_FIELD_NUMBER = 8; + private static final class TracingInfoDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, java.lang.String> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + org.opennms.core.ipc.twin.model.TwinMessageProto.internal_static_TwinResponseProto_TracingInfoEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> tracingInfo_; + private com.google.protobuf.MapField + internalGetTracingInfo() { + if (tracingInfo_ == null) { + return com.google.protobuf.MapField.emptyMapField( + TracingInfoDefaultEntryHolder.defaultEntry); + } + return tracingInfo_; + } + + public int getTracingInfoCount() { + return internalGetTracingInfo().getMap().size(); + } + /** + * map<string, string> tracing_info = 8; + */ + + public boolean containsTracingInfo( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + return internalGetTracingInfo().getMap().containsKey(key); + } + /** + * Use {@link #getTracingInfoMap()} instead. + */ + @java.lang.Deprecated + public java.util.Map getTracingInfo() { + return getTracingInfoMap(); + } + /** + * map<string, string> tracing_info = 8; + */ + + public java.util.Map getTracingInfoMap() { + return internalGetTracingInfo().getMap(); + } + /** + * map<string, string> tracing_info = 8; + */ + + public java.lang.String getTracingInfoOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetTracingInfo().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> tracing_info = 8; + */ + + public java.lang.String getTracingInfoOrThrow( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetTracingInfo().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getConsumerKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, consumerKey_); + } + if (!twinObject_.isEmpty()) { + output.writeBytes(2, twinObject_); + } + if (!getSystemIdBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, systemId_); + } + if (!getLocationBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, location_); + } + if (isPatchObject_ != false) { + output.writeBool(5, isPatchObject_); + } + if (!getSessionIdBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, sessionId_); + } + if (version_ != 0) { + output.writeInt32(7, version_); + } + com.google.protobuf.GeneratedMessageV3 + .serializeStringMapTo( + output, + internalGetTracingInfo(), + TracingInfoDefaultEntryHolder.defaultEntry, + 8); + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getConsumerKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, consumerKey_); + } + if (!twinObject_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(2, twinObject_); + } + if (!getSystemIdBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, systemId_); + } + if (!getLocationBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, location_); + } + if (isPatchObject_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(5, isPatchObject_); + } + if (!getSessionIdBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, sessionId_); + } + if (version_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(7, version_); + } + for (java.util.Map.Entry entry + : internalGetTracingInfo().getMap().entrySet()) { + com.google.protobuf.MapEntry + tracingInfo__ = TracingInfoDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(8, tracingInfo__); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.opennms.core.ipc.twin.model.TwinResponseProto)) { + return super.equals(obj); + } + org.opennms.core.ipc.twin.model.TwinResponseProto other = (org.opennms.core.ipc.twin.model.TwinResponseProto) obj; + + boolean result = true; + result = result && getConsumerKey() + .equals(other.getConsumerKey()); + result = result && getTwinObject() + .equals(other.getTwinObject()); + result = result && getSystemId() + .equals(other.getSystemId()); + result = result && getLocation() + .equals(other.getLocation()); + result = result && (getIsPatchObject() + == other.getIsPatchObject()); + result = result && getSessionId() + .equals(other.getSessionId()); + result = result && (getVersion() + == other.getVersion()); + result = result && internalGetTracingInfo().equals( + other.internalGetTracingInfo()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CONSUMER_KEY_FIELD_NUMBER; + hash = (53 * hash) + getConsumerKey().hashCode(); + hash = (37 * hash) + TWIN_OBJECT_FIELD_NUMBER; + hash = (53 * hash) + getTwinObject().hashCode(); + hash = (37 * hash) + SYSTEM_ID_FIELD_NUMBER; + hash = (53 * hash) + getSystemId().hashCode(); + hash = (37 * hash) + LOCATION_FIELD_NUMBER; + hash = (53 * hash) + getLocation().hashCode(); + hash = (37 * hash) + IS_PATCH_OBJECT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsPatchObject()); + hash = (37 * hash) + SESSION_ID_FIELD_NUMBER; + hash = (53 * hash) + getSessionId().hashCode(); + hash = (37 * hash) + VERSION_FIELD_NUMBER; + hash = (53 * hash) + getVersion(); + if (!internalGetTracingInfo().getMap().isEmpty()) { + hash = (37 * hash) + TRACING_INFO_FIELD_NUMBER; + hash = (53 * hash) + internalGetTracingInfo().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.opennms.core.ipc.twin.model.TwinResponseProto parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.opennms.core.ipc.twin.model.TwinResponseProto parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.opennms.core.ipc.twin.model.TwinResponseProto parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.opennms.core.ipc.twin.model.TwinResponseProto parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.opennms.core.ipc.twin.model.TwinResponseProto parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.opennms.core.ipc.twin.model.TwinResponseProto parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.opennms.core.ipc.twin.model.TwinResponseProto parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static org.opennms.core.ipc.twin.model.TwinResponseProto parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static org.opennms.core.ipc.twin.model.TwinResponseProto parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static org.opennms.core.ipc.twin.model.TwinResponseProto parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static org.opennms.core.ipc.twin.model.TwinResponseProto parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static org.opennms.core.ipc.twin.model.TwinResponseProto parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(org.opennms.core.ipc.twin.model.TwinResponseProto prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   *Twin Response object sent by OpenNMS for RPC response as well as for Sink update.
+   * 
+ * + * Protobuf type {@code TwinResponseProto} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:TwinResponseProto) + org.opennms.core.ipc.twin.model.TwinResponseProtoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.opennms.core.ipc.twin.model.TwinMessageProto.internal_static_TwinResponseProto_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 8: + return internalGetTracingInfo(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMutableMapField( + int number) { + switch (number) { + case 8: + return internalGetMutableTracingInfo(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.opennms.core.ipc.twin.model.TwinMessageProto.internal_static_TwinResponseProto_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.opennms.core.ipc.twin.model.TwinResponseProto.class, org.opennms.core.ipc.twin.model.TwinResponseProto.Builder.class); + } + + // Construct using org.opennms.core.ipc.twin.model.TwinResponseProto.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + consumerKey_ = ""; + + twinObject_ = com.google.protobuf.ByteString.EMPTY; + + systemId_ = ""; + + location_ = ""; + + isPatchObject_ = false; + + sessionId_ = ""; + + version_ = 0; + + internalGetMutableTracingInfo().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.opennms.core.ipc.twin.model.TwinMessageProto.internal_static_TwinResponseProto_descriptor; + } + + @java.lang.Override + public org.opennms.core.ipc.twin.model.TwinResponseProto getDefaultInstanceForType() { + return org.opennms.core.ipc.twin.model.TwinResponseProto.getDefaultInstance(); + } + + @java.lang.Override + public org.opennms.core.ipc.twin.model.TwinResponseProto build() { + org.opennms.core.ipc.twin.model.TwinResponseProto result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public org.opennms.core.ipc.twin.model.TwinResponseProto buildPartial() { + org.opennms.core.ipc.twin.model.TwinResponseProto result = new org.opennms.core.ipc.twin.model.TwinResponseProto(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + result.consumerKey_ = consumerKey_; + result.twinObject_ = twinObject_; + result.systemId_ = systemId_; + result.location_ = location_; + result.isPatchObject_ = isPatchObject_; + result.sessionId_ = sessionId_; + result.version_ = version_; + result.tracingInfo_ = internalGetTracingInfo(); + result.tracingInfo_.makeImmutable(); + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.opennms.core.ipc.twin.model.TwinResponseProto) { + return mergeFrom((org.opennms.core.ipc.twin.model.TwinResponseProto)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.opennms.core.ipc.twin.model.TwinResponseProto other) { + if (other == org.opennms.core.ipc.twin.model.TwinResponseProto.getDefaultInstance()) return this; + if (!other.getConsumerKey().isEmpty()) { + consumerKey_ = other.consumerKey_; + onChanged(); + } + if (other.getTwinObject() != com.google.protobuf.ByteString.EMPTY) { + setTwinObject(other.getTwinObject()); + } + if (!other.getSystemId().isEmpty()) { + systemId_ = other.systemId_; + onChanged(); + } + if (!other.getLocation().isEmpty()) { + location_ = other.location_; + onChanged(); + } + if (other.getIsPatchObject() != false) { + setIsPatchObject(other.getIsPatchObject()); + } + if (!other.getSessionId().isEmpty()) { + sessionId_ = other.sessionId_; + onChanged(); + } + if (other.getVersion() != 0) { + setVersion(other.getVersion()); + } + internalGetMutableTracingInfo().mergeFrom( + other.internalGetTracingInfo()); + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.opennms.core.ipc.twin.model.TwinResponseProto parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.opennms.core.ipc.twin.model.TwinResponseProto) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.lang.Object consumerKey_ = ""; + /** + * string consumer_key = 1; + */ + public java.lang.String getConsumerKey() { + java.lang.Object ref = consumerKey_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + consumerKey_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string consumer_key = 1; + */ + public com.google.protobuf.ByteString + getConsumerKeyBytes() { + java.lang.Object ref = consumerKey_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + consumerKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string consumer_key = 1; + */ + public Builder setConsumerKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + consumerKey_ = value; + onChanged(); + return this; + } + /** + * string consumer_key = 1; + */ + public Builder clearConsumerKey() { + + consumerKey_ = getDefaultInstance().getConsumerKey(); + onChanged(); + return this; + } + /** + * string consumer_key = 1; + */ + public Builder setConsumerKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + consumerKey_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.ByteString twinObject_ = com.google.protobuf.ByteString.EMPTY; + /** + * bytes twin_object = 2; + */ + public com.google.protobuf.ByteString getTwinObject() { + return twinObject_; + } + /** + * bytes twin_object = 2; + */ + public Builder setTwinObject(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + + twinObject_ = value; + onChanged(); + return this; + } + /** + * bytes twin_object = 2; + */ + public Builder clearTwinObject() { + + twinObject_ = getDefaultInstance().getTwinObject(); + onChanged(); + return this; + } + + private java.lang.Object systemId_ = ""; + /** + * string system_id = 3; + */ + public java.lang.String getSystemId() { + java.lang.Object ref = systemId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + systemId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string system_id = 3; + */ + public com.google.protobuf.ByteString + getSystemIdBytes() { + java.lang.Object ref = systemId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + systemId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string system_id = 3; + */ + public Builder setSystemId( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + systemId_ = value; + onChanged(); + return this; + } + /** + * string system_id = 3; + */ + public Builder clearSystemId() { + + systemId_ = getDefaultInstance().getSystemId(); + onChanged(); + return this; + } + /** + * string system_id = 3; + */ + public Builder setSystemIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + systemId_ = value; + onChanged(); + return this; + } + + private java.lang.Object location_ = ""; + /** + * string location = 4; + */ + public java.lang.String getLocation() { + java.lang.Object ref = location_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + location_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string location = 4; + */ + public com.google.protobuf.ByteString + getLocationBytes() { + java.lang.Object ref = location_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + location_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string location = 4; + */ + public Builder setLocation( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + location_ = value; + onChanged(); + return this; + } + /** + * string location = 4; + */ + public Builder clearLocation() { + + location_ = getDefaultInstance().getLocation(); + onChanged(); + return this; + } + /** + * string location = 4; + */ + public Builder setLocationBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + location_ = value; + onChanged(); + return this; + } + + private boolean isPatchObject_ ; + /** + * bool is_patch_object = 5; + */ + public boolean getIsPatchObject() { + return isPatchObject_; + } + /** + * bool is_patch_object = 5; + */ + public Builder setIsPatchObject(boolean value) { + + isPatchObject_ = value; + onChanged(); + return this; + } + /** + * bool is_patch_object = 5; + */ + public Builder clearIsPatchObject() { + + isPatchObject_ = false; + onChanged(); + return this; + } + + private java.lang.Object sessionId_ = ""; + /** + * string session_id = 6; + */ + public java.lang.String getSessionId() { + java.lang.Object ref = sessionId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sessionId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string session_id = 6; + */ + public com.google.protobuf.ByteString + getSessionIdBytes() { + java.lang.Object ref = sessionId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sessionId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string session_id = 6; + */ + public Builder setSessionId( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + sessionId_ = value; + onChanged(); + return this; + } + /** + * string session_id = 6; + */ + public Builder clearSessionId() { + + sessionId_ = getDefaultInstance().getSessionId(); + onChanged(); + return this; + } + /** + * string session_id = 6; + */ + public Builder setSessionIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + sessionId_ = value; + onChanged(); + return this; + } + + private int version_ ; + /** + * int32 version = 7; + */ + public int getVersion() { + return version_; + } + /** + * int32 version = 7; + */ + public Builder setVersion(int value) { + + version_ = value; + onChanged(); + return this; + } + /** + * int32 version = 7; + */ + public Builder clearVersion() { + + version_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> tracingInfo_; + private com.google.protobuf.MapField + internalGetTracingInfo() { + if (tracingInfo_ == null) { + return com.google.protobuf.MapField.emptyMapField( + TracingInfoDefaultEntryHolder.defaultEntry); + } + return tracingInfo_; + } + private com.google.protobuf.MapField + internalGetMutableTracingInfo() { + onChanged();; + if (tracingInfo_ == null) { + tracingInfo_ = com.google.protobuf.MapField.newMapField( + TracingInfoDefaultEntryHolder.defaultEntry); + } + if (!tracingInfo_.isMutable()) { + tracingInfo_ = tracingInfo_.copy(); + } + return tracingInfo_; + } + + public int getTracingInfoCount() { + return internalGetTracingInfo().getMap().size(); + } + /** + * map<string, string> tracing_info = 8; + */ + + public boolean containsTracingInfo( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + return internalGetTracingInfo().getMap().containsKey(key); + } + /** + * Use {@link #getTracingInfoMap()} instead. + */ + @java.lang.Deprecated + public java.util.Map getTracingInfo() { + return getTracingInfoMap(); + } + /** + * map<string, string> tracing_info = 8; + */ + + public java.util.Map getTracingInfoMap() { + return internalGetTracingInfo().getMap(); + } + /** + * map<string, string> tracing_info = 8; + */ + + public java.lang.String getTracingInfoOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetTracingInfo().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> tracing_info = 8; + */ + + public java.lang.String getTracingInfoOrThrow( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetTracingInfo().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearTracingInfo() { + internalGetMutableTracingInfo().getMutableMap() + .clear(); + return this; + } + /** + * map<string, string> tracing_info = 8; + */ + + public Builder removeTracingInfo( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + internalGetMutableTracingInfo().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableTracingInfo() { + return internalGetMutableTracingInfo().getMutableMap(); + } + /** + * map<string, string> tracing_info = 8; + */ + public Builder putTracingInfo( + java.lang.String key, + java.lang.String value) { + if (key == null) { throw new java.lang.NullPointerException(); } + if (value == null) { throw new java.lang.NullPointerException(); } + internalGetMutableTracingInfo().getMutableMap() + .put(key, value); + return this; + } + /** + * map<string, string> tracing_info = 8; + */ + + public Builder putAllTracingInfo( + java.util.Map values) { + internalGetMutableTracingInfo().getMutableMap() + .putAll(values); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:TwinResponseProto) + } + + // @@protoc_insertion_point(class_scope:TwinResponseProto) + private static final org.opennms.core.ipc.twin.model.TwinResponseProto DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new org.opennms.core.ipc.twin.model.TwinResponseProto(); + } + + public static org.opennms.core.ipc.twin.model.TwinResponseProto getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TwinResponseProto parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new TwinResponseProto(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.opennms.core.ipc.twin.model.TwinResponseProto getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinResponseProtoOrBuilder.java b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinResponseProtoOrBuilder.java new file mode 100644 index 000000000000..82f56740314e --- /dev/null +++ b/core/ipc/twin/common/src/main/java/org/opennms/core/ipc/twin/model/TwinResponseProtoOrBuilder.java @@ -0,0 +1,126 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: twin-message.proto + +package org.opennms.core.ipc.twin.model; + +public interface TwinResponseProtoOrBuilder extends + // @@protoc_insertion_point(interface_extends:TwinResponseProto) + com.google.protobuf.MessageOrBuilder { + + /** + * string consumer_key = 1; + */ + java.lang.String getConsumerKey(); + /** + * string consumer_key = 1; + */ + com.google.protobuf.ByteString + getConsumerKeyBytes(); + + /** + * bytes twin_object = 2; + */ + com.google.protobuf.ByteString getTwinObject(); + + /** + * string system_id = 3; + */ + java.lang.String getSystemId(); + /** + * string system_id = 3; + */ + com.google.protobuf.ByteString + getSystemIdBytes(); + + /** + * string location = 4; + */ + java.lang.String getLocation(); + /** + * string location = 4; + */ + com.google.protobuf.ByteString + getLocationBytes(); + + /** + * bool is_patch_object = 5; + */ + boolean getIsPatchObject(); + + /** + * string session_id = 6; + */ + java.lang.String getSessionId(); + /** + * string session_id = 6; + */ + com.google.protobuf.ByteString + getSessionIdBytes(); + + /** + * int32 version = 7; + */ + int getVersion(); + + /** + * map<string, string> tracing_info = 8; + */ + int getTracingInfoCount(); + /** + * map<string, string> tracing_info = 8; + */ + boolean containsTracingInfo( + java.lang.String key); + /** + * Use {@link #getTracingInfoMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getTracingInfo(); + /** + * map<string, string> tracing_info = 8; + */ + java.util.Map + getTracingInfoMap(); + /** + * map<string, string> tracing_info = 8; + */ + + java.lang.String getTracingInfoOrDefault( + java.lang.String key, + java.lang.String defaultValue); + /** + * map<string, string> tracing_info = 8; + */ + + java.lang.String getTracingInfoOrThrow( + java.lang.String key); +} diff --git a/core/ipc/twin/common/src/main/proto/twin-message.proto b/core/ipc/twin/common/src/main/proto/twin-message.proto new file mode 100644 index 000000000000..05a351f20480 --- /dev/null +++ b/core/ipc/twin/common/src/main/proto/twin-message.proto @@ -0,0 +1,28 @@ +syntax = "proto3"; + +option java_multiple_files = true; +option java_package = "org.opennms.core.ipc.twin.model"; +option java_outer_classname = "TwinMessageProto"; +/* + Twin Request object used by Minion to make RPC Request. + */ +message TwinRequestProto { + string consumer_key = 1; + string system_id = 2; + string location = 3; + map tracing_info = 4; +} + +/* + Twin Response object sent by OpenNMS for RPC response as well as for Sink update. + */ +message TwinResponseProto { + string consumer_key = 1; + bytes twin_object = 2; + string system_id = 3; + string location = 4; + bool is_patch_object = 5; + string session_id = 6; + int32 version = 7; + map tracing_info = 8; +} diff --git a/core/ipc/twin/common/src/test/java/org/opennms/core/ipc/twin/common/MinionInfoBean.java b/core/ipc/twin/common/src/test/java/org/opennms/core/ipc/twin/common/MinionInfoBean.java new file mode 100644 index 000000000000..8543311b1435 --- /dev/null +++ b/core/ipc/twin/common/src/test/java/org/opennms/core/ipc/twin/common/MinionInfoBean.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.common; + +public class MinionInfoBean { + + private Integer nodeId; + + private String nodeLabel; + + public MinionInfoBean(Integer nodeId, String nodeLabel) { + this.nodeId = nodeId; + this.nodeLabel = nodeLabel; + } + + public MinionInfoBean() { + } + + public Integer getNodeId() { + return nodeId; + } + + public void setNodeId(Integer nodeId) { + this.nodeId = nodeId; + } + + public String getNodeLabel() { + return nodeLabel; + } + + public void setNodeLabel(String nodeLabel) { + this.nodeLabel = nodeLabel; + } +} diff --git a/core/ipc/twin/common/src/test/java/org/opennms/core/ipc/twin/common/MockTwinPublisher.java b/core/ipc/twin/common/src/test/java/org/opennms/core/ipc/twin/common/MockTwinPublisher.java new file mode 100644 index 000000000000..e952064f3362 --- /dev/null +++ b/core/ipc/twin/common/src/test/java/org/opennms/core/ipc/twin/common/MockTwinPublisher.java @@ -0,0 +1,127 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.common; + +import java.io.IOException; +import java.time.Duration; +import java.util.Arrays; +import java.util.Hashtable; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.apache.kafka.clients.consumer.ConsumerConfig; +import org.apache.kafka.clients.consumer.ConsumerRecord; +import org.apache.kafka.clients.consumer.ConsumerRecords; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerRecord; + +import com.fasterxml.jackson.core.JsonProcessingException; + +public class MockTwinPublisher extends AbstractTwinPublisher { + + private final Hashtable kafkaConfig = new Hashtable<>(); + private KafkaProducer rpcResponseProducer; + private KafkaConsumerRunner kafkaConsumerRunner; + private final Executor executor = Executors.newCachedThreadPool(); + + public MockTwinPublisher(Hashtable config) { + super(new LocalTwinSubscriberImpl()); + kafkaConfig.putAll(config); + kafkaConfig.put(ConsumerConfig.GROUP_ID_CONFIG, "OpenNMS"); + } + + public void init() { + rpcResponseProducer = new KafkaProducer(kafkaConfig); + KafkaConsumer kafkaConsumer = new KafkaConsumer<>(kafkaConfig); + kafkaConsumerRunner = new KafkaConsumerRunner(kafkaConsumer); + Executors.newSingleThreadExecutor().execute(kafkaConsumerRunner); + } + + @Override + protected void handleSinkUpdate(TwinUpdate sinkUpdate) { + KafkaProducer producer = new KafkaProducer<>(kafkaConfig); + try { + byte[] value = objectMapper.writeValueAsBytes(sinkUpdate); + ProducerRecord producerRecord = new ProducerRecord<>(TwinApiIT.sinkTopic, sinkUpdate.getKey(), value); + producer.send(producerRecord); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + } + + private class KafkaConsumerRunner implements Runnable { + + private final KafkaConsumer kafkaConsumer; + private final AtomicBoolean closed = new AtomicBoolean(false); + + public KafkaConsumerRunner(KafkaConsumer kafkaConsumer) { + this.kafkaConsumer = kafkaConsumer; + } + + @Override + public void run() { + try { + kafkaConsumer.subscribe(Arrays.asList(TwinApiIT.rpcRequestTopic)); + while (!closed.get()) { + ConsumerRecords records = kafkaConsumer.poll(Duration.ofMillis(Long.MAX_VALUE)); + for (ConsumerRecord record : records) { + + CompletableFuture.runAsync(() -> { + try { + TwinRequest twinRequest = objectMapper.readValue(record.value(), TwinRequest.class); + TwinUpdate twinResponse = getTwin(twinRequest); + byte[] response = objectMapper.writeValueAsBytes(twinResponse); + ProducerRecord producerRecord = + new ProducerRecord<>(TwinApiIT.rpcResponseTopic, twinResponse.getKey(), response); + rpcResponseProducer.send(producerRecord); + } catch (IOException e) { + // Ignore + } + }, executor); + } + } + } catch (Exception e) { + //Ignore + } + } + + public void close() { + closed.set(true); + } + } + + public void close() { + if (kafkaConsumerRunner != null) { + kafkaConsumerRunner.close(); + } + } +} diff --git a/core/ipc/twin/common/src/test/java/org/opennms/core/ipc/twin/common/MockTwinSubscriber.java b/core/ipc/twin/common/src/test/java/org/opennms/core/ipc/twin/common/MockTwinSubscriber.java new file mode 100644 index 000000000000..b629e030125f --- /dev/null +++ b/core/ipc/twin/common/src/test/java/org/opennms/core/ipc/twin/common/MockTwinSubscriber.java @@ -0,0 +1,173 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.common; + +import static org.opennms.core.ipc.twin.common.TwinApiIT.rpcResponseTopic; +import static org.opennms.core.ipc.twin.common.TwinApiIT.sinkTopic; + +import java.io.IOException; +import java.time.Duration; +import java.util.Arrays; +import java.util.Hashtable; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.apache.kafka.clients.consumer.ConsumerConfig; +import org.apache.kafka.clients.consumer.ConsumerRecord; +import org.apache.kafka.clients.consumer.ConsumerRecords; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.opennms.distributed.core.api.MinionIdentity; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class MockTwinSubscriber extends AbstractTwinSubscriber { + + private Hashtable kafkaConfig = new Hashtable<>(); + private KafkaProducer producer; + private KafkaSinkConsumerRunner kafkaSinkConsumerRunner; + private KafkaConsumerRunner kafkaConsumerRunner; + private final ObjectMapper objectMapper = new ObjectMapper(); + private final Executor executor = Executors.newCachedThreadPool(); + + public void init() { + // Listens to response from OpenNMS. + KafkaConsumer kafkaConsumer = new KafkaConsumer<>(kafkaConfig); + kafkaConsumerRunner = new KafkaConsumerRunner(kafkaConsumer); + Executors.newSingleThreadExecutor().execute(kafkaConsumerRunner); + KafkaConsumer kafkaConsumer2 = new KafkaConsumer<>(kafkaConfig); + kafkaSinkConsumerRunner = new KafkaSinkConsumerRunner(kafkaConsumer2); + Executors.newSingleThreadExecutor().execute(kafkaSinkConsumerRunner); + } + + protected MockTwinSubscriber(Hashtable kafkaConfig, MinionIdentity minionIdentity) { + super(minionIdentity); + this.kafkaConfig.putAll(kafkaConfig); + this.kafkaConfig.put(ConsumerConfig.GROUP_ID_CONFIG, "MINION"); + producer = new KafkaProducer<>(kafkaConfig); + } + + @Override + protected void sendRpcRequest(TwinRequest twinRequest) { + try { + byte[] value = objectMapper.writeValueAsBytes(twinRequest); + ProducerRecord producerRecord = new ProducerRecord<>(TwinApiIT.rpcRequestTopic, twinRequest.getKey(), value); + producer.send(producerRecord); + } catch (JsonProcessingException e) { + //Ignore + } + } + + private class KafkaConsumerRunner implements Runnable { + + private final KafkaConsumer kafkaConsumer; + private final AtomicBoolean closed = new AtomicBoolean(false); + + public KafkaConsumerRunner(KafkaConsumer kafkaConsumer) { + this.kafkaConsumer = kafkaConsumer; + } + + @Override + public void run() { + try { + kafkaConsumer.subscribe(Arrays.asList(rpcResponseTopic)); + while (!closed.get()) { + ConsumerRecords records = kafkaConsumer.poll(Duration.ofMillis(Long.MAX_VALUE)); + for (ConsumerRecord record : records) { + + try { + TwinUpdate twinResponse = objectMapper.readValue(record.value(), TwinUpdate.class); + accept(twinResponse); + } catch (IOException e) { + // Ignore + } + } + } + } catch (Exception e) { + //Ignore + } + } + + public void close() { + closed.set(true); + } + } + + private class KafkaSinkConsumerRunner implements Runnable { + + private final KafkaConsumer kafkaConsumer; + private final AtomicBoolean closed = new AtomicBoolean(false); + + public KafkaSinkConsumerRunner(KafkaConsumer kafkaConsumer) { + this.kafkaConsumer = kafkaConsumer; + } + + @Override + public void run() { + try { + + kafkaConsumer.subscribe(Arrays.asList(sinkTopic)); + while (!closed.get()) { + ConsumerRecords records = kafkaConsumer.poll(Duration.ofMillis(Long.MAX_VALUE)); + for (ConsumerRecord record : records) { + CompletableFuture.runAsync(() -> { + try { + TwinUpdate twinResponse = objectMapper.readValue(record.value(), TwinUpdate.class); + accept(twinResponse); + } catch (IOException e) { + // Ignore + } + }, executor); + } + } + } catch (Exception e) { + //Ignore + } + } + + public void close() { + closed.set(true); + } + } + + public void close() { + if (kafkaConsumerRunner != null) { + kafkaConsumerRunner.close(); + } + if (kafkaSinkConsumerRunner != null) { + kafkaSinkConsumerRunner.close(); + } + } + + +} diff --git a/core/ipc/twin/common/src/test/java/org/opennms/core/ipc/twin/common/TwinApiIT.java b/core/ipc/twin/common/src/test/java/org/opennms/core/ipc/twin/common/TwinApiIT.java new file mode 100644 index 000000000000..3a4dd66e6a78 --- /dev/null +++ b/core/ipc/twin/common/src/test/java/org/opennms/core/ipc/twin/common/TwinApiIT.java @@ -0,0 +1,143 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.common; + +import static com.jayway.awaitility.Awaitility.await; + +import java.io.Closeable; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; + +import org.apache.kafka.clients.consumer.ConsumerConfig; +import org.apache.kafka.clients.producer.ProducerConfig; +import org.apache.kafka.common.serialization.ByteArrayDeserializer; +import org.apache.kafka.common.serialization.ByteArraySerializer; +import org.apache.kafka.common.serialization.StringDeserializer; +import org.apache.kafka.common.serialization.StringSerializer; +import org.hamcrest.Matchers; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.opennms.core.ipc.twin.api.TwinPublisher; +import org.opennms.core.test.kafka.JUnitKafkaServer; +import org.opennms.distributed.core.api.MinionIdentity; +import org.opennms.distributed.core.api.SystemType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class TwinApiIT { + + private static final Logger LOG = LoggerFactory.getLogger(TwinApiIT.class); + static String rpcRequestTopic = "OpenNMS-MINION-RPC-Request-onms-twin"; + static String rpcResponseTopic = "OpenNMS-MINION-RPC-Response-onms-twin"; + static String sinkTopic = "OpenNMS-MINION-Sink-onms-twin"; + + @Rule + public JUnitKafkaServer kafkaServer = new JUnitKafkaServer(); + + private MockTwinPublisher mockTwinPublisher; + + private MockTwinSubscriber mockTwinSubscriber; + + private final List minionInfoBeans = new ArrayList<>(); + + + @Before + public void setup() { + Hashtable kafkaConfig = new Hashtable<>(); + kafkaConfig.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaServer.getKafkaConnectString()); + kafkaConfig.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); + kafkaConfig.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "1000"); + kafkaConfig.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getCanonicalName()); + kafkaConfig.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, ByteArrayDeserializer.class.getCanonicalName()); + kafkaConfig.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getCanonicalName()); + kafkaConfig.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, ByteArraySerializer.class.getCanonicalName()); + mockTwinPublisher = new MockTwinPublisher(kafkaConfig); + mockTwinSubscriber = new MockTwinSubscriber(kafkaConfig, new MockMinionIdentityImpl()); + mockTwinPublisher.init(); + mockTwinSubscriber.init(); + } + + @Test + public void testTwinApiWithMocks() throws IOException { + MinionInfoBean minionInfoBean = new MinionInfoBean(3, "minion1"); + String key = "minion-bean-module"; + TwinPublisher.Session session = mockTwinPublisher.register(key, MinionInfoBean.class); + session.publish(minionInfoBean); + Closeable closeable = mockTwinSubscriber.subscribe(key, MinionInfoBean.class, new ConsumerImpl()); + await().atMost(20, TimeUnit.SECONDS).pollInterval(5, TimeUnit.SECONDS).until(minionInfoBeans::size, Matchers.greaterThan(0)); + minionInfoBeans.clear(); + session.publish(new MinionInfoBean(4, "minion2")); + await().atMost(20, TimeUnit.SECONDS).pollInterval(5, TimeUnit.SECONDS).until(minionInfoBeans::size, Matchers.greaterThan(0)); + MinionInfoBean response = minionInfoBeans.get(0); + Assert.assertThat(response.getNodeId(), Matchers.is(4)); + closeable.close(); + session.close(); + } + + private static class MockMinionIdentityImpl implements MinionIdentity { + + @Override + public String getId() { + return "mock-id"; + } + + @Override + public String getLocation() { + return "mock-location"; + } + + @Override + public String getType() { + return SystemType.Minion.name(); + } + } + + @After + public void destroy() { + mockTwinSubscriber.close(); + mockTwinPublisher.close(); + } + + private class ConsumerImpl implements Consumer { + + @Override + public void accept(MinionInfoBean minionInfoBean) { + minionInfoBeans.add(minionInfoBean); + LOG.info("received minion bean {}", minionInfoBean); + } + } + +} diff --git a/core/ipc/twin/common/src/test/resources/log4j2-test.xml b/core/ipc/twin/common/src/test/resources/log4j2-test.xml new file mode 100644 index 000000000000..c837d61e2cd2 --- /dev/null +++ b/core/ipc/twin/common/src/test/resources/log4j2-test.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/ipc/twin/grpc/common/pom.xml b/core/ipc/twin/grpc/common/pom.xml new file mode 100644 index 000000000000..fd4613bbe94b --- /dev/null +++ b/core/ipc/twin/grpc/common/pom.xml @@ -0,0 +1,89 @@ + + + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin.grpc.common + OpenNMS :: Core :: IPC :: Twin :: GRPC :: Common + bundle + + + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + + + + + + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.common + ${project.version} + + + org.osgi + osgi.cmpn + provided + + + io.grpc + grpc-protobuf + ${grpcVersion} + + + io.grpc + grpc-stub + ${grpcVersion} + + + com.google.protobuf + protobuf-java + ${protobufVersion} + + + javax.annotation + jsr250-api + + + \ No newline at end of file diff --git a/core/ipc/twin/grpc/common/src/main/java/org/opennms/core/ipc/twin/grpc/common/MinionHeader.java b/core/ipc/twin/grpc/common/src/main/java/org/opennms/core/ipc/twin/grpc/common/MinionHeader.java new file mode 100644 index 000000000000..49cd787d8a38 --- /dev/null +++ b/core/ipc/twin/grpc/common/src/main/java/org/opennms/core/ipc/twin/grpc/common/MinionHeader.java @@ -0,0 +1,696 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: twin-grpc.proto + +package org.opennms.core.ipc.twin.grpc.common; + +/** + * Protobuf type {@code MinionHeader} + */ +public final class MinionHeader extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:MinionHeader) + MinionHeaderOrBuilder { +private static final long serialVersionUID = 0L; + // Use MinionHeader.newBuilder() to construct. + private MinionHeader(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MinionHeader() { + systemId_ = ""; + location_ = ""; + } + + @Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MinionHeader( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + String s = input.readStringRequireUtf8(); + + systemId_ = s; + break; + } + case 18: { + String s = input.readStringRequireUtf8(); + + location_ = s; + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return TwinGrpcIpc.internal_static_MinionHeader_descriptor; + } + + @Override + protected FieldAccessorTable + internalGetFieldAccessorTable() { + return TwinGrpcIpc.internal_static_MinionHeader_fieldAccessorTable + .ensureFieldAccessorsInitialized( + MinionHeader.class, Builder.class); + } + + public static final int SYSTEM_ID_FIELD_NUMBER = 1; + private volatile Object systemId_; + /** + * string system_id = 1; + */ + public String getSystemId() { + Object ref = systemId_; + if (ref instanceof String) { + return (String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + systemId_ = s; + return s; + } + } + /** + * string system_id = 1; + */ + public com.google.protobuf.ByteString + getSystemIdBytes() { + Object ref = systemId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (String) ref); + systemId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LOCATION_FIELD_NUMBER = 2; + private volatile Object location_; + /** + * string location = 2; + */ + public String getLocation() { + Object ref = location_; + if (ref instanceof String) { + return (String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + location_ = s; + return s; + } + } + /** + * string location = 2; + */ + public com.google.protobuf.ByteString + getLocationBytes() { + Object ref = location_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (String) ref); + location_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getSystemIdBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, systemId_); + } + if (!getLocationBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, location_); + } + unknownFields.writeTo(output); + } + + @Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getSystemIdBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, systemId_); + } + if (!getLocationBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, location_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @Override + public boolean equals(final Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof MinionHeader)) { + return super.equals(obj); + } + MinionHeader other = (MinionHeader) obj; + + boolean result = true; + result = result && getSystemId() + .equals(other.getSystemId()); + result = result && getLocation() + .equals(other.getLocation()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SYSTEM_ID_FIELD_NUMBER; + hash = (53 * hash) + getSystemId().hashCode(); + hash = (37 * hash) + LOCATION_FIELD_NUMBER; + hash = (53 * hash) + getLocation().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static MinionHeader parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static MinionHeader parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static MinionHeader parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static MinionHeader parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static MinionHeader parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static MinionHeader parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static MinionHeader parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static MinionHeader parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static MinionHeader parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static MinionHeader parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static MinionHeader parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static MinionHeader parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(MinionHeader prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @Override + protected Builder newBuilderForType( + BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code MinionHeader} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:MinionHeader) + MinionHeaderOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return TwinGrpcIpc.internal_static_MinionHeader_descriptor; + } + + @Override + protected FieldAccessorTable + internalGetFieldAccessorTable() { + return TwinGrpcIpc.internal_static_MinionHeader_fieldAccessorTable + .ensureFieldAccessorsInitialized( + MinionHeader.class, Builder.class); + } + + // Construct using org.opennms.core.ipc.twin.grpc.common.MinionHeader.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @Override + public Builder clear() { + super.clear(); + systemId_ = ""; + + location_ = ""; + + return this; + } + + @Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return TwinGrpcIpc.internal_static_MinionHeader_descriptor; + } + + @Override + public MinionHeader getDefaultInstanceForType() { + return MinionHeader.getDefaultInstance(); + } + + @Override + public MinionHeader build() { + MinionHeader result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @Override + public MinionHeader buildPartial() { + MinionHeader result = new MinionHeader(this); + result.systemId_ = systemId_; + result.location_ = location_; + onBuilt(); + return result; + } + + @Override + public Builder clone() { + return (Builder) super.clone(); + } + @Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return (Builder) super.setField(field, value); + } + @Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof MinionHeader) { + return mergeFrom((MinionHeader)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(MinionHeader other) { + if (other == MinionHeader.getDefaultInstance()) return this; + if (!other.getSystemId().isEmpty()) { + systemId_ = other.systemId_; + onChanged(); + } + if (!other.getLocation().isEmpty()) { + location_ = other.location_; + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @Override + public final boolean isInitialized() { + return true; + } + + @Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + MinionHeader parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (MinionHeader) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private Object systemId_ = ""; + /** + * string system_id = 1; + */ + public String getSystemId() { + Object ref = systemId_; + if (!(ref instanceof String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + systemId_ = s; + return s; + } else { + return (String) ref; + } + } + /** + * string system_id = 1; + */ + public com.google.protobuf.ByteString + getSystemIdBytes() { + Object ref = systemId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (String) ref); + systemId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string system_id = 1; + */ + public Builder setSystemId( + String value) { + if (value == null) { + throw new NullPointerException(); + } + + systemId_ = value; + onChanged(); + return this; + } + /** + * string system_id = 1; + */ + public Builder clearSystemId() { + + systemId_ = getDefaultInstance().getSystemId(); + onChanged(); + return this; + } + /** + * string system_id = 1; + */ + public Builder setSystemIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + systemId_ = value; + onChanged(); + return this; + } + + private Object location_ = ""; + /** + * string location = 2; + */ + public String getLocation() { + Object ref = location_; + if (!(ref instanceof String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + location_ = s; + return s; + } else { + return (String) ref; + } + } + /** + * string location = 2; + */ + public com.google.protobuf.ByteString + getLocationBytes() { + Object ref = location_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (String) ref); + location_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string location = 2; + */ + public Builder setLocation( + String value) { + if (value == null) { + throw new NullPointerException(); + } + + location_ = value; + onChanged(); + return this; + } + /** + * string location = 2; + */ + public Builder clearLocation() { + + location_ = getDefaultInstance().getLocation(); + onChanged(); + return this; + } + /** + * string location = 2; + */ + public Builder setLocationBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + location_ = value; + onChanged(); + return this; + } + @Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:MinionHeader) + } + + // @@protoc_insertion_point(class_scope:MinionHeader) + private static final MinionHeader DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new MinionHeader(); + } + + public static MinionHeader getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @Override + public MinionHeader parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MinionHeader(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @Override + public MinionHeader getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/core/ipc/twin/grpc/common/src/main/java/org/opennms/core/ipc/twin/grpc/common/MinionHeaderOrBuilder.java b/core/ipc/twin/grpc/common/src/main/java/org/opennms/core/ipc/twin/grpc/common/MinionHeaderOrBuilder.java new file mode 100644 index 000000000000..e72f2f6b6b50 --- /dev/null +++ b/core/ipc/twin/grpc/common/src/main/java/org/opennms/core/ipc/twin/grpc/common/MinionHeaderOrBuilder.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: twin-grpc.proto + +package org.opennms.core.ipc.twin.grpc.common; + +public interface MinionHeaderOrBuilder extends + // @@protoc_insertion_point(interface_extends:MinionHeader) + com.google.protobuf.MessageOrBuilder { + + /** + * string system_id = 1; + */ + String getSystemId(); + /** + * string system_id = 1; + */ + com.google.protobuf.ByteString + getSystemIdBytes(); + + /** + * string location = 2; + */ + String getLocation(); + /** + * string location = 2; + */ + com.google.protobuf.ByteString + getLocationBytes(); +} diff --git a/core/ipc/twin/grpc/common/src/main/java/org/opennms/core/ipc/twin/grpc/common/OpenNMSTwinIpcGrpc.java b/core/ipc/twin/grpc/common/src/main/java/org/opennms/core/ipc/twin/grpc/common/OpenNMSTwinIpcGrpc.java new file mode 100644 index 000000000000..3a54e424f142 --- /dev/null +++ b/core/ipc/twin/grpc/common/src/main/java/org/opennms/core/ipc/twin/grpc/common/OpenNMSTwinIpcGrpc.java @@ -0,0 +1,392 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + + +package org.opennms.core.ipc.twin.grpc.common; + +import static io.grpc.MethodDescriptor.generateFullMethodName; +import static io.grpc.stub.ClientCalls.asyncBidiStreamingCall; +import static io.grpc.stub.ClientCalls.asyncServerStreamingCall; +import static io.grpc.stub.ClientCalls.blockingServerStreamingCall; +import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall; +import static io.grpc.stub.ServerCalls.asyncServerStreamingCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall; + +/** + *
+ * service definitions of Twin IPC between Minion and OpenNMS
+ * 
+ */ +@javax.annotation.Generated( + value = "by gRPC proto compiler (version 1.30.0)", + comments = "Source: twin-grpc.proto") +public final class OpenNMSTwinIpcGrpc { + + private OpenNMSTwinIpcGrpc() {} + + public static final String SERVICE_NAME = "OpenNMSTwinIpc"; + + // Static method descriptors that strictly reflect the proto. + private static volatile io.grpc.MethodDescriptor getRpcStreamingMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "RpcStreaming", + requestType = org.opennms.core.ipc.twin.model.TwinRequestProto.class, + responseType = org.opennms.core.ipc.twin.model.TwinResponseProto.class, + methodType = io.grpc.MethodDescriptor.MethodType.BIDI_STREAMING) + public static io.grpc.MethodDescriptor getRpcStreamingMethod() { + io.grpc.MethodDescriptor getRpcStreamingMethod; + if ((getRpcStreamingMethod = OpenNMSTwinIpcGrpc.getRpcStreamingMethod) == null) { + synchronized (OpenNMSTwinIpcGrpc.class) { + if ((getRpcStreamingMethod = OpenNMSTwinIpcGrpc.getRpcStreamingMethod) == null) { + OpenNMSTwinIpcGrpc.getRpcStreamingMethod = getRpcStreamingMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.BIDI_STREAMING) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "RpcStreaming")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.opennms.core.ipc.twin.model.TwinRequestProto.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.opennms.core.ipc.twin.model.TwinResponseProto.getDefaultInstance())) + .setSchemaDescriptor(new OpenNMSTwinIpcMethodDescriptorSupplier("RpcStreaming")) + .build(); + } + } + } + return getRpcStreamingMethod; + } + + private static volatile io.grpc.MethodDescriptor getSinkStreamingMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "SinkStreaming", + requestType = MinionHeader.class, + responseType = org.opennms.core.ipc.twin.model.TwinResponseProto.class, + methodType = io.grpc.MethodDescriptor.MethodType.SERVER_STREAMING) + public static io.grpc.MethodDescriptor getSinkStreamingMethod() { + io.grpc.MethodDescriptor getSinkStreamingMethod; + if ((getSinkStreamingMethod = OpenNMSTwinIpcGrpc.getSinkStreamingMethod) == null) { + synchronized (OpenNMSTwinIpcGrpc.class) { + if ((getSinkStreamingMethod = OpenNMSTwinIpcGrpc.getSinkStreamingMethod) == null) { + OpenNMSTwinIpcGrpc.getSinkStreamingMethod = getSinkStreamingMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.SERVER_STREAMING) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "SinkStreaming")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + MinionHeader.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.opennms.core.ipc.twin.model.TwinResponseProto.getDefaultInstance())) + .setSchemaDescriptor(new OpenNMSTwinIpcMethodDescriptorSupplier("SinkStreaming")) + .build(); + } + } + } + return getSinkStreamingMethod; + } + + /** + * Creates a new async stub that supports all call types for the service + */ + public static OpenNMSTwinIpcStub newStub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @Override + public OpenNMSTwinIpcStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new OpenNMSTwinIpcStub(channel, callOptions); + } + }; + return OpenNMSTwinIpcStub.newStub(factory, channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static OpenNMSTwinIpcBlockingStub newBlockingStub( + io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @Override + public OpenNMSTwinIpcBlockingStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new OpenNMSTwinIpcBlockingStub(channel, callOptions); + } + }; + return OpenNMSTwinIpcBlockingStub.newStub(factory, channel); + } + + /** + * Creates a new ListenableFuture-style stub that supports unary calls on the service + */ + public static OpenNMSTwinIpcFutureStub newFutureStub( + io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @Override + public OpenNMSTwinIpcFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new OpenNMSTwinIpcFutureStub(channel, callOptions); + } + }; + return OpenNMSTwinIpcFutureStub.newStub(factory, channel); + } + + /** + *
+   * service definitions of Twin IPC between Minion and OpenNMS
+   * 
+ */ + public static abstract class OpenNMSTwinIpcImplBase implements io.grpc.BindableService { + + /** + *
+     * Streams Twin request/Response from Minion to OpenNMS
+     * 
+ */ + public io.grpc.stub.StreamObserver rpcStreaming( + io.grpc.stub.StreamObserver responseObserver) { + return asyncUnimplementedStreamingCall(getRpcStreamingMethod(), responseObserver); + } + + /** + *
+     * Stream Twin updates from OpenNMS to Minion.
+     * 
+ */ + public void sinkStreaming(MinionHeader request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnimplementedUnaryCall(getSinkStreamingMethod(), responseObserver); + } + + @Override public final io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getRpcStreamingMethod(), + asyncBidiStreamingCall( + new MethodHandlers< + org.opennms.core.ipc.twin.model.TwinRequestProto, + org.opennms.core.ipc.twin.model.TwinResponseProto>( + this, METHODID_RPC_STREAMING))) + .addMethod( + getSinkStreamingMethod(), + asyncServerStreamingCall( + new MethodHandlers< + MinionHeader, + org.opennms.core.ipc.twin.model.TwinResponseProto>( + this, METHODID_SINK_STREAMING))) + .build(); + } + } + + /** + *
+   * service definitions of Twin IPC between Minion and OpenNMS
+   * 
+ */ + public static final class OpenNMSTwinIpcStub extends io.grpc.stub.AbstractAsyncStub { + private OpenNMSTwinIpcStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @Override + protected OpenNMSTwinIpcStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new OpenNMSTwinIpcStub(channel, callOptions); + } + + /** + *
+     * Streams Twin request/Response from Minion to OpenNMS
+     * 
+ */ + public io.grpc.stub.StreamObserver rpcStreaming( + io.grpc.stub.StreamObserver responseObserver) { + return asyncBidiStreamingCall( + getChannel().newCall(getRpcStreamingMethod(), getCallOptions()), responseObserver); + } + + /** + *
+     * Stream Twin updates from OpenNMS to Minion.
+     * 
+ */ + public void sinkStreaming(MinionHeader request, + io.grpc.stub.StreamObserver responseObserver) { + asyncServerStreamingCall( + getChannel().newCall(getSinkStreamingMethod(), getCallOptions()), request, responseObserver); + } + } + + /** + *
+   * service definitions of Twin IPC between Minion and OpenNMS
+   * 
+ */ + public static final class OpenNMSTwinIpcBlockingStub extends io.grpc.stub.AbstractBlockingStub { + private OpenNMSTwinIpcBlockingStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @Override + protected OpenNMSTwinIpcBlockingStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new OpenNMSTwinIpcBlockingStub(channel, callOptions); + } + + /** + *
+     * Stream Twin updates from OpenNMS to Minion.
+     * 
+ */ + public java.util.Iterator sinkStreaming( + MinionHeader request) { + return blockingServerStreamingCall( + getChannel(), getSinkStreamingMethod(), getCallOptions(), request); + } + } + + /** + *
+   * service definitions of Twin IPC between Minion and OpenNMS
+   * 
+ */ + public static final class OpenNMSTwinIpcFutureStub extends io.grpc.stub.AbstractFutureStub { + private OpenNMSTwinIpcFutureStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @Override + protected OpenNMSTwinIpcFutureStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new OpenNMSTwinIpcFutureStub(channel, callOptions); + } + } + + private static final int METHODID_SINK_STREAMING = 0; + private static final int METHODID_RPC_STREAMING = 1; + + private static final class MethodHandlers implements + io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + private final OpenNMSTwinIpcImplBase serviceImpl; + private final int methodId; + + MethodHandlers(OpenNMSTwinIpcImplBase serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @Override + @SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_SINK_STREAMING: + serviceImpl.sinkStreaming((MinionHeader) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @Override + @SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke( + io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_RPC_STREAMING: + return (io.grpc.stub.StreamObserver) serviceImpl.rpcStreaming( + (io.grpc.stub.StreamObserver) responseObserver); + default: + throw new AssertionError(); + } + } + } + + private static abstract class OpenNMSTwinIpcBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { + OpenNMSTwinIpcBaseDescriptorSupplier() {} + + @Override + public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { + return TwinGrpcIpc.getDescriptor(); + } + + @Override + public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() { + return getFileDescriptor().findServiceByName("OpenNMSTwinIpc"); + } + } + + private static final class OpenNMSTwinIpcFileDescriptorSupplier + extends OpenNMSTwinIpcBaseDescriptorSupplier { + OpenNMSTwinIpcFileDescriptorSupplier() {} + } + + private static final class OpenNMSTwinIpcMethodDescriptorSupplier + extends OpenNMSTwinIpcBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoMethodDescriptorSupplier { + private final String methodName; + + OpenNMSTwinIpcMethodDescriptorSupplier(String methodName) { + this.methodName = methodName; + } + + @Override + public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() { + return getServiceDescriptor().findMethodByName(methodName); + } + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (OpenNMSTwinIpcGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .setSchemaDescriptor(new OpenNMSTwinIpcFileDescriptorSupplier()) + .addMethod(getRpcStreamingMethod()) + .addMethod(getSinkStreamingMethod()) + .build(); + } + } + } + return result; + } +} diff --git a/core/ipc/twin/grpc/common/src/main/java/org/opennms/core/ipc/twin/grpc/common/TwinGrpcIpc.java b/core/ipc/twin/grpc/common/src/main/java/org/opennms/core/ipc/twin/grpc/common/TwinGrpcIpc.java new file mode 100644 index 000000000000..7b1c6b3fc586 --- /dev/null +++ b/core/ipc/twin/grpc/common/src/main/java/org/opennms/core/ipc/twin/grpc/common/TwinGrpcIpc.java @@ -0,0 +1,91 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: twin-grpc.proto + +package org.opennms.core.ipc.twin.grpc.common; + +public final class TwinGrpcIpc { + private TwinGrpcIpc() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_MinionHeader_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_MinionHeader_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + String[] descriptorData = { + "\n\017twin-grpc.proto\032\030proto/twin-message.pr" + + "oto\"3\n\014MinionHeader\022\021\n\tsystem_id\030\001 \001(\t\022\020" + + "\n\010location\030\002 \001(\t2\205\001\n\016OpenNMSTwinIpc\022;\n\014R" + + "pcStreaming\022\021.TwinRequestProto\032\022.TwinRes" + + "ponseProto\"\000(\0010\001\0226\n\rSinkStreaming\022\r.Mini" + + "onHeader\032\022.TwinResponseProto\"\0000\001B6\n%org." + + "opennms.core.ipc.twin.grpc.commonB\013TwinG" + + "rpcIpcP\001b\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + org.opennms.core.ipc.twin.model.TwinMessageProto.getDescriptor(), + }, assigner); + internal_static_MinionHeader_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_MinionHeader_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_MinionHeader_descriptor, + new String[] { "SystemId", "Location", }); + org.opennms.core.ipc.twin.model.TwinMessageProto.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/core/ipc/twin/grpc/common/src/main/proto/twin-grpc.proto b/core/ipc/twin/grpc/common/src/main/proto/twin-grpc.proto new file mode 100644 index 000000000000..2783a62ee315 --- /dev/null +++ b/core/ipc/twin/grpc/common/src/main/proto/twin-grpc.proto @@ -0,0 +1,45 @@ +syntax = "proto3"; + +import "proto/twin-message.proto"; +option java_multiple_files = true; +option java_package = "org.opennms.core.ipc.twin.grpc.common"; +option java_outer_classname = "TwinGrpcIpc"; + +// service definitions of Twin IPC between Minion and OpenNMS +service OpenNMSTwinIpc { + // Streams Twin request/Response from Minion to OpenNMS + rpc RpcStreaming (stream TwinRequestProto) returns (stream TwinResponseProto) { + } + // Stream Twin updates from OpenNMS to Minion. + rpc SinkStreaming (MinionHeader) returns (stream TwinResponseProto) { + } +} +/* + Twin Request object used by Minion to make RPC Request. + */ +/* +message TwinRequestProto { + string consumer_key = 1; + string system_id = 2; + string location = 3; + map tracing_info = 4; +} + +*/ +/* + Twin Response object sent by OpenNMS for RPC response as well as for Sink update. + *//* + +message TwinResponseProto { + string consumer_key = 1; + bytes twin_object = 2; + string system_id = 3; + string location = 4; + map tracing_info = 5; +} +*/ + +message MinionHeader { + string system_id = 1; + string location = 2; +} \ No newline at end of file diff --git a/core/ipc/twin/grpc/itests/pom.xml b/core/ipc/twin/grpc/itests/pom.xml new file mode 100644 index 000000000000..c6e4981146ce --- /dev/null +++ b/core/ipc/twin/grpc/itests/pom.xml @@ -0,0 +1,83 @@ + + + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin.grpc.itests + OpenNMS :: Core :: IPC :: Twin :: GRPC :: Integration Tests + + + org.osgi + osgi.cmpn + provided + + + org.osgi + osgi.core + provided + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.test + ${project.version} + test + + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin.grpc.common + ${project.version} + test + + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin.grpc.publisher + ${project.version} + test + + + com.google.guava + guava + ${guavagRPCVersion} + + + com.google.protobuf + protobuf-java + ${protobufVersion} + + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin.grpc.subscriber + ${project.version} + test + + + junit + junit + test + + + com.jayway.awaitility + awaitility + test + + + org.mockito + mockito-core + test + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.test + ${project.version} + test + + + + diff --git a/core/ipc/twin/grpc/itests/src/test/java/org/opennms/core/ipc/twin/grpc/GrpcSSLTwinIT.java b/core/ipc/twin/grpc/itests/src/test/java/org/opennms/core/ipc/twin/grpc/GrpcSSLTwinIT.java new file mode 100644 index 000000000000..e5bb657c695f --- /dev/null +++ b/core/ipc/twin/grpc/itests/src/test/java/org/opennms/core/ipc/twin/grpc/GrpcSSLTwinIT.java @@ -0,0 +1,84 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.grpc; + +import org.junit.After; +import org.junit.Before; +import org.opennms.core.grpc.common.GrpcIpcServer; +import org.opennms.core.grpc.common.GrpcIpcServerBuilder; +import org.opennms.core.grpc.common.GrpcIpcUtils; +import org.opennms.core.ipc.twin.api.TwinPublisher; +import org.opennms.core.ipc.twin.api.TwinSubscriber; +import org.opennms.core.ipc.twin.common.LocalTwinSubscriberImpl; +import org.opennms.core.ipc.twin.grpc.publisher.GrpcTwinPublisher; +import org.opennms.core.ipc.twin.grpc.subscriber.GrpcTwinSubscriber; +import org.opennms.core.ipc.twin.test.MockMinionIdentity; +import org.opennms.distributed.core.api.MinionIdentity; +import org.osgi.service.cm.ConfigurationAdmin; + +import java.io.IOException; +import java.util.Hashtable; +import java.util.concurrent.atomic.AtomicInteger; + +import static org.mockito.Mockito.*; +import static org.mockito.Mockito.when; + +public class GrpcSSLTwinIT extends GrpcTwinIT { + + @Before + public void setup() throws Exception { + String serverCertFilePath = this.getClass().getResource("/tls/server.crt").getPath(); + String serverKeyFilePath = this.getClass().getResource("/tls/server.pem").getPath(); + String trustCertFilePath = this.getClass().getResource("/tls/ca.crt").getPath(); + String clientCertFilePath = this.getClass().getResource("/tls/client.crt").getPath(); + String clientPrivateKeyFilePath = this.getClass().getResource("/tls/client.pem").getPath(); + + Hashtable serverConfig = new Hashtable<>(); + port = getAvailablePort(new AtomicInteger(GrpcIpcUtils.DEFAULT_TWIN_GRPC_PORT), 9090); + serverConfig.put(GrpcIpcUtils.GRPC_PORT, String.valueOf(port)); + serverConfig.put(GrpcIpcUtils.TLS_ENABLED, "true"); + serverConfig.put(GrpcIpcUtils.SERVER_CERTIFICATE_FILE_PATH, serverCertFilePath); + serverConfig.put(GrpcIpcUtils.PRIVATE_KEY_FILE_PATH, serverKeyFilePath); + serverConfig.put(GrpcIpcUtils.TRUST_CERTIFICATE_FILE_PATH, trustCertFilePath); + + Hashtable clientConfig = new Hashtable<>(); + clientConfig.put(GrpcIpcUtils.GRPC_PORT, String.valueOf(port)); + clientConfig.put(GrpcIpcUtils.GRPC_HOST, "localhost"); + clientConfig.put(GrpcIpcUtils.TLS_ENABLED, "true"); + clientConfig.put(GrpcIpcUtils.TRUST_CERTIFICATE_FILE_PATH, trustCertFilePath); + clientConfig.put(GrpcIpcUtils.CLIENT_CERTIFICATE_FILE_PATH, clientCertFilePath); + clientConfig.put(GrpcIpcUtils.CLIENT_PRIVATE_KEY_FILE_PATH, clientPrivateKeyFilePath); + + configAdmin = mock(ConfigurationAdmin.class, RETURNS_DEEP_STUBS); + when(configAdmin.getConfiguration(GrpcIpcUtils.GRPC_SERVER_PID).getProperties()).thenReturn(serverConfig); + when(configAdmin.getConfiguration(GrpcIpcUtils.GRPC_CLIENT_PID).getProperties()).thenReturn(clientConfig); + super.setupAbstract(); + } + +} diff --git a/core/ipc/twin/grpc/itests/src/test/java/org/opennms/core/ipc/twin/grpc/GrpcTwinIT.java b/core/ipc/twin/grpc/itests/src/test/java/org/opennms/core/ipc/twin/grpc/GrpcTwinIT.java new file mode 100644 index 000000000000..1e93aa3ffcd3 --- /dev/null +++ b/core/ipc/twin/grpc/itests/src/test/java/org/opennms/core/ipc/twin/grpc/GrpcTwinIT.java @@ -0,0 +1,124 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.grpc; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; +import org.opennms.core.grpc.common.GrpcIpcServer; +import org.opennms.core.grpc.common.GrpcIpcServerBuilder; +import org.opennms.core.grpc.common.GrpcIpcUtils; +import org.opennms.core.ipc.twin.api.TwinPublisher; +import org.opennms.core.ipc.twin.api.TwinSubscriber; +import org.opennms.core.ipc.twin.common.LocalTwinSubscriberImpl; +import org.opennms.core.ipc.twin.grpc.publisher.GrpcTwinPublisher; +import org.opennms.core.ipc.twin.grpc.subscriber.GrpcTwinSubscriber; +import org.opennms.core.ipc.twin.test.AbstractTwinBrokerIT; +import org.opennms.core.ipc.twin.test.MockMinionIdentity; +import org.opennms.distributed.core.api.MinionIdentity; +import org.osgi.service.cm.ConfigurationAdmin; + +import java.io.IOException; +import java.net.ServerSocket; +import java.util.Hashtable; +import java.util.concurrent.atomic.AtomicInteger; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class GrpcTwinIT extends AbstractTwinBrokerIT { + + protected GrpcTwinSubscriber subscriber; + protected GrpcTwinPublisher publisher; + protected ConfigurationAdmin configAdmin; + protected int port; + + @Override + protected TwinPublisher createPublisher() throws IOException { + GrpcIpcServer grpcIpcServer = new GrpcIpcServerBuilder(configAdmin, port, "PT0S"); + this.publisher = new GrpcTwinPublisher(new LocalTwinSubscriberImpl(), grpcIpcServer); + publisher.start(); + return publisher; + } + + @Override + protected TwinSubscriber createSubscriber(MinionIdentity identity) throws Exception { + MinionIdentity minionIdentity = new MockMinionIdentity("remote"); + subscriber = new GrpcTwinSubscriber(minionIdentity, configAdmin, port); + subscriber.start(); + return subscriber; + } + + @Before + public void setup() throws Exception { + Hashtable serverConfig = new Hashtable<>(); + port = getAvailablePort(new AtomicInteger(GrpcIpcUtils.DEFAULT_TWIN_GRPC_PORT), 9090); + serverConfig.put(GrpcIpcUtils.GRPC_PORT, String.valueOf(port)); + serverConfig.put(GrpcIpcUtils.TLS_ENABLED, false); + Hashtable clientConfig = new Hashtable<>(); + clientConfig.put(GrpcIpcUtils.GRPC_PORT, String.valueOf(port)); + + clientConfig.put(GrpcIpcUtils.GRPC_HOST, "localhost"); + clientConfig.put(GrpcIpcUtils.TLS_ENABLED, false); + configAdmin = mock(ConfigurationAdmin.class, Mockito.RETURNS_DEEP_STUBS); + when(configAdmin.getConfiguration(GrpcIpcUtils.GRPC_SERVER_PID).getProperties()).thenReturn(serverConfig); + when(configAdmin.getConfiguration(GrpcIpcUtils.GRPC_CLIENT_PID).getProperties()).thenReturn(clientConfig); + super.setup(); + } + + public void setupAbstract() throws Exception { + super.setup(); + } + + @Test + public void testPublisherRestart() throws Exception { + // It takes a while to initialized RPC/Sink streams. Sleep allows that. + Thread.sleep(5000); + super.testPublisherRestart(); + } + + @After + public void destroy() throws IOException { + subscriber.close(); + publisher.close(); + } + + + static int getAvailablePort(final AtomicInteger current, final int max) { + while (current.get() < max) { + try (final ServerSocket socket = new ServerSocket(current.get())) { + return socket.getLocalPort(); + } catch (final Throwable e) { + } + current.incrementAndGet(); + } + throw new IllegalStateException("Can't find an available network port"); + } +} diff --git a/core/ipc/twin/grpc/itests/src/test/resources/log4j2-test.xml b/core/ipc/twin/grpc/itests/src/test/resources/log4j2-test.xml new file mode 100644 index 000000000000..6a7469e153a5 --- /dev/null +++ b/core/ipc/twin/grpc/itests/src/test/resources/log4j2-test.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/ipc/twin/grpc/itests/src/test/resources/tls/ca.crt b/core/ipc/twin/grpc/itests/src/test/resources/tls/ca.crt new file mode 100644 index 000000000000..fe3522dd4ce5 --- /dev/null +++ b/core/ipc/twin/grpc/itests/src/test/resources/tls/ca.crt @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFDzCCAvegAwIBAgIUYLAnTOR+fOCmXLWM50jlR7JdTI8wDQYJKoZIhvcNAQEL +BQAwFzEVMBMGA1UEAwwMbG9jYWxob3N0LWNhMB4XDTIxMDEwNzA0NDQxOFoXDTMx +MDEwNTA0NDQxOFowFzEVMBMGA1UEAwwMbG9jYWxob3N0LWNhMIICIjANBgkqhkiG +9w0BAQEFAAOCAg8AMIICCgKCAgEAr7rQXU1MmV2PiTYi1YNxB2wc4b2FbR+YYeKb +hzDX0d0fDogF+l3emsfagGe57+lh9L6sfNZAmoJYhpZxdrvA0s3uhmMBWJmLWx1I +Eu75Di8dc/6iuq3gUgtufuETx9o7yRKQEuXb3ogGWUCGYPerqxLcNnUCYoI0e3+Y +caK/TxmxvD7uk6IINUFNOItt4atWf5T3zBBpQnp9/dnTPJWhjQQeXhwm+RDG79gc +VTi4QcpSXUgRgmuu/ZyhWCYpUqMeidqZwLsen1pBqbyzjyDLs3kmw+kvJLTBmzQQ +CQs9zFPmr5+322rIQAZVtWXBSdIEGcz7JUNF6Fz4QpbP+tSv0uE87czaODI1z6I8 +kiN5HilhHFD5swJlGi7UVx1/1Cwa05jRrvUxuR5O9+PpQnMinNClXvcX6uURAvgo +nS/RCC17dxPkUtQmLm4X11pU+axM+eUcMNnU+H/2PZYvQAprL2UoHxaGyOpJpNNe +0WGRfT5lIyS0wqafMkF1eiae40uaA9gy+XFsPZDyEZPR4zpeEw7gWkj4QfoG0JOd +969E8ivOoXhIhN9N+7ON2CWLTxOrVyaGF2E2++fYnQqymJwB81NKe8Mg7pFO0t4Q +39XRE0pTsn9KT37oNygUdczsxwI5dbIg2DGzViFwPkaP0hpxjFIfORP+Rs0+AVfF +dA0i89sCAwEAAaNTMFEwHQYDVR0OBBYEFOBm461ayEHiLzJTthaQ29VAq3SgMB8G +A1UdIwQYMBaAFOBm461ayEHiLzJTthaQ29VAq3SgMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQELBQADggIBAKgNttp2aoBa0YfQ0+m1QF0Ef81QpV3lBqrw0WUl +JVpyTR9MIFSsbrnOzRDhLL8SIQYVMA6Q+Fd8/mZxd+UrWU5nrgvGFXH7JIRDKZjZ +QJ5hXXlmsyR3CbrW4zyB+5GTpZsjkCaG7UPQ/vFJHF+FugJGEi7eWYTVRpc9gucX +5NfdDM5ECn5OB0G1IhQNSRFTjQLXFfP2FQlGWlKwDf/ptfPTOSPfDg/Sn4kpp92j +/wfDgx6v/81ASSEENOL45qU6LIiM3RJVMVYVnkULL+eFQUceEwTpeXLWSlZ2EEDG +KdHMi2Ac5mZeehjL4kX5CocX0Sl8pBZ5s9b2Ngxo8ucI7zdfXuEg5k3ZYQx2Kt3u +AwZ4RzuBA3+D/BEJB6XbfH+0CZP42S4zIF1HEMrZGbAKqtl8kUsgCzX2GDnuPqj6 +zwWKh5N8jcAWS2BuWNg4UkXHHweGYw5Uy8ovG0j9HKb0XHIRXarKqm22WEOqg2SZ +nWvO5TuE7c3+ABBiGODgzmy9Lz+QVJ9ENjHeOLWPVdzCyxF00wjbsppemO/7EvBw +L/aFN6TcIzJDDIgcRN7q9MM1xUFLOJuoBBv2wOZsq+jf/QCndUEHJQLYMf7lL+Vh +zEmw1CjJHTGLGLy72OYd27U1oD9l/2TlCSRvkn1AkKAQFTyeUndGKIDRskZAgRXI +gXVD +-----END CERTIFICATE----- diff --git a/core/ipc/twin/grpc/itests/src/test/resources/tls/client.crt b/core/ipc/twin/grpc/itests/src/test/resources/tls/client.crt new file mode 100644 index 000000000000..f60a6f6db298 --- /dev/null +++ b/core/ipc/twin/grpc/itests/src/test/resources/tls/client.crt @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIIEnzCCAocCAQEwDQYJKoZIhvcNAQELBQAwFzEVMBMGA1UEAwwMbG9jYWxob3N0 +LWNhMB4XDTIxMDEwNzA0NDQxOVoXDTMxMDEwNTA0NDQxOVowFDESMBAGA1UEAwwJ +bG9jYWxob3N0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzvV9GVzd +/r1Z9zD+UNwTSvf3b+RP6N+Y5PojuCAIZ5ly+r/ssKbLALsLc162yJ9tOjjebCya +nzJ7l16PqrF/52IjTsJrGYUlsbR8JiTAsHSxHHGrlRuGNQuewlZUccEakXX22JqT +sR7fDfeQuA6bpP2QDsgPN8+nwphSnPe5AusPUg5C9dee87wEJdA5QjflnkePUlY7 +iAdUMW47gjDhs9GIJwf82uEJQLSjz/8TfFQGmcdK6XNsLIXqU0iX8zI9n5szpt7R +UF2Os4LyJP8oNpjHs32TmD5bxoPt7Pj67wLno/LGdnAqvHVygVvy2T06Jom52xGu +S7YtRng5fzqEQOZizEO7HfPt4vjNwPNpKmBAugxU6e9x4naNUc9TUODQBr/L6NfZ +qIob32ioAIepz4J6WrICgusxoZwa0UBk8nuPt293wvFRV6PxvgReSaERCDj9/QCS ++HnMH65YgjAhdzhOr2eBHG+4xmxoEsnOq4quQmDB3mgEN6+b7yRh1dhlJZSoBDhI +W5UUrHmdgoREx8rQqNQAOS6xPbLfejLsVF1Zqa/W2nuzTmiVcyDisyCTpCEDaxxG +vsQ49ne0opDCgii8O44Fxyk7PuFmmBtn68I74tztPY4aux3ccmM0p15YLhCMx32S +A6SfG+STgFAzrvgvFVptoZB9HXK8I6GQqI8CAwEAATANBgkqhkiG9w0BAQsFAAOC +AgEApciB2JPlrWP3tE/j/bcR40WFwRpwQfVitMWbkdkMnAcFaAlGplenq1FO5Rug +oS7S/0F0ofOVlmhskal7a/ovbZARhxW7+GYLbFVlhHv1swfaNt46eh+/oXfRt5QB +MPhR0ZwvXoEGoJp/GPfy5i7qhAZFUP8MzosQDdmQr38mIHnD4A+Nv7n3EaGwCRjq +5LSDdLtm9lNWrIfuilX3zzkfWwFZQuJjgn2a4rIOjCXRM+2HyegPL1jtIMZCLCO4 +NUfVLaCs7CDJAmvp0Qm64CL2mM40unnrmpVSmYztLZSzqZvzBZTdlsjVqMPwHyJL +XaZA1huxuT0Sf2hjXb9m5megf2QPmEByqE8q2c6SCj5hWRe+pM0OQbZQNddDay+x +S64/C2XIUSw8TNvL23v7kt5p8JQF6iYBz0yUwWFppVItXNbTY8V8W/u8CbpHo+mb +Lq6WavB4SGYINqnW+X4eBMWdNNPDhZI6pwKN2l4mAyGMorY6XdM+JcIkuUMbwd+K +p0PvX0CBxiF2Ex12teht9bZKw5acf79+pIoOdA2BPw/9OigFN2deyOtFm4KM2Ubz +DcsVBevFVpKb6AcnQ31hTf9G12QrJ0PLRzFVSNvL67jNGYk2rsBbzmWV2xCbzWrx +BJ2FbRq52ekANQ6ZHNwH2yCgl4BYdtDxhay0ZgxrSrQndCA= +-----END CERTIFICATE----- diff --git a/core/ipc/twin/grpc/itests/src/test/resources/tls/client.pem b/core/ipc/twin/grpc/itests/src/test/resources/tls/client.pem new file mode 100644 index 000000000000..6993dabf9329 --- /dev/null +++ b/core/ipc/twin/grpc/itests/src/test/resources/tls/client.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQDO9X0ZXN3+vVn3 +MP5Q3BNK9/dv5E/o35jk+iO4IAhnmXL6v+ywpssAuwtzXrbIn206ON5sLJqfMnuX +Xo+qsX/nYiNOwmsZhSWxtHwmJMCwdLEccauVG4Y1C57CVlRxwRqRdfbYmpOxHt8N +95C4Dpuk/ZAOyA83z6fCmFKc97kC6w9SDkL1157zvAQl0DlCN+WeR49SVjuIB1Qx +bjuCMOGz0YgnB/za4QlAtKPP/xN8VAaZx0rpc2wshepTSJfzMj2fmzOm3tFQXY6z +gvIk/yg2mMezfZOYPlvGg+3s+PrvAuej8sZ2cCq8dXKBW/LZPTomibnbEa5Lti1G +eDl/OoRA5mLMQ7sd8+3i+M3A82kqYEC6DFTp73Hido1Rz1NQ4NAGv8vo19moihvf +aKgAh6nPgnpasgKC6zGhnBrRQGTye4+3b3fC8VFXo/G+BF5JoREIOP39AJL4ecwf +rliCMCF3OE6vZ4Ecb7jGbGgSyc6riq5CYMHeaAQ3r5vvJGHV2GUllKgEOEhblRSs +eZ2ChETHytCo1AA5LrE9st96MuxUXVmpr9bae7NOaJVzIOKzIJOkIQNrHEa+xDj2 +d7SikMKCKLw7jgXHKTs+4WaYG2frwjvi3O09jhq7HdxyYzSnXlguEIzHfZIDpJ8b +5JOAUDOu+C8VWm2hkH0dcrwjoZCojwIDAQABAoICAD7kg1vNyPi8+jYQgXh5KLPD +n0I1k8MlEAWlrm0p7uPs0fA5mugkB9T1AonQ4qMdL8hdt9oPw/1VDhH1/prUzhW2 +0RwCISHkQIw8WO4OhTAahigqswXhE2vTWC+epJLdKAHEY3t3niJZS1enQCdu6QW+ +uKSFT3qadFTCjXh+H48vd7xr8RVcrUVMgcYr/PqOmgz7miZfZj/0WjWbViI+UJig +uEuENeceM/2h55Yx4e4KaucYlT9UgC8Xkxo0GVkij2+NbqjrVZiildcfmA5+K+5L +h4SYSN4fNSyisw8sqrUvoM1F3eHoPFSBLIb7NlWmMaG8gOp9+QWxGxkrN+3eDopO +i06FQoEqtP3oY9Z7PrT9iUO1gpHyZf/UAQWGVfh8PF67oA4+lj1zpq+aruKac6Yo +W3HBz187rcGzujDTz9R8pbvSR8WPSwWdpognMYpW/mXSJmIojw0fOt4FtJL/lZ1c +32NCcXYwMEyRHmpZ5McxNQlkwylkKMCvdVU6qlQimp/AoGwXngGY4lgJeyyMdPlP +CMrSGyjqJ/OA+qrfjTox7s9fTa7g29Z6vzbqqz3LjlasK/cN0EbZ543nhxa7tsDG +W17Lv1a14upQfzLUxMxvW35TdphLwV3/x21zGh+DqyTiugJzH+9vmUQTbEoGFXFh +IESPxedAaDc9mC+2FA7BAoIBAQDq9e5PD7zUbCymKZecJhejN/Fn5HK9+fU3UdXe +FYhtbOEcypR0Jl1Omk8HLV9ZHrjD9N5+b/MdmSzk8vEFQjowATrQOs9zXSBaxG6A +i50S90q449quF/POQUOGkovqDbMyeJ+F+XyC45Tsz9iu/xlFADRpnTd62ghepq/2 +QiRnX+ulIVWWuqbAwEzEDeqmYXjY7VFpvaNM5MwMPxAJgquyUqGMejWwRgC4IAs/ +IHXqN5N8epWkVmSb9+xQGFw0cv9aerVomBQTKhpoywiqf179cKAFmw8uwxsDUaYR +YMGHZc7ujv3UQNvX4ZLkDqJMSQTmP3iwDRtwtwWPpnJNCDTnAoIBAQDhfaqVfEBN +2ysE7egN7XZuSZpvZnJL2HUP6zRG2voJ7BS4kGVs8vJCMDvIsLPhSaDmF1M08jvA +D3dRjynVOIQ0ZBAIB23fvVftI/srrJtFv7NQIN2XuObEoi/NP3LnaZ5AY6jsNww8 +wKsuhldOFW6DOMrygjOOyfmITplP9g/HG04Mhb9XOwOPvdDt7EUkqwlhBbcC8KQb +eeZnkBD6XagP11o45EA+aNa7IaC5REOadvpzPn8RHZb0SwROG7S28BOhUQlsJkBP +X/XlVTtgW3L0tu4e+6a0+tk2SdgPtln3GVZ4ieGOI4RAas+jgLxBhRLFdZSKkf+k +R5AtVjPy8tIZAoIBAHojpeILeEmkggFOlbViR99c8WzkYJFJIqPDMr3jy6u2cb8Z +v9oxJ0f5ByPf/jTBt6KF5DMt1t+IBMJvV8M4Di9uNDiSmcyKmIsWmarQ6LI3Quyh +5ceiQ+bwHj4SaBEfVgvikGqAqq0PyRbhZO5zRZuM47ITPAfs13T8iXQmJe5m+oQ4 +s9lK5exFCqLP6S7cdImvtCaXohASz8996MRI3SAxvDDeRpJ/kVglsDL8mM9MXKrU +vn1TO7GoS3vHbgcF0KAkMbFRfP4JYPkgsjyPQb3VkhnX5SiV27D5/K4D8haEYfG4 ++1Ie9Slf5ZAP22Z0fsuCKya5aY5KVeW6zKgmn/kCggEAdz4+VDjVxJZPJJcu7RaT +V3VC3wBdFvDLzvRBu+qW6WJX/tYVXM0JAamCI/oV1eBa3vKcxNYIdON45L+BjskJ +WK9FrwlGuFfnxHcPnyPzJKpgh9IpfM+B8aAXCUIxYGEBF+nb7baamRIGNF9Ekf1R +aMFCyYXDABKdC9EM0DU+WLt+xa6A5f9GPeBSOU+FrQNpvU4JXtuk3QbUqhWMdOnM +Mzxd8NH7i0VjsKfy16Za3bdncEQva/yq1FtLVobeRROmPdud0PxVa+RCI9mzwZv6 +qaCHQgkwOmqhLU1VndF/t+VFTg8UIVd025/gWAV/CGL370XjnHfiqZxSiTcZ17ND +GQKCAQBSRtuw6s4QC99lfLQKXFkW+NpA9aoaihmJxDyc7QVY2OXHRCzxlKH/2Eqi +tX/MI3lhSl2wxziXltmRXJQvSapefmPvA7DENWUdwlIKFBgCFuoxM0/wvgdxfbLm +A+mdm5H3zZgKQfDYc/QPBwHtjh5JRhOQUCeFiiXGtkgH5rkMZM1NrXxGX2hpM6sJ +aPyr+amh5ATjgUZmWelpuAgzS6N7K3XPDAHf1jxti+r0Kc92+qvfa2DUTXpj4w9U +VFYiqMlNJ891yHaj600+Zp6GIkH4Ecj5cwexV/wklEVLB2AVnYPcok6QvxbA53qa +/sihGDnQXtyNE/NFQe49vYvNulPG +-----END PRIVATE KEY----- diff --git a/core/ipc/twin/grpc/itests/src/test/resources/tls/server.crt b/core/ipc/twin/grpc/itests/src/test/resources/tls/server.crt new file mode 100644 index 000000000000..2f502b47127c --- /dev/null +++ b/core/ipc/twin/grpc/itests/src/test/resources/tls/server.crt @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIIEnzCCAocCAQEwDQYJKoZIhvcNAQELBQAwFzEVMBMGA1UEAwwMbG9jYWxob3N0 +LWNhMB4XDTIxMDEwNzA0NDQxOVoXDTMxMDEwNTA0NDQxOVowFDESMBAGA1UEAwwJ +bG9jYWxob3N0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvis+ZfDo +2PQBG8z8L7yAONAp4TUUvg1vKb4dZV+k8m9tO8olhfbq8RxfEN8CvQDzLl8KgRlM +8qr8KaYudmdIzb6+TeV0ii5Z+riRlNWuWk3dGVdrGzB09vbbG8kvnj4m1in7F70D +AUD85y6n1tkv7OMOgvYnPaV8mTYKZFo4pSXd17Ms7r38ryGmehRC/R8h1aY6kjyN +LxZ+kR3/pbCmsfQSMckPOR0qjbobes1ChRGG/4+qSSfkxJSWLzDfUFAtBqjmGEwv +lyOqjSNcKO46G9uXkiR4s/+ZAgffUbufW40AE7zvLeBnKCuOAukr9l4WYO/BtqE0 +QuTu3azMz8YX8KnP565UDroSY/L7Hyg4M4sXPe8y9gp9HHZlroEEA0Mf5Fk9WOIN +77xWYuzXxHicNx3HXCkIjMfNuPfDLMv0InMXe3uHrys7r5AAIMpf+mdikYyBC5Sk +0/qY1kNAeqF02Nk2MLXrHVeZLw9P+7GdVRmBlkugTZKtElWh1G0PmfZ9IRAxzTQR +s5Db7SdUIlNQnVzA9Qa2UGhh71oRQIqGPFFzvW0QrUVqSBgDNexx116o1S6XbEA7 +dnsnqFXmjWpnp6ehnGeal5e04NA7rcCyml71Q7o/1zLXGN8j/4aoMOvXfLgidyOe +MIVbaoPtTDc/QUAhaniUOLUsFK3wQzHyQZMCAwEAATANBgkqhkiG9w0BAQsFAAOC +AgEAJeda60upA9lrIrsDQOK+qZj+/w7JXJIHH+WfY4peKLbl7sEA85nI6xEntYma +FA+OxqHiijFQtUKPvooO2YFZHws/Fjo71aFna/qewFb1j0JScg6+4LB25sfRW0IL +4t9fo01co5FDT/U309+KFsKEvf+rks/1ukHcjWj+mvyhEB1l3lxPV/NWnT3pPA3m +3nogkpvezrNqLQaf/fmoRhBEnGvWwy12ikZbhEUngEpt8QnOnWXnG3FISyADP84R +coZouwwGl+Xxl9URrv69tTIZ8zz9rqWE1Gp+pHHZCsZGKgVG+o9X/AR5qieqTELl +biqeVx4m4Svx21cwRDkyqIYpcyUcSbBktmC3MSAY174IJw1RHX4qcsNQFuXUkTfa +iAUl9FrapJmO0Nx+LIitSeBs0+JWmZGFtVN21NGsp35LHtiWIE06NTR9/ltlt8QX +grzeSpuO3sYCfIy/6rehschc5sgzoHtCqv+YlxlNlLWEJyJ3mLIRtbvsGng6+J1q +T42R0UF9khdhn2goLH49phXlf6iaO2eRXn+xdwc8bIaSB9SDQshj+NGUCnYFgNYi +NWzhRbCxB3pR9dfNu6N90ywpho1A+/LlJUEaqjnbD9tX5WqYVRFhq5egSmAMCTLH +gr7uVZ85oiS2D4vaO9iFf0+UaZuC2sVW6h8SybfhgkzEVvE= +-----END CERTIFICATE----- diff --git a/core/ipc/twin/grpc/itests/src/test/resources/tls/server.pem b/core/ipc/twin/grpc/itests/src/test/resources/tls/server.pem new file mode 100644 index 000000000000..5d91907c04bf --- /dev/null +++ b/core/ipc/twin/grpc/itests/src/test/resources/tls/server.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQC+Kz5l8OjY9AEb +zPwvvIA40CnhNRS+DW8pvh1lX6Tyb207yiWF9urxHF8Q3wK9APMuXwqBGUzyqvwp +pi52Z0jNvr5N5XSKLln6uJGU1a5aTd0ZV2sbMHT29tsbyS+ePibWKfsXvQMBQPzn +LqfW2S/s4w6C9ic9pXyZNgpkWjilJd3XsyzuvfyvIaZ6FEL9HyHVpjqSPI0vFn6R +Hf+lsKax9BIxyQ85HSqNuht6zUKFEYb/j6pJJ+TElJYvMN9QUC0GqOYYTC+XI6qN +I1wo7job25eSJHiz/5kCB99Ru59bjQATvO8t4GcoK44C6Sv2XhZg78G2oTRC5O7d +rMzPxhfwqc/nrlQOuhJj8vsfKDgzixc97zL2Cn0cdmWugQQDQx/kWT1Y4g3vvFZi +7NfEeJw3HcdcKQiMx82498Msy/Qicxd7e4evKzuvkAAgyl/6Z2KRjIELlKTT+pjW +Q0B6oXTY2TYwtesdV5kvD0/7sZ1VGYGWS6BNkq0SVaHUbQ+Z9n0hEDHNNBGzkNvt +J1QiU1CdXMD1BrZQaGHvWhFAioY8UXO9bRCtRWpIGAM17HHXXqjVLpdsQDt2eyeo +VeaNamenp6GcZ5qXl7Tg0DutwLKaXvVDuj/XMtcY3yP/hqgw69d8uCJ3I54whVtq +g+1MNz9BQCFqeJQ4tSwUrfBDMfJBkwIDAQABAoICACexQPnoGcHG1EBoPa79CkpR +cJxYBvdQOIae7uXM29HaXhNfswtOKWWgBVuxIJIwk5F3NusRS9VOyQksbYA7OJ/x +EymRHg0FdbR2N7S4EQc6P07dxzZKm+88QSmAiZbe5B5JbuZahjkJxn++Zjva4zzv +e4TsOe6NDv+vnuWpSy91QuOVu2gtcYNgY64RcpYAnIBKjOkfCFzutgY2G7kKsRBt +oCqSC8JhCxO/56JvG1ZI/UN0Shew4vgBB4PcEJBj27ILKNOjez9xq1SAL+k/KBPO +dsmDIUp4rAgXeo5FuhJS0NRN2CJcN0vUI3UKFCn9I3CiOm2TIiRgQlc0jR9E+pPd +MFi03CtV8aIIM99kwJeWIUPdDS6n2L6nH3H4CrhdGsOOAAfc6AiAFhI9PUR52nMQ +eWpWAcClfds3DUYQowFzl2MsHtFUfox7A1wmHgxe8CsHVcgbEm5YfOxsKppooU85 +TGBnTnN4kHx9FS4zp88A2IzWBM1RmTyKV6edDhK6YByrEhpUFxPi9ka+75TcV113 +yV1GJikGbIBzsA5wtQdxcqaKUYcKRLP5vDapvHeMeLZpgPhEr6mn8RIKwSeqbKfU +NiwdlrSpTFJ4Q9+T/C4JIoVsCy3Out1gC6nhVoEspFQoaK5FHwsSTyXRCjqDADks +ZBbhv2BpBuYf96Mz2g2RAoIBAQD4ENwGK49knzCxvBj+/92p1V0IFCnM5Hi2iAID +i+LluCrnKddAig1fa7k8kmQ9DV2dsyc63leAUoe9o7g0yl9p6dhDSaGw09vex5T5 +FIIu063CVjRECu8s9rQtdG/2LI76rde0+qBHZPfO0v68zvzSpukLvA5qh69nQ7aS +ODf12h0vJE4w9Qa66asdTQzsHUJGjr+c0WjS56um+Ba8Mbvi2h+Vl0H/4SDfy0GF +iq0c7fS4C+8q8+zxD/6mibcvhnnMOjVx92QXBGiI1zBqI6OziQIOmTWEmqkQwURS +MkvEkpWbuMju96XjC+01qDU5whBGJ8F8nJQHgZ3UoWUKpNLLAoIBAQDEQFRXYyop +GLIgLcuXNRKfwhzSXV3vV5Pc8mh4qlSoR+DOqomax5/PklduXdw3T6a1sBrQtMKq +RHAvdwnhWOvqo4IHYND8a3B5ePDZlO9SgWpu9HKTYmC3MHE6ekQQJE19EsSeq62l +jIx8vMgXCQWtEG6BwXyqOOwP/pjV2bBVlhniYsDdsYiCcBB/QExx4e5jYRHFYf3A +AasiAvJIldBHe/3BduLFAdcrCjCD0KCJGnlqTFlc68pzJzcUKC8m56ZTqlH8FCi9 +2YQKHSIH+r3m1P4xacYVJ64XPeIYI0dA9IbA2B9lhx2h4D8JvEFkx/QpGB9qJ8Zb +hU//2KlsustZAoIBAQC4onvRj9yDrUTmFTWZnsHSpb8/wxo1qZv7aBHvp8+y4bf1 +JJxVKiu36QsPfXpkQq16Mh0x4MnJ9iOYT+JMUJBh2a6gro5NefK9x1knZ09aIS3E +ZrsyJd1NXzZOWsr2tMWa6YeS6bQgT5Nuencl+v4MoDT3CfrE6cbxGmIqRPPJ5pUw +QFp+b/GZb1BwV6gVmdV5hMgzpV3bFJobha4OVwocV/OIOPPjyyHX0IYtKkGdNbOe +xSs3kiS6bAhC1l/lXLcM/gpHkDYMN7jCmUAsz+gJOiGw0fIWh7LsiJ0cfNkOL3hx +VkEgNG1hJ8Bf3pn3Km1IelC2OiinyZ6644G8QV+vAoIBAEyCf98py/AFrrwY3nxu +tnoOJUpmGA8NZ5oF73DLhwGsNBqeJdNv6//yn59pfEccCHRg2bNwJUxYLhxzHij6 +j88EO9dAiXk/MbRJ0CwjgkH6LlJffqOzAN2qRxpzPEHGxWbzgDAT4jjeWI7w0lkY +rVvRQiPYGRAL7Qw3R8JngfV79U9rDKHhasTfh670lFj5qgSYfWMkVtcaT2uNFoPx +1CdqUX2xKauAkjA3Yr6hAVUyOw+UAGrXii/mo/R5zhguy4tmpVvPSCrruCxxOyk9 +OffaJdeB0zXAKIDrIVAjwM20Byz7lRHx4T2QvULAYAY4Zhn3S5gJNa3MhWnLQBIh +qNECggEBAK9gnrNhOSH0jCo/W2Uew4HbE3SOdSOzElaFkAQYyC8lOcYuDyVrq4Qv ++1PkAqF1rr7cf5WxM9vlFFOvTwvl68sSpN/TAtBO3zm3DvR9rUoCYI7m8Zhr6OJD +Bz7UouqXkrI5xZX0HNAMJoh57KWVJAQ8lkZouySG0OXyY6LbVUip570kJ3oVhx+D +JVV/FWKCe/Y34pzfzjqFnFjA4n0iMcUSvz4kQSFTMm5L5xrRZ+FctsLgbltYest5 +MG02U2GGdtW7YLmRRJ3GfvQnTnAm3gKqeRWYzs98pXnOm2Em5l5mKItlCMeBcC/K +GVeBAC2VTaK1/eGTpIn24Y2Ew5Z7UI0= +-----END PRIVATE KEY----- diff --git a/core/ipc/twin/grpc/pom.xml b/core/ipc/twin/grpc/pom.xml new file mode 100644 index 000000000000..46f0dd777c8b --- /dev/null +++ b/core/ipc/twin/grpc/pom.xml @@ -0,0 +1,23 @@ + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.grpc + pom + OpenNMS :: Core :: IPC :: Twin :: gRPC + + common + publisher + subscriber + itests + + + \ No newline at end of file diff --git a/core/ipc/twin/grpc/publisher/pom.xml b/core/ipc/twin/grpc/publisher/pom.xml new file mode 100644 index 000000000000..0c14cd6bdf7c --- /dev/null +++ b/core/ipc/twin/grpc/publisher/pom.xml @@ -0,0 +1,76 @@ + + + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin.grpc.publisher + OpenNMS :: Core :: IPC :: Twin :: gRPC :: Publisher + bundle + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + + + + + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.common + ${project.version} + + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin.grpc.common + ${project.version} + + + io.grpc + grpc-netty-shaded + ${grpcVersion} + + + org.osgi + osgi.cmpn + provided + + + org.osgi + osgi.core + provided + + + org.slf4j + slf4j-api + + + org.opennms.core + org.opennms.core.logging + + + org.opennms.core + org.opennms.core.lib + + + org.opennms.core.grpc + org.opennms.core.grpc.common + ${project.version} + + + \ No newline at end of file diff --git a/core/ipc/twin/grpc/publisher/src/main/java/org/opennms/core/ipc/twin/grpc/publisher/GrpcTwinPublisher.java b/core/ipc/twin/grpc/publisher/src/main/java/org/opennms/core/ipc/twin/grpc/publisher/GrpcTwinPublisher.java new file mode 100644 index 000000000000..3bdbbc781d5a --- /dev/null +++ b/core/ipc/twin/grpc/publisher/src/main/java/org/opennms/core/ipc/twin/grpc/publisher/GrpcTwinPublisher.java @@ -0,0 +1,184 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.grpc.publisher; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.*; + +import com.google.common.collect.LinkedListMultimap; +import com.google.common.collect.Multimap; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import org.opennms.core.grpc.common.GrpcIpcServer; +import org.opennms.core.grpc.common.GrpcIpcUtils; +import org.opennms.core.ipc.twin.common.AbstractTwinPublisher; +import org.opennms.core.ipc.twin.common.LocalTwinSubscriber; +import org.opennms.core.ipc.twin.common.TwinRequest; +import org.opennms.core.ipc.twin.common.TwinUpdate; +import org.opennms.core.ipc.twin.grpc.common.MinionHeader; +import org.opennms.core.ipc.twin.grpc.common.OpenNMSTwinIpcGrpc; +import org.opennms.core.ipc.twin.model.TwinRequestProto; +import org.opennms.core.ipc.twin.model.TwinResponseProto; +import org.opennms.core.logging.Logging; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Strings; + +import io.grpc.stub.StreamObserver; + +public class GrpcTwinPublisher extends AbstractTwinPublisher { + + private static final Logger LOG = LoggerFactory.getLogger(GrpcTwinPublisher.class); + private final GrpcIpcServer grpcIpcServer; + private Multimap> sinkStreamsByLocation = LinkedListMultimap.create(); + private Map> sinkStreamsBySystemId = new HashMap<>(); + private final ThreadFactory twinRpcThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("twin-rpc-handler-%d") + .build(); + private final ExecutorService twinRpcExecutor = Executors.newCachedThreadPool(twinRpcThreadFactory); + + public GrpcTwinPublisher(LocalTwinSubscriber twinSubscriber, GrpcIpcServer grpcIpcServer) { + super(twinSubscriber); + this.grpcIpcServer = grpcIpcServer; + } + + @Override + protected void handleSinkUpdate(TwinUpdate sinkUpdate) { + sendTwinResponseForSink(mapTwinResponse(sinkUpdate)); + } + + private synchronized boolean sendTwinResponseForSink(TwinResponseProto twinResponseProto) { + if (sinkStreamsByLocation.isEmpty()) { + return false; + } + try { + if (Strings.isNullOrEmpty(twinResponseProto.getLocation())) { + LOG.debug("Sending sink update for key {} at all locations", twinResponseProto.getConsumerKey()); + sinkStreamsByLocation.values().forEach(stream -> { + stream.onNext(twinResponseProto); + }); + } else { + String location = twinResponseProto.getLocation(); + sinkStreamsByLocation.get(location).forEach(stream -> { + stream.onNext(twinResponseProto); + LOG.debug("Sending sink update for key {} at location {}", twinResponseProto.getConsumerKey(), twinResponseProto.getLocation()); + }); + } + } catch (Exception e) { + LOG.error("Error while sending Twin response for Sink stream", e); + } + return true; + } + + public void start() throws IOException { + try (Logging.MDCCloseable mdc = Logging.withPrefixCloseable(GrpcIpcUtils.LOG_PREFIX)) { + grpcIpcServer.startServer(new StreamHandler()); + LOG.info("Added Twin Service to OpenNMS IPC Grpc Server"); + } + + } + + + public void close() throws IOException { + grpcIpcServer.stopServer(); + LOG.info("Stopped Twin GRPC Server"); + twinRpcExecutor.shutdown(); + } + + private class StreamHandler extends OpenNMSTwinIpcGrpc.OpenNMSTwinIpcImplBase { + + @Override + public io.grpc.stub.StreamObserver rpcStreaming( + io.grpc.stub.StreamObserver responseObserver) { + StreamObserver rpcStream = responseObserver; + return new StreamObserver<>() { + @Override + public void onNext(TwinRequestProto twinRequestProto) { + CompletableFuture.runAsync(() -> { + try { + TwinRequest twinRequest = mapTwinRequestProto(twinRequestProto.toByteArray()); + TwinUpdate twinUpdate = getTwin(twinRequest); + TwinResponseProto twinResponseProto = mapTwinResponse(twinUpdate); + LOG.debug("Sent Twin response for key {} at location {}", twinRequest.getKey(), twinRequest.getLocation()); + sendTwinResponse(twinResponseProto, rpcStream); + } catch (Exception e) { + LOG.error("Exception while processing request", e); + } + }, twinRpcExecutor); + } + + @Override + public void onError(Throwable throwable) { + LOG.error("Error in Rpc stream handler", throwable); + } + + @Override + public void onCompleted() { + LOG.info("Closed Rpc Stream handler"); + } + }; + } + + private synchronized void sendTwinResponse(TwinResponseProto twinResponseProto, StreamObserver rpcStream) { + if (rpcStream != null) { + rpcStream.onNext(twinResponseProto); + } + } + + private synchronized void handleSinkStreamUpdate(MinionHeader request, StreamObserver responseObserver) { + if (sinkStreamsBySystemId.containsKey(request.getSystemId())) { + StreamObserver sinkStream = sinkStreamsBySystemId.remove(request.getSystemId()); + sinkStreamsByLocation.remove(request.getLocation(), sinkStream); + } + sinkStreamsByLocation.put(request.getLocation(), responseObserver); + sinkStreamsBySystemId.put(request.getSystemId(), responseObserver); + + forEachSession(((sessionKey, twinTracker) -> { + if(sessionKey.location == null || sessionKey.location.equals(request.getLocation())) { + TwinUpdate twinUpdate = new TwinUpdate(sessionKey.key, sessionKey.location, twinTracker.getObj()); + twinUpdate.setSessionId(twinTracker.getSessionId()); + twinUpdate.setVersion(twinTracker.getVersion()); + twinUpdate.setPatch(false); + TwinResponseProto twinResponseProto = mapTwinResponse(twinUpdate); + responseObserver.onNext(twinResponseProto); + } + })); + } + + @Override + public void sinkStreaming(org.opennms.core.ipc.twin.grpc.common.MinionHeader request, + io.grpc.stub.StreamObserver responseObserver) { + handleSinkStreamUpdate(request, responseObserver); + } + + } + +} diff --git a/core/ipc/twin/grpc/publisher/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/core/ipc/twin/grpc/publisher/src/main/resources/OSGI-INF/blueprint/blueprint.xml new file mode 100644 index 000000000000..7841bee832bb --- /dev/null +++ b/core/ipc/twin/grpc/publisher/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/ipc/twin/grpc/subscriber/pom.xml b/core/ipc/twin/grpc/subscriber/pom.xml new file mode 100644 index 000000000000..c960e473c4ff --- /dev/null +++ b/core/ipc/twin/grpc/subscriber/pom.xml @@ -0,0 +1,73 @@ + + + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin.grpc.subscriber + OpenNMS :: Core :: IPC :: Twin :: gRPC :: Subscriber + bundle + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + + + + + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.common + ${project.version} + + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin.grpc.common + ${project.version} + + + io.grpc + grpc-netty-shaded + ${grpcVersion} + + + org.osgi + osgi.cmpn + provided + + + org.osgi + osgi.core + provided + + + org.slf4j + slf4j-api + + + org.opennms.core + org.opennms.core.sysprops + ${project.version} + + + org.opennms.core.grpc + org.opennms.core.grpc.common + ${project.version} + + + \ No newline at end of file diff --git a/core/ipc/twin/grpc/subscriber/src/main/java/org/opennms/core/ipc/twin/grpc/subscriber/GrpcTwinSubscriber.java b/core/ipc/twin/grpc/subscriber/src/main/java/org/opennms/core/ipc/twin/grpc/subscriber/GrpcTwinSubscriber.java new file mode 100644 index 000000000000..77927636300c --- /dev/null +++ b/core/ipc/twin/grpc/subscriber/src/main/java/org/opennms/core/ipc/twin/grpc/subscriber/GrpcTwinSubscriber.java @@ -0,0 +1,228 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.grpc.subscriber; + + +import java.io.IOException; +import java.util.Properties; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Function; +import java.util.function.Supplier; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import org.opennms.core.grpc.common.GrpcIpcUtils; +import org.opennms.core.ipc.twin.common.AbstractTwinSubscriber; +import org.opennms.core.ipc.twin.common.TwinRequest; +import org.opennms.core.ipc.twin.common.TwinUpdate; +import org.opennms.core.ipc.twin.grpc.common.*; +import org.opennms.core.ipc.twin.model.TwinRequestProto; +import org.opennms.core.ipc.twin.model.TwinResponseProto; +import org.opennms.distributed.core.api.MinionIdentity; +import org.osgi.service.cm.ConfigurationAdmin; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.grpc.ConnectivityState; +import io.grpc.ManagedChannel; +import io.grpc.stub.StreamObserver; + + +public class GrpcTwinSubscriber extends AbstractTwinSubscriber { + + private static final Logger LOG = LoggerFactory.getLogger(GrpcTwinSubscriber.class); + private static final long RETRIEVAL_TIMEOUT = 1000; + private static final int TWIN_REQUEST_POOL_SIZE = 100; + private final int port; + private final ConfigurationAdmin configAdmin; + private ManagedChannel channel; + private Properties clientProperties; + private OpenNMSTwinIpcGrpc.OpenNMSTwinIpcStub asyncStub; + private StreamObserver rpcStream; + private AtomicBoolean isShutDown = new AtomicBoolean(false); + private ResponseHandler responseHandler = new ResponseHandler(); + private final ThreadFactory twinRequestSenderThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("twin-request-sender-%d") + .build(); + private final ScheduledExecutorService twinRequestSenderExecutor = Executors.newScheduledThreadPool(TWIN_REQUEST_POOL_SIZE, + twinRequestSenderThreadFactory); + + public GrpcTwinSubscriber(MinionIdentity minionIdentity, ConfigurationAdmin configAdmin, int port) { + super(minionIdentity); + this.configAdmin = configAdmin; + this.port = port; + } + + public void start() throws IOException { + // Twin inherits all properties from ipc client + clientProperties = GrpcIpcUtils.getPropertiesFromConfig(configAdmin, GrpcIpcUtils.GRPC_CLIENT_PID); + + channel = GrpcIpcUtils.getChannel(clientProperties, this.port); + + asyncStub = OpenNMSTwinIpcGrpc.newStub(channel); + retryInitializeRpcStream(); + LOG.info("Started Twin gRPC Subscriber at location {} with systemId {}", getMinionIdentity().getLocation(), getMinionIdentity().getId()); + + } + + private boolean initRpcStream() { + ConnectivityState currentChannelState = channel.getState(true); + if (currentChannelState.equals(ConnectivityState.READY) && this.rpcStream == null) { + this.rpcStream = asyncStub.rpcStreaming(responseHandler); + // Send minion header whenever we re-initialize rpc stream. + sendMinionHeader(); + return true; + } + return false; + } + + private void retryInitializeRpcStream() { + scheduleWithDelayUntilGetSucceeds(twinRequestSenderExecutor, this::initRpcStream, RETRIEVAL_TIMEOUT); + } + + private synchronized void sendMinionHeader() { + // Sink stream is unidirectional Response stream from OpenNMS <-> Minion. + // gRPC Server needs at least one message to initialize the stream + MinionHeader minionHeader = MinionHeader.newBuilder().setLocation(getMinionIdentity().getLocation()) + .setSystemId(getMinionIdentity().getId()).build(); + asyncStub.sinkStreaming(minionHeader, responseHandler); + } + + + public void close() throws IOException { + isShutDown.set(true); + super.close(); + if (channel != null) { + channel.shutdown(); + } + twinRequestSenderExecutor.shutdown(); + } + + @Override + protected void sendRpcRequest(TwinRequest twinRequest) { + try { + TwinRequestProto twinRequestProto = mapTwinRequestToProto(twinRequest); + // Send RPC Request asynchronously. + CompletableFuture.runAsync(() -> retrySendRpcRequest(twinRequestProto), twinRequestSenderExecutor); + } catch (Exception e) { + LOG.error("Exception while sending request with key {}", twinRequest.getKey()); + } + } + + private void retrySendRpcRequest(TwinRequestProto twinRequestProto) { + // We can only send RPC If channel is active and RPC stream is not in error. + // Schedule sending RPC request with given retrieval timeout until it succeeds. + scheduleWithDelayUntilFunctionSucceeds(twinRequestSenderExecutor, this::sendTwinRpcRequest, RETRIEVAL_TIMEOUT, twinRequestProto); + } + + private void scheduleWithDelayUntilFunctionSucceeds(ScheduledExecutorService executorService, + Function function, + long delayInMsec, + T obj) { + boolean succeeded = function.apply(obj); + if (!succeeded) { + do { + ScheduledFuture future = executorService.schedule(() -> function.apply(obj), delayInMsec, TimeUnit.MILLISECONDS); + try { + succeeded = future.get(); + if (succeeded) { + break; + } + } catch (Exception e) { + // It's likely that error persists, bail out + succeeded = true; + LOG.warn("Error while attempting to schedule the task", e); + } + } while (!succeeded || !isShutDown.get()); + } + } + + private void scheduleWithDelayUntilGetSucceeds(ScheduledExecutorService executorService, + Supplier supplier, + long delayInMsec) { + boolean succeeded = supplier.get(); + if (!succeeded) { + do { + ScheduledFuture future = executorService.schedule(() -> supplier.get(), delayInMsec, TimeUnit.MILLISECONDS); + try { + succeeded = future.get(); + if (succeeded) { + break; + } + } catch (Exception e) { + // It's likely that error persists, bail out + succeeded = true; + LOG.warn("Error while attempting to schedule the task", e); + } + } while (!succeeded || !isShutDown.get()); + } + } + + private synchronized boolean sendTwinRpcRequest(TwinRequestProto twinRequestProto) { + if(this.rpcStream == null) { + initRpcStream(); + } + if (rpcStream != null) { + rpcStream.onNext(twinRequestProto); + return true; + } else { + return false; + } + } + + private class ResponseHandler implements StreamObserver { + + @Override + public void onNext(TwinResponseProto twinResponseProto) { + try { + TwinUpdate twinUpdate = mapTwinResponseToProto(twinResponseProto.toByteArray()); + accept(twinUpdate); + } catch (Exception e) { + LOG.error("Exception while processing twin update for key {} ", twinResponseProto.getConsumerKey(), e); + } + } + + @Override + public void onError(Throwable throwable) { + LOG.error("Error in Twin streaming", throwable); + rpcStream = null; + CompletableFuture.runAsync(() -> retryInitializeRpcStream(), twinRequestSenderExecutor); + } + + @Override + public void onCompleted() { + LOG.error("Closing Twin Response Handler"); + rpcStream = null; + CompletableFuture.runAsync(() -> retryInitializeRpcStream(), twinRequestSenderExecutor); + } + + } + + +} diff --git a/core/ipc/twin/grpc/subscriber/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/core/ipc/twin/grpc/subscriber/src/main/resources/OSGI-INF/blueprint/blueprint.xml new file mode 100644 index 000000000000..babe891398d1 --- /dev/null +++ b/core/ipc/twin/grpc/subscriber/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/ipc/twin/jms/itests/pom.xml b/core/ipc/twin/jms/itests/pom.xml new file mode 100644 index 000000000000..46d9694af63d --- /dev/null +++ b/core/ipc/twin/jms/itests/pom.xml @@ -0,0 +1,82 @@ + + + + org.opennms.core.ipc.twin.jms + org.opennms.core.ipc.twin + 29.0.0-SNAPSHOT + + 4.0.0 + + twin-jms-itests + + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.common + ${project.version} + test + + + org.opennms.core.ipc.twin.jms + org.opennms.core.ipc.twin.jms.publisher + ${project.version} + test + + + org.opennms.core.ipc.twin.jms + org.opennms.core.ipc.twin.jms.subscriber + ${project.version} + test + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.test + ${project.version} + test + + + org.opennms.core.test-api + org.opennms.core.test-api.activemq + test + + + org.opennms.core.snmp + org.opennms.core.snmp.api + ${project.version} + test + + + org.opennms.core.test-api + org.opennms.core.test-api.snmp + test + + + org.opennms.core.test-api + org.opennms.core.test-api.services + test + + + org.opennms.core.test-api + org.opennms.core.test-api.camel + test + + + org.hamcrest + hamcrest-library + test + + + org.opennms + opennms-dao + test + + + org.opennms + opennms-dao-mock + test + + + \ No newline at end of file diff --git a/core/ipc/twin/jms/itests/src/test/java/org/opennms/core/ipc/twin/jms/JmsTwinIT.java b/core/ipc/twin/jms/itests/src/test/java/org/opennms/core/ipc/twin/jms/JmsTwinIT.java new file mode 100644 index 000000000000..15fe5376db13 --- /dev/null +++ b/core/ipc/twin/jms/itests/src/test/java/org/opennms/core/ipc/twin/jms/JmsTwinIT.java @@ -0,0 +1,318 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.jms; + +import org.apache.activemq.camel.component.ActiveMQComponent; +import org.apache.camel.CamelContext; +import org.apache.camel.Component; +import org.apache.camel.util.KeyValueHolder; +import org.hamcrest.Matchers; +import org.junit.After; +import org.junit.Before; +import org.junit.ClassRule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.opennms.core.ipc.twin.api.TwinPublisher; +import org.opennms.core.ipc.twin.api.TwinSubscriber; +import org.opennms.core.ipc.twin.jms.publisher.JmsTwinPublisher; +import org.opennms.core.ipc.twin.jms.subscriber.JmsTwinSubscriber; +import org.opennms.core.ipc.twin.test.AbstractTwinBrokerIT; +import org.opennms.core.test.OpenNMSJUnit4ClassRunner; +import org.opennms.core.test.activemq.ActiveMQBroker; +import org.opennms.core.test.camel.CamelBlueprintTest; +import org.opennms.distributed.core.api.MinionIdentity; +import org.opennms.distributed.core.api.SystemType; +import org.opennms.netmgt.snmp.SnmpV3User; +import org.opennms.netmgt.snmp.TrapListenerConfig; +import org.opennms.test.JUnitConfigurationEnvironment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.support.DirtiesContextTestExecutionListener; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Dictionary; +import java.util.Map; +import java.util.Properties; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; + +import static com.jayway.awaitility.Awaitility.await; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.hasItem; +import static org.hamcrest.Matchers.hasItems; +import static org.hamcrest.Matchers.notNullValue; + +@RunWith(OpenNMSJUnit4ClassRunner.class) +@ContextConfiguration(locations={ + "classpath:/META-INF/opennms/applicationContext-soa.xml", + "classpath:/META-INF/opennms/applicationContext-mockDao.xml", + "classpath:/META-INF/opennms/applicationContext-proxy-snmp.xml", + "classpath:/META-INF/opennms/applicationContext-queuingservice-mq-vm.xml", + "classpath:/META-INF/opennms/applicationContext-twin-jms-publisher.xml" +}) +@JUnitConfigurationEnvironment +@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) +@TestExecutionListeners({DirtiesContextTestExecutionListener.class}) +public class JmsTwinIT extends CamelBlueprintTest { + + private static final String REMOTE_LOCATION_NAME = "remote"; + + @ClassRule + public static ActiveMQBroker s_broker = new ActiveMQBroker(); + + @Autowired + private TwinPublisher publisher; + + @Autowired + @Qualifier("twinSinkClient") + private CamelContext sinkCamelContext; + + private TwinSubscriber subscriber; + + @Autowired + @Qualifier("queuingservice") + private ActiveMQComponent queuingservice; + + @Override + protected void addServicesOnStartup(Map> services) { + services.put(MinionIdentity.class.getName(), + new KeyValueHolder(new MinionIdentity() { + @Override + public String getId() { + return "0"; + } + @Override + public String getLocation() { + return REMOTE_LOCATION_NAME; + } + @Override + public String getType() { + return SystemType.Minion.name(); + } + }, new Properties())); + + Properties props = new Properties(); + props.setProperty("alias", "opennms.broker"); + services.put(Component.class.getName(), new KeyValueHolder(queuingservice, props)); + } + + @Override + protected String getBlueprintDescriptor() { + // Blueprint gets loaded by default from the dependencies. + // Specifying blueprint again is leading multiple Twin subscribers. + return "classpath:/OSGI-INF/blueprint/blueprint-empty.xml"; + } + + @Before + public void setUp() throws Exception { + super.setUp(); + subscriber = context.getRegistry().lookupByNameAndType("jmsTwinSubscriber", TwinSubscriber.class); + } + + /** + * Tests that an object can be published and the same object can be received by the subscriber. + */ + @Test + public void testPublishSubscribe() throws Exception { + final var session = publisher.register("test", String.class); + session.publish("Test1"); + + final var tracker = AbstractTwinBrokerIT.Tracker.subscribe(this.subscriber, "test", String.class); + + await().until(tracker::getLog, hasItems("Test1")); + } + + + /** + * Tests that a publisher can update an object and the subscriber will receives all versions. + */ + @Test + public void testUpdates() throws Exception { + final var session = this.publisher.register("test", String.class); + session.publish("Test1"); + + final var tracker = AbstractTwinBrokerIT.Tracker.subscribe(this.subscriber, "test", String.class); + + await().until(tracker::getLog, hasItems("Test1")); + session.publish("Test2"); + session.publish("Test3"); + await().until(tracker::getLog, hasItems("Test1", "Test2", "Test3")); + } + + /** + * Tests that subscription can be closed before registration. + */ + @Test + public void testSubscriberCloseBeforeRegister() throws Exception { + + final var tracker1 = AbstractTwinBrokerIT.Tracker.subscribe(this.subscriber, "test", String.class); + tracker1.close(); + + final var session = this.publisher.register("test", String.class); + session.publish("Test1"); + + final var tracker2 = AbstractTwinBrokerIT.Tracker.subscribe(this.subscriber, "test", String.class); + await().until(tracker2::getLog, hasItems("Test1")); + + assertThat(tracker1.getLog(), empty()); + } + + /** + * Tests that a subscriber can register before a publisher exists. + */ + @Test + public void testSubscribeBeforePublish() throws Exception { + final var tracker = AbstractTwinBrokerIT.Tracker.subscribe(this.subscriber, "test", String.class); + + final var session = this.publisher.register("test", String.class); + session.publish("Test1"); + session.publish("Test2"); + + await().until(tracker::getLog, hasItems("Test1", "Test2")); + } + + /** + * Tests that subscription can be closed and reopened. + */ + @Test + public void testSubscriberClose() throws Exception { + final var session = this.publisher.register("test", String.class); + session.publish("Test1"); + + final var tracker1 = AbstractTwinBrokerIT.Tracker.subscribe(this.subscriber, "test", String.class); + await().until(tracker1::getLog, contains("Test1")); + + tracker1.close(); + + session.publish("Test2"); + session.publish("Test3"); + + final var tracker2 = AbstractTwinBrokerIT.Tracker.subscribe(this.subscriber, "test", String.class); + await().until(tracker2::getLog, hasItems("Test3")); + + assertThat(tracker1.getLog(), hasItems("Test1")); + } + + /** + * Tests that subscription works if publisher gets restarted. + */ + @Test + public void testPublisherRestart() throws Exception { + final var tracker = AbstractTwinBrokerIT.Tracker.subscribe(this.subscriber, "test", String.class); + + final var session = this.publisher.register("test", String.class); + session.publish("Test1"); + session.publish("Test2"); + + await().until(tracker::getLog, hasItems("Test1", "Test2")); + + ((JmsTwinPublisher) publisher).close(); + ((JmsTwinPublisher) publisher).init(); + session.publish("Test3"); + + await().until(tracker::getLog, hasItems("Test1", "Test2", "Test3")); + } + + /** + * Tests that multiple subscriptions exists for the same key. + */ + @Test + public void testMultipleSubscription() throws Exception { + final var tracker1 = AbstractTwinBrokerIT.Tracker.subscribe(this.subscriber, "test", String.class); + + final var session = this.publisher.register("test", String.class); + session.publish("Test1"); + session.publish("Test2"); + + final var tracker2 = AbstractTwinBrokerIT.Tracker.subscribe(this.subscriber, "test", String.class); + + session.publish("Test3"); + + await().until(tracker1::getLog, hasItems("Test1", "Test2", "Test3")); + await().until(tracker2::getLog, hasItems("Test2", "Test3")); + } + + + @Test + public void testPublishWithDifferentLocations() throws IOException, InterruptedException { + final var session = publisher.register("test", String.class, "INVALID-LOCATION"); + final var session2 = publisher.register("test", String.class, REMOTE_LOCATION_NAME); + session.publish("Test1"); + session2.publish("Test2"); + + final var tracker = AbstractTwinBrokerIT.Tracker.subscribe(this.subscriber, "test", String.class); + await().atMost(10, TimeUnit.SECONDS).until(tracker::getLog, hasItems("Test2")); + + // Publishing without location is akin to publishing to all locations + final var session3 = publisher.register("test", String.class); + session3.publish("Test3"); + await().atMost(10, TimeUnit.SECONDS).until(tracker::getLog, hasItems("Test2", "Test3")); + } + + @Test + public void testPublishSubscribeWithTrapdConfig() throws IOException { + final var session = this.publisher.register(TrapListenerConfig.TWIN_KEY, TrapListenerConfig.class); + final var tracker1 = AbstractTwinBrokerIT.Tracker.subscribe(this.subscriber, TrapListenerConfig.TWIN_KEY, TrapListenerConfig.class); + SnmpV3User user = new SnmpV3User("opennmsUser", "MD5", "0p3nNMSv3", + "DES", "0p3nNMSv3"); + TrapListenerConfig trapListenerConfig = new TrapListenerConfig(); + ArrayList users = new ArrayList<>(); + users.add(user); + trapListenerConfig.setSnmpV3Users(users); + session.publish(trapListenerConfig); + await().until(tracker1::getLog, hasItem(trapListenerConfig)); + // Add two users and delete existing one. + TrapListenerConfig updatedConfig = new TrapListenerConfig(); + SnmpV3User user1 = new SnmpV3User("opennmsUser1", "MD5", "0p3nNMSv1", + "DES", "0p3nNMSv1"); + SnmpV3User user2 = new SnmpV3User("opennmsUser2", "MD5", "0p3nNMSv1", + "DES", "0p3nNMSv2"); + users = new ArrayList<>(); + users.add(user1); + users.add(user2); + updatedConfig.setSnmpV3Users(users); + session.publish(updatedConfig); + await().until(tracker1::getLog, hasItem(updatedConfig)); + } + + + @After + public void tearDown() throws Exception { + super.tearDown(); + } + + + + +} diff --git a/core/ipc/twin/jms/itests/src/test/resources/OSGI-INF/blueprint/blueprint-empty.xml b/core/ipc/twin/jms/itests/src/test/resources/OSGI-INF/blueprint/blueprint-empty.xml new file mode 100644 index 000000000000..d09503f326f1 --- /dev/null +++ b/core/ipc/twin/jms/itests/src/test/resources/OSGI-INF/blueprint/blueprint-empty.xml @@ -0,0 +1,13 @@ + + + diff --git a/core/ipc/twin/jms/pom.xml b/core/ipc/twin/jms/pom.xml new file mode 100644 index 000000000000..436e907e21f2 --- /dev/null +++ b/core/ipc/twin/jms/pom.xml @@ -0,0 +1,21 @@ + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.jms + pom + OpenNMS :: Core :: IPC :: Twin :: JMS + + publisher + subscriber + itests + + \ No newline at end of file diff --git a/core/ipc/twin/jms/publisher/pom.xml b/core/ipc/twin/jms/publisher/pom.xml new file mode 100644 index 000000000000..e7264716cffe --- /dev/null +++ b/core/ipc/twin/jms/publisher/pom.xml @@ -0,0 +1,81 @@ + + + + org.opennms.core.ipc.twin.jms + org.opennms.core.ipc.twin + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin.jms + org.opennms.core.ipc.twin.jms.publisher + bundle + OpenNMS :: Core :: IPC :: Twin :: JMS :: Publisher + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + + + + + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.common + ${project.version} + + + org.opennms.core + org.opennms.core.camel + + + org.apache.camel + camel-jms + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + org.springframework + spring-expression + + + org.springframework + spring-jms + + + org.springframework + spring-aop + + + org.springframework + spring-tx + + + com.sun.xml.bind + jaxb-impl + + + + + \ No newline at end of file diff --git a/core/ipc/twin/jms/publisher/src/main/java/org/opennms/core/ipc/twin/jms/publisher/ConditionalJmsTwinContext.java b/core/ipc/twin/jms/publisher/src/main/java/org/opennms/core/ipc/twin/jms/publisher/ConditionalJmsTwinContext.java new file mode 100644 index 000000000000..03f60231dc4b --- /dev/null +++ b/core/ipc/twin/jms/publisher/src/main/java/org/opennms/core/ipc/twin/jms/publisher/ConditionalJmsTwinContext.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.jms.publisher; + +import org.opennms.core.ipc.twin.api.TwinStrategy; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.ConditionContext; +import org.springframework.context.annotation.Conditional; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ConfigurationCondition; +import org.springframework.context.annotation.ImportResource; +import org.springframework.core.type.AnnotatedTypeMetadata; + +import static org.opennms.core.ipc.twin.api.TwinStrategy.Strategy.JMS; + +@Configuration +@Conditional(ConditionalJmsTwinContext.Condition.class) +@ImportResource("/META-INF/opennms/applicationContext-twin-jms-publisher.xml") +public class ConditionalJmsTwinContext { + + private static final Logger LOG = LoggerFactory.getLogger(ConditionalJmsTwinContext.class); + + static class Condition implements ConfigurationCondition { + @Override + public ConfigurationPhase getConfigurationPhase() { + return ConfigurationPhase.PARSE_CONFIGURATION; + } + + @Override + public boolean matches(final ConditionContext context, final AnnotatedTypeMetadata metadata) { + final boolean enabled = JMS.equals(TwinStrategy.getTwinStrategy()); + LOG.debug("Enable JMS Twin: {}", enabled); + return enabled; + } + } +} diff --git a/core/ipc/twin/jms/publisher/src/main/java/org/opennms/core/ipc/twin/jms/publisher/JmsTwinPublisher.java b/core/ipc/twin/jms/publisher/src/main/java/org/opennms/core/ipc/twin/jms/publisher/JmsTwinPublisher.java new file mode 100644 index 000000000000..85b8eee48572 --- /dev/null +++ b/core/ipc/twin/jms/publisher/src/main/java/org/opennms/core/ipc/twin/jms/publisher/JmsTwinPublisher.java @@ -0,0 +1,151 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.jms.publisher; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import org.apache.camel.AsyncCallback; +import org.apache.camel.AsyncProcessor; +import org.apache.camel.CamelContext; +import org.apache.camel.Endpoint; +import org.apache.camel.EndpointInject; +import org.apache.camel.Exchange; +import org.apache.camel.ExchangePattern; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.jms.JmsEndpoint; +import org.opennms.core.ipc.twin.common.AbstractTwinPublisher; +import org.opennms.core.ipc.twin.common.LocalTwinSubscriber; +import org.opennms.core.ipc.twin.common.TwinRequest; +import org.opennms.core.ipc.twin.common.TwinUpdate; +import org.opennms.core.ipc.twin.model.TwinResponseProto; +import org.opennms.core.utils.SystemInfoUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadFactory; + +public class JmsTwinPublisher extends AbstractTwinPublisher implements AsyncProcessor { + + private final ThreadFactory threadFactory = new ThreadFactoryBuilder() + .setNameFormat("jms-twin-publisher-%d") + .build(); + + private static final String TWIN_QUEUE_NAME_FORMAT = "%s.%s"; + + private static final Logger LOG = LoggerFactory.getLogger(JmsTwinPublisher.class); + + public static String JMS_QUEUE_NAME_HEADER = "JmsQueueName"; + + private CamelContext rpcCamelContext; + + private final ExecutorService executor = Executors.newFixedThreadPool(10, threadFactory); + + @EndpointInject(uri = "direct:sendTwinUpdate", context = "twinSinkClient") + private ProducerTemplate template; + + @EndpointInject(uri = "direct:sendTwinUpdate", context = "twinSinkClient") + private Endpoint endpoint; + + public JmsTwinPublisher(CamelContext camelContext, LocalTwinSubscriber twinSubscriber) { + super(twinSubscriber); + this.rpcCamelContext = camelContext; + } + + @Override + protected void handleSinkUpdate(TwinUpdate sinkUpdate) { + try { + TwinResponseProto twinResponseProto = mapTwinResponse(sinkUpdate); + Map headers = new HashMap<>(); + String queueName = String.format(TWIN_QUEUE_NAME_FORMAT, SystemInfoUtils.getInstanceId(), "Twin.Sink"); + headers.put(JMS_QUEUE_NAME_HEADER, queueName); + template.sendBodyAndHeaders(twinResponseProto.toByteArray(), headers); + } catch (Exception e) { + LOG.error("Exception while sending update for key {} at location {} ", sinkUpdate.getKey(), sinkUpdate.getLocation()); + } + } + + public void init() throws Exception { + rpcCamelContext.addRoutes(new RpcRouteBuilder(this, rpcCamelContext)); + LOG.info("JMS Twin publisher initialized"); + } + + public void close() throws IOException { + executor.shutdownNow(); + LOG.info("JMS Twin publisher stopped"); + } + + @Override + public boolean process(Exchange exchange, AsyncCallback callback) { + byte[] requestBytes = exchange.getIn().getBody(byte[].class); + CompletableFuture.runAsync(() -> { + try { + TwinRequest twinRequest = mapTwinRequestProto(requestBytes); + TwinUpdate twinUpdate = getTwin(twinRequest); + TwinResponseProto twinResponseProto = mapTwinResponse(twinUpdate); + exchange.getOut().setBody(twinResponseProto.toByteArray()); + callback.done(false); + } catch (Exception e) { + LOG.error("Exception while processing request", e); + } + }, executor); + return false; + } + + @Override + public void process(Exchange exchange) throws Exception { + // Ensure that only async. calls are made. + throw new UnsupportedOperationException("This processor must be invoked using the async interface."); + } + + private class RpcRouteBuilder extends RouteBuilder { + + private final AsyncProcessor asyncProcessor; + + private RpcRouteBuilder(AsyncProcessor asyncProcessor, CamelContext camelContext) { + super(camelContext); + this.asyncProcessor = asyncProcessor; + } + + @Override + public void configure() throws Exception { + String queueName = String.format(TWIN_QUEUE_NAME_FORMAT, SystemInfoUtils.getInstanceId(), "Twin.RPC"); + final JmsEndpoint endpoint = getContext().getEndpoint(String.format("queuingservice:%s?asyncConsumer=true", + queueName), JmsEndpoint.class); + from(endpoint).setExchangePattern(ExchangePattern.InOut) + .process(asyncProcessor) + .routeId(SystemInfoUtils.getInstanceId() + ".Twin.RPC"); + } + } +} diff --git a/core/ipc/twin/jms/publisher/src/main/resources/META-INF/opennms/applicationContext-twin-jms-publisher.xml b/core/ipc/twin/jms/publisher/src/main/resources/META-INF/opennms/applicationContext-twin-jms-publisher.xml new file mode 100644 index 000000000000..ebe558ecb3e3 --- /dev/null +++ b/core/ipc/twin/jms/publisher/src/main/resources/META-INF/opennms/applicationContext-twin-jms-publisher.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + queuingservice:topic:${header.JmsQueueName} + + + + diff --git a/core/ipc/twin/jms/publisher/src/main/resources/META-INF/opennms/component-dao.xml b/core/ipc/twin/jms/publisher/src/main/resources/META-INF/opennms/component-dao.xml new file mode 100644 index 000000000000..71bc5f71edce --- /dev/null +++ b/core/ipc/twin/jms/publisher/src/main/resources/META-INF/opennms/component-dao.xml @@ -0,0 +1,13 @@ + + + + + + + diff --git a/core/ipc/twin/jms/subscriber/pom.xml b/core/ipc/twin/jms/subscriber/pom.xml new file mode 100644 index 000000000000..f099140f816c --- /dev/null +++ b/core/ipc/twin/jms/subscriber/pom.xml @@ -0,0 +1,81 @@ + + + + org.opennms.core.ipc.twin.jms + org.opennms.core.ipc.twin + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin.jms + org.opennms.core.ipc.twin.jms.subscriber + bundle + OpenNMS :: Core :: IPC :: Twin :: JMS :: Subscriber + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + + + + + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.common + ${project.version} + + + org.opennms.core + org.opennms.core.camel + + + org.apache.camel + camel-jms + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + org.springframework + spring-expression + + + org.springframework + spring-jms + + + org.springframework + spring-aop + + + org.springframework + spring-tx + + + com.sun.xml.bind + jaxb-impl + + + + + \ No newline at end of file diff --git a/core/ipc/twin/jms/subscriber/src/main/java/org/opennms/core/ipc/twin/jms/subscriber/JmsTwinRpcPreProcessor.java b/core/ipc/twin/jms/subscriber/src/main/java/org/opennms/core/ipc/twin/jms/subscriber/JmsTwinRpcPreProcessor.java new file mode 100644 index 000000000000..98dfc1c055ae --- /dev/null +++ b/core/ipc/twin/jms/subscriber/src/main/java/org/opennms/core/ipc/twin/jms/subscriber/JmsTwinRpcPreProcessor.java @@ -0,0 +1,45 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.jms.subscriber; + +import org.apache.camel.Exchange; +import org.apache.camel.Processor; +import org.opennms.core.utils.SystemInfoUtils; + +public class JmsTwinRpcPreProcessor implements Processor { + + public static String JMS_QUEUE_NAME_HEADER = "JmsQueueName"; + private static final String TWIN_QUEUE_NAME_FORMAT = "%s.%s"; + + @Override + public void process(Exchange exchange) throws Exception { + String queueName = String.format(TWIN_QUEUE_NAME_FORMAT, SystemInfoUtils.getInstanceId(), "Twin.RPC"); + exchange.getIn().setHeader(JMS_QUEUE_NAME_HEADER, queueName); + } +} diff --git a/core/ipc/twin/jms/subscriber/src/main/java/org/opennms/core/ipc/twin/jms/subscriber/JmsTwinSubscriber.java b/core/ipc/twin/jms/subscriber/src/main/java/org/opennms/core/ipc/twin/jms/subscriber/JmsTwinSubscriber.java new file mode 100644 index 000000000000..a1081e175d75 --- /dev/null +++ b/core/ipc/twin/jms/subscriber/src/main/java/org/opennms/core/ipc/twin/jms/subscriber/JmsTwinSubscriber.java @@ -0,0 +1,161 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.jms.subscriber; + +import java.io.IOException; + +import org.apache.camel.CamelContext; +import org.apache.camel.Component; +import org.apache.camel.Endpoint; +import org.apache.camel.EndpointInject; +import org.apache.camel.Exchange; +import org.apache.camel.ExchangePattern; +import org.apache.camel.Processor; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.jms.JmsEndpoint; +import org.apache.camel.impl.DefaultCamelContext; +import org.apache.camel.spi.Synchronization; +import org.opennms.core.ipc.twin.common.AbstractTwinSubscriber; +import org.opennms.core.ipc.twin.common.TwinRequest; +import org.opennms.core.ipc.twin.common.TwinUpdate; +import org.opennms.core.ipc.twin.model.TwinRequestProto; +import org.opennms.core.utils.SystemInfoUtils; +import org.opennms.distributed.core.api.MinionIdentity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class JmsTwinSubscriber extends AbstractTwinSubscriber implements Processor { + + private static final String TWIN_QUEUE_NAME_FORMAT = "%s.%s"; + private static final Logger LOG = LoggerFactory.getLogger(JmsTwinSubscriber.class); + + @EndpointInject(uri = "direct:twinRpc", context = "twinRpcClient") + private ProducerTemplate template; + + @EndpointInject(uri = "direct:twinRpc", context = "twinRpcClient") + private Endpoint endpoint; + + private final Component queuingservice; + // Logging control from Camel context. + private final String debugMaxChar; + + /* + Two blueprint camel contexts couldn't be started from the same blueprint + */ + private final CamelContext sinkCamelContext = new DefaultCamelContext(); + + public JmsTwinSubscriber(MinionIdentity minionIdentity, Component queuingservice, String debugMaxChar) { + super(minionIdentity); + this.queuingservice = queuingservice; + this.debugMaxChar = debugMaxChar; + } + + @Override + protected void sendRpcRequest(TwinRequest twinRequest) { + try { + TwinRequestProto twinRequestProto = mapTwinRequestToProto(twinRequest); + LOG.trace("Sent RPC request for consumer key {} ", twinRequestProto.getConsumerKey()); + template.asyncCallbackSendBody(endpoint, twinRequestProto.toByteArray(), new Synchronization() { + @Override + public void onComplete(Exchange exchange) { + try { + byte[] response = exchange.getOut().getBody(byte[].class); + TwinUpdate twinUpdate = mapTwinResponseToProto(response); + if (twinUpdate.getLocation() == null || + twinUpdate.getLocation().equals(getMinionIdentity().getLocation())) { + LOG.trace("Received TwinUpdate as RPC reply {}", twinUpdate); + accept(twinUpdate); + } + } catch (Exception e) { + LOG.error("Failed to process twin update for the key {} ", twinRequest.getKey(), e); + } + } + + @Override + public void onFailure(Exchange exchange) { + // Nothing to do when there is a failure as we don't have any timeouts here. + } + }); + } catch (Exception e) { + LOG.error("Exception while sending request with key {}", twinRequest.getKey()); + } + } + + public void init() throws Exception { + sinkCamelContext.addComponent("queuingservice", queuingservice); + sinkCamelContext.getGlobalOptions().put(Exchange.LOG_DEBUG_BODY_MAX_CHARS, debugMaxChar); + sinkCamelContext.addRoutes(new SinkRouteBuilder(this)); + sinkCamelContext.start(); + LOG.info("JMS Twin subscriber initialized"); + } + + public void close() throws IOException { + super.close(); + + try { + sinkCamelContext.stop(); + } catch (final Exception e) { + throw new IOException(e); + } + + LOG.info("JMS Twin subscriber stopped"); + } + + @Override + public void process(Exchange exchange) throws Exception { + byte[] sinkUpdateBytes = exchange.getIn().getBody(byte[].class); + TwinUpdate twinUpdate = mapTwinResponseToProto(sinkUpdateBytes); + if (twinUpdate.getLocation() == null || + twinUpdate.getLocation().equals(getMinionIdentity().getLocation())) { + LOG.trace("Received TwinResponse as sink update {}", twinUpdate); + accept(twinUpdate); + } + } + + private class SinkRouteBuilder extends RouteBuilder { + + private final Processor processor; + + private SinkRouteBuilder(Processor processor) { + super(sinkCamelContext); + this.processor = processor; + } + + @Override + public void configure() throws Exception { + String queueName = String.format(TWIN_QUEUE_NAME_FORMAT, SystemInfoUtils.getInstanceId(), "Twin.Sink"); + final JmsEndpoint endpoint = getContext().getEndpoint(String.format("queuingservice:topic:%s", + queueName), JmsEndpoint.class); + from(endpoint).setExchangePattern(ExchangePattern.InOnly) + .process(processor) + .routeId(SystemInfoUtils.getInstanceId() + ".Twin.Sink"); + } + } +} diff --git a/core/ipc/twin/jms/subscriber/src/main/resources/OSGI-INF/blueprint/blueprint-twin-subscriber.xml b/core/ipc/twin/jms/subscriber/src/main/resources/OSGI-INF/blueprint/blueprint-twin-subscriber.xml new file mode 100644 index 000000000000..bbde13fa0664 --- /dev/null +++ b/core/ipc/twin/jms/subscriber/src/main/resources/OSGI-INF/blueprint/blueprint-twin-subscriber.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + queuingservice:${header.JmsQueueName} + + + + + + diff --git a/core/ipc/twin/kafka/common/pom.xml b/core/ipc/twin/kafka/common/pom.xml new file mode 100644 index 000000000000..60f403580611 --- /dev/null +++ b/core/ipc/twin/kafka/common/pom.xml @@ -0,0 +1,57 @@ + + + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin.kafka.common + OpenNMS :: Core :: IPC :: Twin :: Kafka :: Common + bundle + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + + + + + + + + org.osgi + osgi.cmpn + provided + + + org.osgi + osgi.core + provided + + + org.opennms.core.ipc.common + org.opennms.core.ipc.common.kafka + ${project.version} + + + org.slf4j + slf4j-api + + + org.opennms.core + org.opennms.core.logging + + + diff --git a/core/ipc/twin/kafka/common/src/main/java/org/opennms/core/ipc/twin/kafka/common/KafkaConsumerRunner.java b/core/ipc/twin/kafka/common/src/main/java/org/opennms/core/ipc/twin/kafka/common/KafkaConsumerRunner.java new file mode 100644 index 000000000000..fb9ed076b96b --- /dev/null +++ b/core/ipc/twin/kafka/common/src/main/java/org/opennms/core/ipc/twin/kafka/common/KafkaConsumerRunner.java @@ -0,0 +1,95 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.kafka.common; + +import java.io.Closeable; +import java.time.Duration; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Consumer; + +import org.apache.kafka.clients.consumer.ConsumerRecord; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.apache.kafka.common.errors.WakeupException; +import org.opennms.core.logging.Logging; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class KafkaConsumerRunner implements Runnable, Closeable { + private static final Logger LOG = LoggerFactory.getLogger(KafkaConsumerRunner.class); + + private final AtomicBoolean closed = new AtomicBoolean(false); + + private final KafkaConsumer consumer; + + private final Consumer> handler; + + private final Thread thread; + + public KafkaConsumerRunner(final KafkaConsumer consumer, + final Consumer> handler, + final String name) { + this.consumer = Objects.requireNonNull(consumer); + this.handler = Objects.requireNonNull(handler); + + this.consumer.commitSync(); + + this.thread = new Thread(this, "kafka-consumer:" + name); + this.thread.start(); + } + + public void close() { + this.closed.set(true); + this.consumer.wakeup(); + + try { + this.thread.join(); + } catch (InterruptedException e) { + LOG.error("Consumer thread interrupted", e); + } + } + + @Override + public void run() { + Logging.putPrefix("twin"); + + try { + while (!this.closed.get()) { + for (final var record : this.consumer.poll(Duration.ofMillis(100))) { + this.handler.accept(record); + } + } + } catch (final WakeupException e) { + // Ignored + } finally { + this.consumer.unsubscribe(); + this.consumer.close(); + } + } +} diff --git a/core/ipc/twin/kafka/common/src/main/java/org/opennms/core/ipc/twin/kafka/common/Topic.java b/core/ipc/twin/kafka/common/src/main/java/org/opennms/core/ipc/twin/kafka/common/Topic.java new file mode 100644 index 000000000000..168477103a93 --- /dev/null +++ b/core/ipc/twin/kafka/common/src/main/java/org/opennms/core/ipc/twin/kafka/common/Topic.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.kafka.common; + +import java.util.Objects; + +public class Topic { + private final static String PREFIX = "twin"; + + private final static String REQUEST = "request"; + private final static String RESPONSE = "response"; + + private Topic() {} + + public static String request() { + return String.format("%s.%s", Topic.PREFIX, Topic.REQUEST); + } + + public static String responseGlobal() { + return String.format("%s.%s", Topic.PREFIX, Topic.RESPONSE); + } + + public static String responseForLocation(final String location) { + Objects.requireNonNull(location); + + return String.format("%s.%s.%s", Topic.PREFIX, Topic.RESPONSE, location); + } +} diff --git a/core/ipc/twin/kafka/itests/pom.xml b/core/ipc/twin/kafka/itests/pom.xml new file mode 100644 index 000000000000..b64f5efcca53 --- /dev/null +++ b/core/ipc/twin/kafka/itests/pom.xml @@ -0,0 +1,82 @@ + + + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin.kafka.itests + OpenNMS :: Core :: IPC :: Twin :: Kafka :: Integration Tests + + + org.osgi + osgi.cmpn + provided + + + org.osgi + osgi.core + provided + + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin.kafka.publisher + ${project.version} + test + + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin.kafka.subscriber + ${project.version} + test + + + com.google.guava + guava + ${guavagRPCVersion} + + + junit + junit + test + + + com.jayway.awaitility + awaitility + test + + + org.mockito + mockito-core + test + + + org.opennms.core.test-api + org.opennms.core.test-api.kafka + test + ${project.version} + + + org.opennms.core.test-api + org.opennms.core.test-api.snmp + test + + + org.opennms.core.test-api + org.opennms.core.test-api.services + test + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.test + ${project.version} + test + + + + diff --git a/core/ipc/twin/kafka/itests/src/test/java/org/opennms/core/ipc/twin/kafka/KafkaTwinIT.java b/core/ipc/twin/kafka/itests/src/test/java/org/opennms/core/ipc/twin/kafka/KafkaTwinIT.java new file mode 100644 index 000000000000..1ae5c49e9604 --- /dev/null +++ b/core/ipc/twin/kafka/itests/src/test/java/org/opennms/core/ipc/twin/kafka/KafkaTwinIT.java @@ -0,0 +1,99 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.kafka; + +import java.util.Properties; + +import org.junit.Rule; +import org.junit.runner.RunWith; +import org.opennms.core.ipc.common.kafka.KafkaConfigProvider; +import org.opennms.core.ipc.twin.api.TwinPublisher; +import org.opennms.core.ipc.twin.api.TwinSubscriber; +import org.opennms.core.ipc.twin.common.LocalTwinSubscriberImpl; +import org.opennms.core.ipc.twin.kafka.publisher.KafkaTwinPublisher; +import org.opennms.core.ipc.twin.kafka.subscriber.KafkaTwinSubscriber; +import org.opennms.core.ipc.twin.test.AbstractTwinBrokerIT; +import org.opennms.core.test.OpenNMSJUnit4ClassRunner; +import org.opennms.core.test.kafka.JUnitKafkaServer; +import org.opennms.core.utils.SystemInfoUtils; +import org.opennms.distributed.core.api.MinionIdentity; +import org.opennms.test.JUnitConfigurationEnvironment; +import org.springframework.test.context.ContextConfiguration; + +@RunWith(OpenNMSJUnit4ClassRunner.class) +@ContextConfiguration(locations={ + "classpath:/META-INF/opennms/applicationContext-soa.xml", +}) +@JUnitConfigurationEnvironment +public class KafkaTwinIT extends AbstractTwinBrokerIT { + + @Rule + public JUnitKafkaServer kafkaServer = new JUnitKafkaServer(); + + @Override + protected TwinPublisher createPublisher() throws Exception { + final KafkaConfigProvider config = () -> { + final var properties = new Properties(); + properties.put("bootstrap.servers", kafkaServer.getKafkaConnectString()); + properties.put("group.id", SystemInfoUtils.getInstanceId()); + return properties; + }; + + final var kafkaTwinPublisher = new KafkaTwinPublisher(new LocalTwinSubscriberImpl(), config); + kafkaTwinPublisher.init(); + + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + return kafkaTwinPublisher; + } + + @Override + protected TwinSubscriber createSubscriber(final MinionIdentity identity) { + final KafkaConfigProvider config = () -> { + final var properties = new Properties(); + properties.put("bootstrap.servers", kafkaServer.getKafkaConnectString()); + return properties; + }; + + final var kafkaTwinSubscriber = new KafkaTwinSubscriber(identity, config); + kafkaTwinSubscriber.init(); + + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + return kafkaTwinSubscriber; + } +} diff --git a/core/ipc/twin/kafka/pom.xml b/core/ipc/twin/kafka/pom.xml new file mode 100644 index 000000000000..dea8f3e98e5b --- /dev/null +++ b/core/ipc/twin/kafka/pom.xml @@ -0,0 +1,23 @@ + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.kafka + pom + OpenNMS :: Core :: IPC :: Twin :: Kafka + + common + publisher + subscriber + itests + + + diff --git a/core/ipc/twin/kafka/publisher/pom.xml b/core/ipc/twin/kafka/publisher/pom.xml new file mode 100644 index 000000000000..c266858be35c --- /dev/null +++ b/core/ipc/twin/kafka/publisher/pom.xml @@ -0,0 +1,76 @@ + + + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin.kafka.publisher + OpenNMS :: Core :: IPC :: Twin :: Kafka :: Publisher + bundle + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + + + + + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.common + ${project.version} + + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin.kafka.common + ${project.version} + + + org.opennms.core.ipc.common + org.opennms.core.ipc.common.kafka + ${project.version} + + + org.osgi + osgi.cmpn + provided + + + org.osgi + osgi.core + provided + + + org.slf4j + slf4j-api + + + org.opennms.core + org.opennms.core.logging + + + org.opennms.core + org.opennms.core.lib + + + com.swrve + rate-limited-logger + ${rateLimitedLoggerVersion} + + + diff --git a/core/ipc/twin/kafka/publisher/src/main/java/org/opennms/core/ipc/twin/kafka/publisher/ConditionalKafkaTwinContext.java b/core/ipc/twin/kafka/publisher/src/main/java/org/opennms/core/ipc/twin/kafka/publisher/ConditionalKafkaTwinContext.java new file mode 100644 index 000000000000..666a8b128844 --- /dev/null +++ b/core/ipc/twin/kafka/publisher/src/main/java/org/opennms/core/ipc/twin/kafka/publisher/ConditionalKafkaTwinContext.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.kafka.publisher; + +import static org.opennms.core.ipc.twin.api.TwinStrategy.Strategy.KAFKA; + +import org.opennms.core.ipc.twin.api.TwinStrategy; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.ConditionContext; +import org.springframework.context.annotation.Conditional; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ConfigurationCondition; +import org.springframework.context.annotation.ImportResource; +import org.springframework.core.type.AnnotatedTypeMetadata; + +@Configuration +@Conditional(ConditionalKafkaTwinContext.Condition.class) +@ImportResource("/META-INF/opennms/applicationContext-twin-kafka-publisher.xml") +public class ConditionalKafkaTwinContext { + + private static final Logger LOG = LoggerFactory.getLogger(ConditionalKafkaTwinContext.class); + + static class Condition implements ConfigurationCondition { + @Override + public ConfigurationPhase getConfigurationPhase() { + return ConfigurationPhase.PARSE_CONFIGURATION; + } + + @Override + public boolean matches(final ConditionContext context, final AnnotatedTypeMetadata metadata) { + final boolean enabled = KAFKA.equals(TwinStrategy.getTwinStrategy()); + LOG.debug("Enable Kafka Twin: {}", enabled); + return enabled; + } + } +} diff --git a/core/ipc/twin/kafka/publisher/src/main/java/org/opennms/core/ipc/twin/kafka/publisher/KafkaTwinPublisher.java b/core/ipc/twin/kafka/publisher/src/main/java/org/opennms/core/ipc/twin/kafka/publisher/KafkaTwinPublisher.java new file mode 100644 index 000000000000..aae9fdfd3b13 --- /dev/null +++ b/core/ipc/twin/kafka/publisher/src/main/java/org/opennms/core/ipc/twin/kafka/publisher/KafkaTwinPublisher.java @@ -0,0 +1,148 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.kafka.publisher; + +import java.io.IOException; +import java.time.Duration; +import java.util.Objects; +import java.util.Properties; + +import org.apache.kafka.clients.consumer.ConsumerConfig; +import org.apache.kafka.clients.consumer.ConsumerRecord; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerConfig; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.common.serialization.ByteArrayDeserializer; +import org.apache.kafka.common.serialization.ByteArraySerializer; +import org.apache.kafka.common.serialization.StringDeserializer; +import org.apache.kafka.common.serialization.StringSerializer; +import org.opennms.core.ipc.common.kafka.KafkaConfigProvider; +import org.opennms.core.ipc.common.kafka.KafkaTwinConstants; +import org.opennms.core.ipc.common.kafka.OnmsKafkaConfigProvider; +import org.opennms.core.ipc.common.kafka.Utils; +import org.opennms.core.ipc.twin.common.AbstractTwinPublisher; +import org.opennms.core.ipc.twin.common.LocalTwinSubscriber; +import org.opennms.core.ipc.twin.common.TwinRequest; +import org.opennms.core.ipc.twin.common.TwinUpdate; +import org.opennms.core.ipc.twin.kafka.common.KafkaConsumerRunner; +import org.opennms.core.ipc.twin.kafka.common.Topic; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Strings; +import com.google.common.collect.ImmutableList; +import com.swrve.ratelimitedlogger.RateLimitedLog; + +public class KafkaTwinPublisher extends AbstractTwinPublisher { + private static final Logger LOG = LoggerFactory.getLogger(KafkaTwinPublisher.class); + + private static final RateLimitedLog RATE_LIMITED_LOG = RateLimitedLog + .withRateLimit(LOG) + .maxRate(5).every(Duration.ofSeconds(30)) + .build(); + + private final KafkaConfigProvider kafkaConfigProvider; + + private KafkaProducer producer; + private KafkaConsumerRunner consumerRunner; + + public KafkaTwinPublisher(final LocalTwinSubscriber localTwinSubscriber) { + this(localTwinSubscriber, new OnmsKafkaConfigProvider(KafkaTwinConstants.KAFKA_CONFIG_SYS_PROP_PREFIX)); + } + + public KafkaTwinPublisher(final LocalTwinSubscriber localTwinSubscriber, + final KafkaConfigProvider kafkaConfigProvider) { + super(localTwinSubscriber); + this.kafkaConfigProvider = Objects.requireNonNull(kafkaConfigProvider); + } + + public void init() throws IOException { + final var kafkaConfig = new Properties(); + kafkaConfig.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, true); + kafkaConfig.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "1000"); + kafkaConfig.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); + kafkaConfig.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getCanonicalName()); + kafkaConfig.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, ByteArrayDeserializer.class.getCanonicalName()); + kafkaConfig.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getCanonicalName()); + kafkaConfig.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, ByteArraySerializer.class.getCanonicalName()); + kafkaConfig.putAll(kafkaConfigProvider.getProperties()); + + LOG.debug("Initialized kafka twin publisher with {}", kafkaConfig); + this.producer = Utils.runWithGivenClassLoader(() -> new KafkaProducer<>(kafkaConfig), KafkaProducer.class.getClassLoader()); + + final KafkaConsumer consumer = Utils.runWithGivenClassLoader(() -> new KafkaConsumer<>(kafkaConfig), KafkaProducer.class.getClassLoader()); + consumer.subscribe(ImmutableList.builder() + .add(Topic.request()) + .build()); + + this.consumerRunner = new KafkaConsumerRunner(consumer, this::handleMessage, "twin-publisher"); + } + + public void close() throws IOException { + + if (this.consumerRunner != null) { + this.consumerRunner.close(); + } + + if (this.producer != null) { + this.producer.close(); + } + } + + @Override + protected void handleSinkUpdate(final TwinUpdate sinkUpdate) { + try { + final var topic = Strings.isNullOrEmpty(sinkUpdate.getLocation()) + ? Topic.responseGlobal() + : Topic.responseForLocation(sinkUpdate.getLocation()); + + final var proto = mapTwinResponse(sinkUpdate); + + final var record = new ProducerRecord<>(topic, sinkUpdate.getKey(), proto.toByteArray()); + this.producer.send(record, (meta, ex) -> { + if (ex != null) { + RATE_LIMITED_LOG.error("Error publishing update", ex); + } + }); + } catch (Exception e) { + LOG.error("Exception while sending update for key {} at location {} ", sinkUpdate.getKey(), sinkUpdate.getLocation()); + } + } + + private void handleMessage(final ConsumerRecord record) { + try { + final TwinRequest request = mapTwinRequestProto(record.value()); + final var response = this.getTwin(request); + this.handleSinkUpdate(response); + } catch (Exception e) { + LOG.error("Exception while processing request", e); + } + } +} diff --git a/core/ipc/twin/kafka/publisher/src/main/resources/META-INF/opennms/applicationContext-twin-kafka-publisher.xml b/core/ipc/twin/kafka/publisher/src/main/resources/META-INF/opennms/applicationContext-twin-kafka-publisher.xml new file mode 100644 index 000000000000..ad155a66498b --- /dev/null +++ b/core/ipc/twin/kafka/publisher/src/main/resources/META-INF/opennms/applicationContext-twin-kafka-publisher.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/core/ipc/twin/kafka/publisher/src/main/resources/META-INF/opennms/component-dao.xml b/core/ipc/twin/kafka/publisher/src/main/resources/META-INF/opennms/component-dao.xml new file mode 100644 index 000000000000..1f4101803b55 --- /dev/null +++ b/core/ipc/twin/kafka/publisher/src/main/resources/META-INF/opennms/component-dao.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/core/ipc/twin/kafka/subscriber/pom.xml b/core/ipc/twin/kafka/subscriber/pom.xml new file mode 100644 index 000000000000..6245b3920dd6 --- /dev/null +++ b/core/ipc/twin/kafka/subscriber/pom.xml @@ -0,0 +1,73 @@ + + + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin.kafka.subscriber + OpenNMS :: Core :: IPC :: Twin :: Kafka :: Subscriber + bundle + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + + + + + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.common + ${project.version} + + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin.kafka.common + ${project.version} + + + org.opennms.core.ipc.common + org.opennms.core.ipc.common.kafka + ${project.version} + + + org.osgi + osgi.cmpn + provided + + + org.osgi + osgi.core + provided + + + org.slf4j + slf4j-api + + + org.opennms.core + org.opennms.core.sysprops + ${project.version} + + + com.swrve + rate-limited-logger + ${rateLimitedLoggerVersion} + + + diff --git a/core/ipc/twin/kafka/subscriber/src/main/java/org/opennms/core/ipc/twin/kafka/subscriber/KafkaTwinSubscriber.java b/core/ipc/twin/kafka/subscriber/src/main/java/org/opennms/core/ipc/twin/kafka/subscriber/KafkaTwinSubscriber.java new file mode 100644 index 000000000000..f1d8d9f7e7ff --- /dev/null +++ b/core/ipc/twin/kafka/subscriber/src/main/java/org/opennms/core/ipc/twin/kafka/subscriber/KafkaTwinSubscriber.java @@ -0,0 +1,139 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.kafka.subscriber; + +import java.io.IOException; +import java.time.Duration; +import java.util.Objects; +import java.util.Properties; + +import org.apache.kafka.clients.consumer.ConsumerConfig; +import org.apache.kafka.clients.consumer.ConsumerRecord; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerConfig; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.common.serialization.ByteArrayDeserializer; +import org.apache.kafka.common.serialization.ByteArraySerializer; +import org.apache.kafka.common.serialization.StringDeserializer; +import org.apache.kafka.common.serialization.StringSerializer; +import org.opennms.core.ipc.common.kafka.KafkaConfigProvider; +import org.opennms.core.ipc.common.kafka.Utils; +import org.opennms.core.ipc.twin.common.AbstractTwinSubscriber; +import org.opennms.core.ipc.twin.common.TwinRequest; +import org.opennms.core.ipc.twin.common.TwinUpdate; +import org.opennms.core.ipc.twin.kafka.common.KafkaConsumerRunner; +import org.opennms.core.ipc.twin.kafka.common.Topic; +import org.opennms.core.ipc.twin.model.TwinRequestProto; +import org.opennms.distributed.core.api.MinionIdentity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.collect.ImmutableList; +import com.swrve.ratelimitedlogger.RateLimitedLog; + +public class KafkaTwinSubscriber extends AbstractTwinSubscriber { + private static final Logger LOG = LoggerFactory.getLogger(KafkaTwinSubscriber.class); + + private static final RateLimitedLog RATE_LIMITED_LOG = RateLimitedLog + .withRateLimit(LOG) + .maxRate(5).every(Duration.ofSeconds(30)) + .build(); + + private final KafkaConfigProvider kafkaConfigProvider; + + private KafkaProducer producer; + private KafkaConsumerRunner consumer; + + public KafkaTwinSubscriber(final MinionIdentity identity, final KafkaConfigProvider kafkaConfigProvider) { + super(identity); + this.kafkaConfigProvider = Objects.requireNonNull(kafkaConfigProvider); + } + + public void init() { + final var kafkaConfig = new Properties(); + kafkaConfig.put(ConsumerConfig.GROUP_ID_CONFIG, this.getMinionIdentity().getId()); + kafkaConfig.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, true); + kafkaConfig.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "1000"); + kafkaConfig.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); + kafkaConfig.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getCanonicalName()); + kafkaConfig.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, ByteArrayDeserializer.class.getCanonicalName()); + kafkaConfig.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getCanonicalName()); + kafkaConfig.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, ByteArraySerializer.class.getCanonicalName()); + kafkaConfig.putAll(kafkaConfigProvider.getProperties()); + + LOG.debug("Initialized kafka twin subscriber with {}", kafkaConfig); + this.producer = Utils.runWithGivenClassLoader(() -> new KafkaProducer<>(kafkaConfig), KafkaProducer.class.getClassLoader()); + + final KafkaConsumer consumer = Utils.runWithGivenClassLoader(() -> new KafkaConsumer<>(kafkaConfig), KafkaProducer.class.getClassLoader()); + consumer.subscribe(ImmutableList.builder() + .add(Topic.responseForLocation(this.getMinionIdentity().getLocation())) + .add(Topic.responseGlobal()) + .build()); + + this.consumer = new KafkaConsumerRunner(consumer, this::handleMessage, "twin-subscriber"); + } + + public void close() throws IOException { + super.close(); + + if (this.consumer != null) { + this.consumer.close(); + } + + if (this.producer != null) { + this.producer.close(); + } + } + + @Override + protected void sendRpcRequest(final TwinRequest twinRequest) { + + try { + TwinRequestProto twinRequestProto = mapTwinRequestToProto(twinRequest); + final var record = new ProducerRecord<>(Topic.request(), twinRequest.getKey(), twinRequestProto.toByteArray()); + this.producer.send(record, (meta, ex) -> { + if (ex != null) { + RATE_LIMITED_LOG.error("Error sending request", ex); + } + }); + } catch (Exception e) { + LOG.error("Exception while sending request with key {}", twinRequest.getKey()); + } + } + + private void handleMessage(final ConsumerRecord record) { + try { + final TwinUpdate response = mapTwinResponseToProto(record.value()); + this.accept(response); + } catch (Exception e) { + LOG.error("Exception while processing twin update", e); + } + } +} diff --git a/core/ipc/twin/kafka/subscriber/src/main/resources/OSGI-INF/blueprint/blueprint-twin-subscriber.xml b/core/ipc/twin/kafka/subscriber/src/main/resources/OSGI-INF/blueprint/blueprint-twin-subscriber.xml new file mode 100644 index 000000000000..8c7d80d1ea86 --- /dev/null +++ b/core/ipc/twin/kafka/subscriber/src/main/resources/OSGI-INF/blueprint/blueprint-twin-subscriber.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/ipc/twin/memory/pom.xml b/core/ipc/twin/memory/pom.xml new file mode 100644 index 000000000000..ef5570e295c9 --- /dev/null +++ b/core/ipc/twin/memory/pom.xml @@ -0,0 +1,57 @@ + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc + 29.0.0-SNAPSHOT + + 4.0.0 + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.memory + OpenNMS :: Core :: IPC :: Twin :: In-Memory + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + + + + + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.api + ${project.version} + + + com.google.guava + guava + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.test + ${project.version} + test + + + junit + junit + test + + + com.jayway.awaitility + awaitility + test + + + diff --git a/core/ipc/twin/memory/src/main/java/org/opennms/core/ipc/twin/memory/MemoryTwinPublisher.java b/core/ipc/twin/memory/src/main/java/org/opennms/core/ipc/twin/memory/MemoryTwinPublisher.java new file mode 100644 index 000000000000..ae863eb608e5 --- /dev/null +++ b/core/ipc/twin/memory/src/main/java/org/opennms/core/ipc/twin/memory/MemoryTwinPublisher.java @@ -0,0 +1,215 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.memory; + +import java.io.Closeable; +import java.io.IOException; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Consumer; + +import org.opennms.core.ipc.twin.api.TwinPublisher; + +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; + +public class MemoryTwinPublisher implements TwinPublisher { + + private final Map> sessions = Maps.newConcurrentMap(); + + private final Set> pending = Sets.newConcurrentHashSet(); + + public MemoryTwinPublisher() { + } + + private Optional> findSession(final SessionKey key, final Class clazz) { + var session = this.sessions.get(key); + if (session == null && key.hasLocation()) { + session = this.sessions.get(key.withoutLocation()); + } + + if (session == null) { + return Optional.empty(); + } + if (session.clazz != clazz) { + throw new IllegalStateException("Session has different class: " + key); + } + + return Optional.of((SessionImpl) session); + } + + @Override + public synchronized Session register(final String key, final Class clazz, final String location) throws IOException { + final var sessionKey = new SessionKey(key, location); + + if (this.sessions.containsKey(sessionKey)) { + return (Session) this.sessions.get(sessionKey); + } + + if (sessionKey.hasLocation() && this.sessions.containsKey(sessionKey.withoutLocation())) { + throw new IllegalStateException("Session already registered without location: " + sessionKey); + } + + final var session = new SessionImpl<>(sessionKey, clazz); + this.sessions.put(sessionKey, session); + + // Find all pending subscriptions for this session and attach them + final var pending = this.pending.iterator(); + while (pending.hasNext()) { + final var subscription = pending.next(); + if (Objects.equals(subscription.key, key) && location == null || Objects.equals(subscription.location, location)) { + if (subscription.clazz != clazz) { + throw new IllegalStateException("Session has different class: " + sessionKey); + } + + session.subscribe((Subscription) subscription); + pending.remove(); + } + } + + return session; + } + + public synchronized Subscription subscribe(final String key, final String location, final Class clazz, final Consumer consumer) { + final var subscription = new Subscription(key, location, clazz, consumer); + + // If the key is already registered, we subscribe to the session and publish the current value. + // Otherwise, the subscription is stored as pending. + this.findSession(new SessionKey(key, location), clazz) + .ifPresentOrElse((session) -> session.subscribe(subscription), + () -> this.pending.add(subscription)); + + return subscription; + } + + public static class SessionKey { + public final String key; + public final String location; + + public SessionKey(final String key, final String location) { + this.key = Objects.requireNonNull(key); + this.location = location; + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (!(o instanceof SessionKey)) { + return false; + } + final SessionKey that = (SessionKey) o; + return Objects.equals(this.key, that.key) && + Objects.equals(this.location, that.location); + } + + @Override + public int hashCode() { + return Objects.hash(this.key, this.location); + } + + public SessionKey withoutLocation() { + return new SessionKey(this.key, null); + } + + public boolean hasLocation() { + return this.location != null; + } + } + + private class SessionImpl implements TwinPublisher.Session { + private final SessionKey key; + private final Class clazz; + + private final AtomicReference current = new AtomicReference<>(); + + private final Set> subscriptions = Sets.newConcurrentHashSet(); + + private SessionImpl(final SessionKey key, + final Class clazz) { + this.key = Objects.requireNonNull(key); + this.clazz = Objects.requireNonNull(clazz); + } + + @Override + public void publish(T obj) throws IOException { + this.current.set(obj); + this.subscriptions.forEach(consumer -> consumer.publish(obj)); + } + + @Override + public void close() throws IOException { + MemoryTwinPublisher.this.sessions.remove(this.key); + + this.current.set(null); + } + + public void subscribe(final Subscription subscription) { + this.subscriptions.add(subscription); + + final T current = this.current.get(); + if (current != null) { + subscription.publish(current); + } + } + } + + private class Subscription implements Closeable { + public final String key; + public final String location; + public final Class clazz; + public final Consumer consumer; + + private Subscription(final String key, final String location, final Class clazz, final Consumer consumer) { + this.key = Objects.requireNonNull(key); + this.location = Objects.requireNonNull(location); + this.clazz = Objects.requireNonNull(clazz); + this.consumer = Objects.requireNonNull(consumer); + } + + private void publish(final T t) { + this.consumer.accept(t); + } + + @Override + public void close() throws IOException { + MemoryTwinPublisher.this.pending.remove(this); + MemoryTwinPublisher.this.findSession(new SessionKey(this.key, this.location), this.clazz) + .ifPresent(session -> session.subscriptions.remove(this)); + } + } + + @Override + public void close() { + } +} diff --git a/core/ipc/twin/memory/src/main/java/org/opennms/core/ipc/twin/memory/MemoryTwinSubscriber.java b/core/ipc/twin/memory/src/main/java/org/opennms/core/ipc/twin/memory/MemoryTwinSubscriber.java new file mode 100644 index 000000000000..1a6fd75bf2c4 --- /dev/null +++ b/core/ipc/twin/memory/src/main/java/org/opennms/core/ipc/twin/memory/MemoryTwinSubscriber.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.memory; + +import java.io.Closeable; +import java.util.Objects; +import java.util.function.Consumer; + +import org.opennms.core.ipc.twin.api.TwinSubscriber; + +public class MemoryTwinSubscriber implements TwinSubscriber { + + private final MemoryTwinPublisher publisher; + + private final String location; + + public MemoryTwinSubscriber(final MemoryTwinPublisher publisher, + final String location) { + this.publisher = Objects.requireNonNull(publisher); + this.location = Objects.requireNonNull(location); + } + + @Override + public Closeable subscribe(final String key, final Class clazz, final Consumer consumer) { + return this.publisher.subscribe(key, this.location, clazz, consumer); + } + + @Override + public void close() { + } +} diff --git a/core/ipc/twin/memory/src/main/resources/META-INF/opennms/applicationContext-twin-memory.xml b/core/ipc/twin/memory/src/main/resources/META-INF/opennms/applicationContext-twin-memory.xml new file mode 100644 index 000000000000..de7a17a03d96 --- /dev/null +++ b/core/ipc/twin/memory/src/main/resources/META-INF/opennms/applicationContext-twin-memory.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + diff --git a/core/ipc/twin/memory/src/test/java/org/opennms/core/ipc/twin/memory/MemoryTwinBrokerIT.java b/core/ipc/twin/memory/src/test/java/org/opennms/core/ipc/twin/memory/MemoryTwinBrokerIT.java new file mode 100644 index 000000000000..acb5bc0769bb --- /dev/null +++ b/core/ipc/twin/memory/src/test/java/org/opennms/core/ipc/twin/memory/MemoryTwinBrokerIT.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.memory; + +import org.opennms.core.ipc.twin.api.TwinPublisher; +import org.opennms.core.ipc.twin.api.TwinSubscriber; +import org.opennms.core.ipc.twin.test.AbstractTwinBrokerIT; +import org.opennms.distributed.core.api.MinionIdentity; + +public class MemoryTwinBrokerIT extends AbstractTwinBrokerIT { + + // This is a special case: The in-memory broker is assumed to be a singleton for the application lifetime. As the + // subscriptions can be local only, they are expected to be lost on a restart. + private final MemoryTwinPublisher broker = new MemoryTwinPublisher(); + + @Override + protected TwinPublisher createPublisher() { + return this.broker; + } + + @Override + protected TwinSubscriber createSubscriber(final MinionIdentity identity) { + return new MemoryTwinSubscriber(this.broker, identity.getLocation()); + } +} diff --git a/core/ipc/twin/pom.xml b/core/ipc/twin/pom.xml new file mode 100644 index 000000000000..3ae0519d6e7c --- /dev/null +++ b/core/ipc/twin/pom.xml @@ -0,0 +1,25 @@ + + + + org.opennms.core.ipc + org.opennms.core + 29.0.0-SNAPSHOT + + 4.0.0 + org.opennms.core.ipc + org.opennms.core.ipc.twin + pom + OpenNMS :: Core :: IPC :: Twin + + api + common + grpc + jms + kafka + test + memory + shell + + diff --git a/core/ipc/twin/shell/pom.xml b/core/ipc/twin/shell/pom.xml new file mode 100644 index 000000000000..44d9d6bcf3d2 --- /dev/null +++ b/core/ipc/twin/shell/pom.xml @@ -0,0 +1,53 @@ + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc + 29.0.0-SNAPSHOT + + 4.0.0 + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.shell + OpenNMS :: Core :: IPC :: Twin :: Shell + bundle + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + * + + + + + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.api + ${project.version} + + + org.apache.karaf.shell + org.apache.karaf.shell.core + + + org.osgi + osgi.enterprise + provided + + + org.opennms.core.snmp + org.opennms.core.snmp.api + + + diff --git a/core/ipc/twin/shell/src/main/java/org/opennms/core/ipc/twin/shell/TwinKeyCompleter.java b/core/ipc/twin/shell/src/main/java/org/opennms/core/ipc/twin/shell/TwinKeyCompleter.java new file mode 100644 index 000000000000..96e3802a079b --- /dev/null +++ b/core/ipc/twin/shell/src/main/java/org/opennms/core/ipc/twin/shell/TwinKeyCompleter.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.shell; + +import org.apache.karaf.shell.api.action.lifecycle.Service; +import org.apache.karaf.shell.api.console.CommandLine; +import org.apache.karaf.shell.api.console.Completer; +import org.apache.karaf.shell.api.console.Session; +import org.apache.karaf.shell.support.completers.StringsCompleter; +import org.opennms.netmgt.snmp.TrapListenerConfig; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class TwinKeyCompleter implements Completer { + + public final static Map> twinClazzMap = new HashMap<>(); + + static { + twinClazzMap.put(TrapListenerConfig.TWIN_KEY, TrapListenerConfig.class); + } + + @Override + public int complete(Session session, CommandLine commandLine, List list) { + StringsCompleter keys = new StringsCompleter(); + keys.getStrings().addAll(twinClazzMap.keySet()); + return keys.complete(session, commandLine, list); + } +} diff --git a/core/ipc/twin/shell/src/main/java/org/opennms/core/ipc/twin/shell/TwinSubscriberCommand.java b/core/ipc/twin/shell/src/main/java/org/opennms/core/ipc/twin/shell/TwinSubscriberCommand.java new file mode 100644 index 000000000000..157ad45f76d7 --- /dev/null +++ b/core/ipc/twin/shell/src/main/java/org/opennms/core/ipc/twin/shell/TwinSubscriberCommand.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.shell; + +import org.apache.karaf.shell.api.action.Action; +import org.apache.karaf.shell.api.action.Argument; +import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.Completion; +import org.apache.karaf.shell.api.action.Option; +import org.apache.karaf.shell.api.action.lifecycle.Reference; +import org.apache.karaf.shell.api.action.lifecycle.Service; +import org.opennms.core.ipc.twin.api.TwinSubscriber; + +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +@Command(scope = "opennms", name = "twin-subscribe", description = "Get current Twin Object for the key specified") +@Service +public class TwinSubscriberCommand implements Action { + + @Reference + private TwinSubscriber twinSubscriber; + + @Argument(index = 0, name = "consumer-key", description = "Consumer key", required = true) + @Completion(TwinKeyCompleter.class) + private String key; + + @Option(name = "-t", aliases = "--timeout in ms", description = "Session timeout before closing session") + private long timeout = 15000; + + @Override + public Object execute() throws Exception { + final var clazz = TwinKeyCompleter.twinClazzMap.get(this.key); + if (clazz == null) { + System.err.println("Unknown key: " + this.key); + return null; + } + + final var received = new CompletableFuture<>(); + + try(final var subscription = twinSubscriber.subscribe(this.key, + clazz, + received::complete)) { + final var result = received.get(this.timeout, TimeUnit.MILLISECONDS); + System.out.println("Object returned for key:" + this.key); + System.out.println(result); + + } catch (final TimeoutException e) { + System.err.println("Timeout"); + } + + return null; + } +} diff --git a/core/ipc/twin/test/pom.xml b/core/ipc/twin/test/pom.xml new file mode 100644 index 000000000000..29307aebfaf9 --- /dev/null +++ b/core/ipc/twin/test/pom.xml @@ -0,0 +1,67 @@ + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc + 29.0.0-SNAPSHOT + + 4.0.0 + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.test + OpenNMS :: Core :: IPC :: Twin :: Test + + + + org.apache.felix + maven-bundle-plugin + true + + + JavaSE-1.8 + ${project.artifactId} + ${project.version} + + + + + + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.api + ${project.version} + + + com.google.guava + guava + + + junit + junit + compile + + + org.opennms.core.snmp + org.opennms.core.snmp.api + ${project.version} + + + com.jayway.awaitility + awaitility + compile + + + org.hamcrest + hamcrest-library + compile + + + org.opennms.features.distributed + core-api + ${project.version} + compile + + + diff --git a/core/ipc/twin/test/src/main/java/org/opennms/core/ipc/twin/test/AbstractTwinBrokerIT.java b/core/ipc/twin/test/src/main/java/org/opennms/core/ipc/twin/test/AbstractTwinBrokerIT.java new file mode 100644 index 000000000000..11221978f461 --- /dev/null +++ b/core/ipc/twin/test/src/main/java/org/opennms/core/ipc/twin/test/AbstractTwinBrokerIT.java @@ -0,0 +1,296 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.test; + +import static com.jayway.awaitility.Awaitility.await; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.hasItem; +import static org.hamcrest.Matchers.hasItems; +import static org.hamcrest.Matchers.not; +import static org.junit.Assert.assertThat; + +import java.io.Closeable; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.opennms.core.ipc.twin.api.TwinPublisher; +import org.opennms.core.ipc.twin.api.TwinSubscriber; +import org.opennms.distributed.core.api.MinionIdentity; +import org.opennms.netmgt.snmp.SnmpV3User; +import org.opennms.netmgt.snmp.TrapListenerConfig; + +public abstract class AbstractTwinBrokerIT { + + protected abstract TwinPublisher createPublisher() throws Exception; + protected abstract TwinSubscriber createSubscriber(final MinionIdentity identity) throws Exception; + + private TwinPublisher publisher; + private TwinSubscriber subscriber; + + private final MinionIdentity standardIdentity = new MockMinionIdentity("remote"); + + @Before + public void setup() throws Exception { + this.publisher = this.createPublisher(); + this.subscriber = this.createSubscriber(this.standardIdentity); + } + + @After + public void teardown() throws Exception { + this.subscriber.close(); + this.publisher.close(); + } + + /** + * Tests that an object can be published and the same object can be received by the subscriber. + */ + @Test + public void testPublishSubscribe() throws Exception { + final var session = this.publisher.register("test", String.class); + session.publish("Test1"); + + final var tracker = Tracker.subscribe(this.subscriber, "test", String.class); + + await().until(tracker::getLog, contains("Test1")); + } + + /** + * Tests that a publisher can update an object and the subscriber will receives all versions. + */ + @Test + public void testUpdates() throws Exception { + final var session = this.publisher.register("test", String.class); + session.publish("Test1"); + + final var tracker = Tracker.subscribe(this.subscriber, "test", String.class); + // Ensure Test1 is received. + await().until(tracker::getLog, contains("Test1")); + + session.publish("Test2"); + session.publish("Test3"); + + await().until(tracker::getLog, contains("Test1", "Test2", "Test3")); + } + + /** + * Tests that a subscriber can register before a publisher exists. + */ + @Test + public void testSubscribeBeforePublish() throws Exception { + final var tracker = Tracker.subscribe(this.subscriber, "test", String.class); + + final var session = this.publisher.register("test", String.class); + session.publish("Test1"); + await().until(tracker::getLog, contains("Test1")); + + session.publish("Test2"); + await().until(tracker::getLog, contains("Test1", "Test2")); + } + + /** + * Tests that multiple subscriptions exists for the same key. + */ + @Test + public void testMultipleSubscription() throws Exception { + final var tracker1 = Tracker.subscribe(this.subscriber, "test", String.class); + + final var session = this.publisher.register("test", String.class); + + session.publish("Test1"); + await().until(tracker1::getLog, contains("Test1")); + + session.publish("Test2"); + await().until(tracker1::getLog, contains("Test1", "Test2")); + + final var tracker2 = Tracker.subscribe(this.subscriber, "test", String.class); + await().until(tracker2::getLog, contains("Test2")); + + session.publish("Test3"); + await().until(tracker1::getLog, contains("Test1", "Test2", "Test3")); + await().until(tracker2::getLog, contains("Test2", "Test3")); + } + + /** + * Tests that multiple subscribers get the same update. + */ + @Test + public void testMultipleSubscribers() throws Exception { + final var session = this.publisher.register("test", String.class); + + final var subscriber1 = this.createSubscriber(new MockMinionIdentity("location_a", "minion_1")); + final var tracker1 = Tracker.subscribe(subscriber1, "test", String.class); + await().until(tracker1::getLog, empty()); + + session.publish("Test1"); + await().until(tracker1::getLog, contains("Test1")); + + session.publish("Test2"); + await().until(tracker1::getLog, contains("Test1", "Test2")); + + final var subscriber2 = this.createSubscriber(new MockMinionIdentity("location_a", "minion_2")); + final var tracker2 = Tracker.subscribe(subscriber2, "test", String.class); + await().until(tracker2::getLog, contains("Test2")); + + session.publish("Test3"); + await().until(tracker1::getLog, contains("Test1", "Test2", "Test3")); + await().until(tracker2::getLog, contains("Test2", "Test3")); + + final var subscriber3 = this.createSubscriber(new MockMinionIdentity("location_b", "minion_3")); + final var tracker3 = Tracker.subscribe(subscriber3, "test", String.class); + await().until(tracker3::getLog, contains("Test3")); + + subscriber1.close(); + subscriber2.close(); + subscriber3.close(); + } + + /** + * Tests that subscription works if publisher gets restarted. + */ + @Test + public void testPublisherRestart() throws Exception { + final var tracker = Tracker.subscribe(this.subscriber, "test", String.class); + + final var session1 = this.publisher.register("test", String.class); + session1.publish("Test1"); + session1.publish("Test2"); + + await().until(tracker::getLog, contains("Test1", "Test2")); + + this.publisher.close(); + this.publisher = this.createPublisher(); + + final var session2 = this.publisher.register("test", String.class); + session2.publish("Test3"); + + await().until(tracker::getLog, contains("Test1", "Test2", "Test3")); + } + + /** + * Tests that subscription can be closed and reopened. + */ + @Test + public void testSubscriberClose() throws Exception { + final var session = this.publisher.register("test", String.class); + session.publish("Test1"); + + final var tracker1 = Tracker.subscribe(this.subscriber, "test", String.class); + await().until(tracker1::getLog, contains("Test1")); + + tracker1.close(); + + session.publish("Test2"); + session.publish("Test3"); + + final var tracker2 = Tracker.subscribe(this.subscriber, "test", String.class); + // Maybe contains elements from the `publish`s above. + // Due to transport latency, the subscriber receive the elements even if published before subscribe. + await().until(tracker2::getLog, hasItem("Test3")); + + assertThat(tracker1.getLog(), not(hasItem("Test2"))); + assertThat(tracker1.getLog(), not(hasItem("Test3"))); + } + + /** + * Tests that subscription can be closed before registration. + */ + @Test + public void testSubscriberCloseBeforeRegister() throws Exception { + final var tracker1 = Tracker.subscribe(this.subscriber, "test", String.class); + tracker1.close(); + + final var session = this.publisher.register("test", String.class); + session.publish("Test1"); + + final var tracker2 = Tracker.subscribe(this.subscriber, "test", String.class); + await().until(tracker2::getLog, contains("Test1")); + + assertThat(tracker1.getLog(), empty()); + } + + @Test + public void testPublishSubscribeWithTrapdConfig() throws IOException { + final var session = this.publisher.register(TrapListenerConfig.TWIN_KEY, TrapListenerConfig.class); + final var tracker1 = Tracker.subscribe(this.subscriber, TrapListenerConfig.TWIN_KEY, TrapListenerConfig.class); + SnmpV3User user = new SnmpV3User("opennmsUser", "MD5", "0p3nNMSv3", + "DES", "0p3nNMSv3"); + TrapListenerConfig trapListenerConfig = new TrapListenerConfig(); + ArrayList users = new ArrayList<>(); + users.add(user); + trapListenerConfig.setSnmpV3Users(users); + session.publish(trapListenerConfig); + await().until(tracker1::getLog, hasItem(trapListenerConfig)); + // Add two users and delete existing one. + TrapListenerConfig updatedConfig = new TrapListenerConfig(); + SnmpV3User user1 = new SnmpV3User("opennmsUser1", "MD5", "0p3nNMSv1", + "DES", "0p3nNMSv1"); + SnmpV3User user2 = new SnmpV3User("opennmsUser2", "MD5", "0p3nNMSv1", + "DES", "0p3nNMSv2"); + users = new ArrayList<>(); + users.add(user1); + users.add(user2); + updatedConfig.setSnmpV3Users(users); + session.publish(updatedConfig); + await().until(tracker1::getLog, hasItem(updatedConfig)); + } + + public static class Tracker implements Closeable { + private final List log; + private final Closeable subscription; + + private Tracker(final List log, + final Closeable subscription) { + this.log = Objects.requireNonNull(log); + this.subscription = Objects.requireNonNull(subscription); + } + + public List getLog() { + return this.log; + } + + @Override + public void close() throws IOException { + this.subscription.close(); + } + + public static Tracker subscribe(final TwinSubscriber subscriber, final String key, final Class clazz) { + final var log = new ArrayList(); + final var subscription = subscriber.subscribe(key, clazz, log::add); + + return new Tracker<>(log, subscription); + } + } +} diff --git a/core/ipc/twin/test/src/main/java/org/opennms/core/ipc/twin/test/MockMinionIdentity.java b/core/ipc/twin/test/src/main/java/org/opennms/core/ipc/twin/test/MockMinionIdentity.java new file mode 100644 index 000000000000..764b2a9460a5 --- /dev/null +++ b/core/ipc/twin/test/src/main/java/org/opennms/core/ipc/twin/test/MockMinionIdentity.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.core.ipc.twin.test; + +import org.opennms.distributed.core.api.MinionIdentity; +import org.opennms.distributed.core.api.SystemType; + +import java.util.UUID; + +public class MockMinionIdentity implements MinionIdentity { + + private final String location; + + private final String id; + + public MockMinionIdentity(String location) { + this.location = location; + this.id = UUID.randomUUID().toString(); + } + + public MockMinionIdentity(String location, String id) { + this.location = location; + this.id = id; + } + + @Override + public String getId() { + return id; + } + + @Override + public String getLocation() { + return location; + } + + @Override + public String getType() { + return SystemType.Minion.name(); + } + +} diff --git a/core/jmx/api/pom.xml b/core/jmx/api/pom.xml index 48bf35abcf1a..04197189b23f 100644 --- a/core/jmx/api/pom.xml +++ b/core/jmx/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.jmx - 28.1.1 + 29.0.0-SNAPSHOT .. 4.0.0 diff --git a/core/jmx/impl/pom.xml b/core/jmx/impl/pom.xml index 6ed74cc2f33e..6960a7d6d236 100644 --- a/core/jmx/impl/pom.xml +++ b/core/jmx/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.jmx - 28.1.1 + 29.0.0-SNAPSHOT .. 4.0.0 diff --git a/core/jmx/pom.xml b/core/jmx/pom.xml index c732e2d1834b..621934f03eaf 100644 --- a/core/jmx/pom.xml +++ b/core/jmx/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/jstl-support/pom.xml b/core/jstl-support/pom.xml index 9c32d862ff30..d0cdc525f330 100644 --- a/core/jstl-support/pom.xml +++ b/core/jstl-support/pom.xml @@ -2,7 +2,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/lib/pom.xml b/core/lib/pom.xml index a40f8dff7847..ffc688a530c6 100644 --- a/core/lib/pom.xml +++ b/core/lib/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/logging-api/pom.xml b/core/logging-api/pom.xml index df806da3ffe0..52810de6c93a 100644 --- a/core/logging-api/pom.xml +++ b/core/logging-api/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/pom.xml b/core/pom.xml index 6af2e78d4dd6..07925d580681 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -3,7 +3,7 @@ org.opennms opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/profiler/pom.xml b/core/profiler/pom.xml index 131fabbac8b7..f7baef74e770 100644 --- a/core/profiler/pom.xml +++ b/core/profiler/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/runtime/pom.xml b/core/runtime/pom.xml index 814aada39925..b190ddef409d 100644 --- a/core/runtime/pom.xml +++ b/core/runtime/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/schema/pom.xml b/core/schema/pom.xml index 32d102294d43..63a46cf020c6 100644 --- a/core/schema/pom.xml +++ b/core/schema/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core @@ -114,7 +114,7 @@ true${updatePolicy} opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release/ + https://maven.opennms.org/content/groups/opennms.org-release/ diff --git a/core/schema/src/main/java/org/opennms/core/schema/Migrator.java b/core/schema/src/main/java/org/opennms/core/schema/Migrator.java index f5486082da7d..b5fc1bc478a4 100644 --- a/core/schema/src/main/java/org/opennms/core/schema/Migrator.java +++ b/core/schema/src/main/java/org/opennms/core/schema/Migrator.java @@ -80,7 +80,7 @@ public class Migrator { private static final Logger LOG = LoggerFactory.getLogger(Migrator.class); private static final Pattern POSTGRESQL_VERSION_PATTERN = Pattern.compile("^(?:PostgreSQL|EnterpriseDB) (\\d+\\.\\d+)"); private static final float POSTGRESQL_MIN_VERSION_INCLUSIVE = Float.parseFloat(System.getProperty("opennms.postgresql.minVersion", "10.0")); - private static final float POSTGRESQL_MAX_VERSION_EXCLUSIVE = Float.parseFloat(System.getProperty("opennms.postgresql.maxVersion", "14.0")); + private static final float POSTGRESQL_MAX_VERSION_EXCLUSIVE = Float.parseFloat(System.getProperty("opennms.postgresql.maxVersion", "15.0")); private static final String IPLIKE_SQL_RESOURCE = "iplike.sql"; diff --git a/core/schema/src/main/liquibase/29.0.0/changelog.xml b/core/schema/src/main/liquibase/29.0.0/changelog.xml new file mode 100644 index 000000000000..e427546ca9a4 --- /dev/null +++ b/core/schema/src/main/liquibase/29.0.0/changelog.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/schema/src/main/liquibase/changelog.xml b/core/schema/src/main/liquibase/changelog.xml index d7609b43e621..91b393899de6 100644 --- a/core/schema/src/main/liquibase/changelog.xml +++ b/core/schema/src/main/liquibase/changelog.xml @@ -95,6 +95,7 @@ + diff --git a/core/snmp/api/pom.xml b/core/snmp/api/pom.xml index 187f133b01d6..aa74e22d5360 100644 --- a/core/snmp/api/pom.xml +++ b/core/snmp/api/pom.xml @@ -3,8 +3,7 @@ org.opennms.core org.opennms.core.snmp - 28.1.1 - .. + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.snmp @@ -46,6 +45,10 @@ jakarta.xml.bind jakarta.xml.bind-api
+ + com.google.guava + guava + org.hamcrest hamcrest-library diff --git a/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/SnmpStrategy.java b/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/SnmpStrategy.java index 4ae188dd60c3..df56548e186f 100644 --- a/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/SnmpStrategy.java +++ b/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/SnmpStrategy.java @@ -57,9 +57,7 @@ public interface SnmpStrategy { void registerForTraps(TrapNotificationListener listener, int snmpTrapPort) throws IOException; - void unregisterForTraps(TrapNotificationListener listener, InetAddress address, int snmpTrapPort) throws IOException; - - void unregisterForTraps(TrapNotificationListener listener, int snmpTrapPort) throws IOException; + void unregisterForTraps(TrapNotificationListener listener) throws IOException; SnmpValueFactory getValueFactory(); diff --git a/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/SnmpUtils.java b/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/SnmpUtils.java index b35d90648f26..574e70577da6 100644 --- a/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/SnmpUtils.java +++ b/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/SnmpUtils.java @@ -202,8 +202,8 @@ public static void registerForTraps(final TrapNotificationListener listener, fin getStrategy().registerForTraps(listener, address, snmpTrapPort); } - public static void unregisterForTraps(final TrapNotificationListener listener, final InetAddress address, final int snmpTrapPort) throws IOException { - getStrategy().unregisterForTraps(listener, snmpTrapPort); + public static void unregisterForTraps(final TrapNotificationListener listener) throws IOException { + getStrategy().unregisterForTraps(listener); } public static SnmpValueFactory getValueFactory() { diff --git a/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/TrapIdentity.java b/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/TrapIdentity.java index ebcea16a19f8..114c1db2abb9 100644 --- a/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/TrapIdentity.java +++ b/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/TrapIdentity.java @@ -154,7 +154,7 @@ public TrapIdentity(SnmpObjId snmpTrapOid, SnmpObjId lastVarBindOid, SnmpValue l setTrapOID(snmpTrapOidValue); } else { setEnterpriseId(snmpTrapOidValue.substring(0, lastIndex)); - setTrapOID(getEnterpriseId()); + setTrapOID(snmpTrapOidValue); } } } diff --git a/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/TrapListenerConfig.java b/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/TrapListenerConfig.java new file mode 100644 index 000000000000..d20451ce32bf --- /dev/null +++ b/core/snmp/api/src/main/java/org/opennms/netmgt/snmp/TrapListenerConfig.java @@ -0,0 +1,84 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.snmp; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementWrapper; +import javax.xml.bind.annotation.XmlRootElement; + + +@XmlRootElement(name = "trap-listener-config") +@XmlAccessorType(XmlAccessType.NONE) +public class TrapListenerConfig { + + public static final String TWIN_KEY = "trapd.listener.config"; + + @XmlElementWrapper(name = "snmp-v3-users") + @XmlElement(name = "snmp-v3-user") + private List snmpV3Users= new ArrayList<>(); + + public List getSnmpV3Users() { + return this.snmpV3Users; + } + + public void setSnmpV3Users(final List snmpV3Users) { + this.snmpV3Users = snmpV3Users; + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (!(o instanceof TrapListenerConfig)) { + return false; + } + final TrapListenerConfig that = (TrapListenerConfig) o; + return Objects.equals(this.snmpV3Users, that.snmpV3Users); + } + + @Override + public int hashCode() { + return Objects.hash(this.snmpV3Users); + } + + @Override + public String toString() { + return new StringJoiner(", ", TrapListenerConfig.class.getSimpleName() + "[", "]") + .add("snmpV3Users=" + snmpV3Users) + .toString(); + } +} diff --git a/core/snmp/commands/pom.xml b/core/snmp/commands/pom.xml index f73a99ce405d..7fe89512c752 100644 --- a/core/snmp/commands/pom.xml +++ b/core/snmp/commands/pom.xml @@ -4,7 +4,7 @@ org.opennms.core org.opennms.core.snmp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/core/snmp/impl-joesnmp/pom.xml b/core/snmp/impl-joesnmp/pom.xml index 4542f713776c..d6d788e55af1 100644 --- a/core/snmp/impl-joesnmp/pom.xml +++ b/core/snmp/impl-joesnmp/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.snmp - 28.1.1 + 29.0.0-SNAPSHOT .. 4.0.0 diff --git a/core/snmp/impl-joesnmp/src/main/java/org/opennms/netmgt/snmp/joesnmp/JoeSnmpStrategy.java b/core/snmp/impl-joesnmp/src/main/java/org/opennms/netmgt/snmp/joesnmp/JoeSnmpStrategy.java index 38556203a6d2..15e74bebadce 100644 --- a/core/snmp/impl-joesnmp/src/main/java/org/opennms/netmgt/snmp/joesnmp/JoeSnmpStrategy.java +++ b/core/snmp/impl-joesnmp/src/main/java/org/opennms/netmgt/snmp/joesnmp/JoeSnmpStrategy.java @@ -343,13 +343,7 @@ public void registerForTraps(final TrapNotificationListener listener, final int } @Override - public void unregisterForTraps(final TrapNotificationListener listener, InetAddress address, int snmpTrapPort) { - RegistrationInfo info = s_registrations.remove(listener); - info.getSession().close(); - } - - @Override - public void unregisterForTraps(final TrapNotificationListener listener, final int snmpTrapPort) { + public void unregisterForTraps(final TrapNotificationListener listener) { RegistrationInfo info = s_registrations.remove(listener); info.getSession().close(); } diff --git a/core/snmp/impl-mock/pom.xml b/core/snmp/impl-mock/pom.xml index 466f88189c86..0819f62de5d3 100644 --- a/core/snmp/impl-mock/pom.xml +++ b/core/snmp/impl-mock/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.snmp - 28.1.1 + 29.0.0-SNAPSHOT .. 4.0.0 diff --git a/core/snmp/impl-mock/src/main/java/org/opennms/netmgt/snmp/mock/MockSnmpStrategy.java b/core/snmp/impl-mock/src/main/java/org/opennms/netmgt/snmp/mock/MockSnmpStrategy.java index b32d6d5e8623..22f1d515ea7e 100644 --- a/core/snmp/impl-mock/src/main/java/org/opennms/netmgt/snmp/mock/MockSnmpStrategy.java +++ b/core/snmp/impl-mock/src/main/java/org/opennms/netmgt/snmp/mock/MockSnmpStrategy.java @@ -173,11 +173,7 @@ public void registerForTraps(TrapNotificationListener listener, InetAddress addr } @Override - public void unregisterForTraps(final TrapNotificationListener listener, final InetAddress address, final int snmpTrapPort) throws IOException { - } - - @Override - public void unregisterForTraps(final TrapNotificationListener listener, final int snmpTrapPort) throws IOException { + public void unregisterForTraps(final TrapNotificationListener listener) throws IOException { } @Override diff --git a/core/snmp/impl-snmp4j/pom.xml b/core/snmp/impl-snmp4j/pom.xml index e96eef526534..49b74f2d1f13 100644 --- a/core/snmp/impl-snmp4j/pom.xml +++ b/core/snmp/impl-snmp4j/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.snmp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.snmp @@ -59,7 +59,7 @@ org.osgi - org.osgi.core + osgi.core provided @@ -101,7 +101,7 @@ true opennms-repo OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/core/snmp/impl-snmp4j/src/main/java/org/opennms/netmgt/snmp/snmp4j/BufferRewindingMessageDispatcher.java b/core/snmp/impl-snmp4j/src/main/java/org/opennms/netmgt/snmp/snmp4j/BufferRewindingMessageDispatcher.java new file mode 100644 index 000000000000..332014cbe619 --- /dev/null +++ b/core/snmp/impl-snmp4j/src/main/java/org/opennms/netmgt/snmp/snmp4j/BufferRewindingMessageDispatcher.java @@ -0,0 +1,56 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.snmp.snmp4j; + +import java.nio.ByteBuffer; + +import org.snmp4j.MessageDispatcherImpl; +import org.snmp4j.TransportMapping; +import org.snmp4j.TransportStateReference; +import org.snmp4j.asn1.BERInputStream; +import org.snmp4j.smi.Address; + +/** + * A {@link MessageDispatcherImpl} implementation that rewinds the buffer before processing. + * + * Useful for chaining multiple dispatchers in sequence. + * + */ +public class BufferRewindingMessageDispatcher extends MessageDispatcherImpl { + + @Override + public void processMessage(TransportMapping sourceTransport, + Address incomingAddress, + ByteBuffer wholeMessage, + TransportStateReference tmStateReference) { + processMessage(sourceTransport, incomingAddress, + new BERInputStream((ByteBuffer) wholeMessage.rewind()), + tmStateReference); + } +} diff --git a/core/snmp/impl-snmp4j/src/main/java/org/opennms/netmgt/snmp/snmp4j/Snmp4JStrategy.java b/core/snmp/impl-snmp4j/src/main/java/org/opennms/netmgt/snmp/snmp4j/Snmp4JStrategy.java index 4c78e83b5489..a30dad8ae94f 100644 --- a/core/snmp/impl-snmp4j/src/main/java/org/opennms/netmgt/snmp/snmp4j/Snmp4JStrategy.java +++ b/core/snmp/impl-snmp4j/src/main/java/org/opennms/netmgt/snmp/snmp4j/Snmp4JStrategy.java @@ -48,6 +48,7 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ThreadFactory; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; import org.opennms.core.logging.Logging; import org.opennms.core.sysprops.SystemProperties; @@ -70,6 +71,7 @@ import org.opennms.netmgt.snmp.TrapNotificationListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.snmp4j.CommandResponder; import org.snmp4j.CommandResponderEvent; import org.snmp4j.MessageDispatcher; import org.snmp4j.MessageDispatcherImpl; @@ -79,6 +81,8 @@ import org.snmp4j.ScopedPDU; import org.snmp4j.Snmp; import org.snmp4j.TransportMapping; +import org.snmp4j.event.AuthenticationFailureEvent; +import org.snmp4j.event.AuthenticationFailureListener; import org.snmp4j.event.ResponseEvent; import org.snmp4j.event.ResponseListener; import org.snmp4j.mp.MPv1; @@ -92,6 +96,8 @@ import org.snmp4j.security.SecurityProtocols; import org.snmp4j.security.USM; import org.snmp4j.security.UsmUser; +import org.snmp4j.security.UsmUserEntry; +import org.snmp4j.security.UsmUserTable; import org.snmp4j.smi.IpAddress; import org.snmp4j.smi.OID; import org.snmp4j.smi.OctetString; @@ -583,38 +589,75 @@ public void registerForTraps(final TrapNotificationListener listener, InetAddres dispatcher.addMessageProcessingModel(new MPv1()); dispatcher.addMessageProcessingModel(new MPv2c()); dispatcher.addMessageProcessingModel(new MPv3(getLocalEngineID())); + Snmp snmp = new Snmp(dispatcher, transport); m_usm = new USM(SecurityProtocols.getInstance(), new OctetString(getLocalEngineID()), 0); SecurityModels.getInstance().addSecurityModel(m_usm); - if (snmpUsers != null) { - for (SnmpV3User user : snmpUsers) { - SnmpAgentConfig config = new SnmpAgentConfig(); - config.setVersion(SnmpConfiguration.VERSION3); - config.setSecurityName(user.getSecurityName()); - config.setAuthProtocol(user.getAuthProtocol()); - config.setAuthPassPhrase(user.getAuthPassPhrase()); - config.setPrivProtocol(user.getPrivProtocol()); - config.setPrivPassPhrase(user.getPrivPassPhrase()); - Snmp4JAgentConfig agentConfig = new Snmp4JAgentConfig(config); - UsmUser usmUser = new UsmUser( - agentConfig.getSecurityName(), - agentConfig.getAuthProtocol(), - agentConfig.getAuthPassPhrase(), - agentConfig.getPrivProtocol(), - agentConfig.getPrivPassPhrase() - ); - /* This doesn't work as expected. Basically SNMP4J is ignoring the engineId - if (user.getEngineId() == null) { - snmp.getUSM().addUser(agentConfig.getSecurityName(), usmUser); - } else { - snmp.getUSM().addUser(agentConfig.getSecurityName(), new OctetString(user.getEngineId()), usmUser); - } - */ - snmp.getUSM().addUser(agentConfig.getSecurityName(), usmUser); + // Split users up based on security name + Map> usmUsersByKey = snmpUsers.stream() + .map(user -> { + SnmpAgentConfig config = new SnmpAgentConfig(); + config.setVersion(SnmpConfiguration.VERSION3); + config.setSecurityName(user.getSecurityName()); + config.setAuthProtocol(user.getAuthProtocol()); + config.setAuthPassPhrase(user.getAuthPassPhrase()); + config.setPrivProtocol(user.getPrivProtocol()); + config.setPrivPassPhrase(user.getPrivPassPhrase()); + Snmp4JAgentConfig agentConfig = new Snmp4JAgentConfig(config); + return new UsmUser( + agentConfig.getSecurityName(), + agentConfig.getAuthProtocol(), + agentConfig.getAuthPassPhrase(), + agentConfig.getPrivProtocol(), + agentConfig.getPrivPassPhrase() + ); + // Use the same key as SNMP4J uses in the UserTable + }).collect(Collectors.groupingBy(user ->new UsmUserTable.UsmUserKey(new UsmUserEntry(user.getSecurityName(), user)))); + + // The map may contain a list with multiple entries for a given key + // Process the first entries by adding all users to the default USM context + usmUsersByKey.values().stream() + .filter(usmUsers -> usmUsers.size() > 0) + .map(usmUsers -> usmUsers.get(0)) + .forEach(u -> snmp.getUSM().addUser(u.getSecurityName(), u)); + + // Determine the maximum number of entries across all lists + int maxNumUniqueDefs = usmUsersByKey.values().stream() + .mapToInt(List::size).max().orElse(0); + + // For every additional index (meaning there are duplicate entries for the same key) + // gather the entries across all the other lists and: + // 1) Add these to a new USM context + // 2) Create a new SNMPv3 processor for this context that is run *after* the previous processors + // All SNMPv3 packets are expected to be processed by all processors, but only 1 is expected to respond + for (int k = 1; k < maxNumUniqueDefs; k++) { + // New USM context with same engine ID + USM usm = new USM(); + usm.setLocalEngine(new OctetString(getLocalEngineID()), 0, 0); + + // Add all the corresponding users to the USM context + final int index = k; + usmUsersByKey.values().stream() + .filter(usmUsers -> usmUsers.size() > index) + .map(usmUsers -> usmUsers.get(index)) + .forEach(u -> usm.addUser(u.getSecurityName(), u)); + + // Create another dispatcher for this context + final MessageDispatcherImpl nextDispatcher = new BufferRewindingMessageDispatcher(); + + AuthenticationFailureLogger authenticationFailureLogger = new AuthenticationFailureLogger(k, maxNumUniqueDefs - 1); + nextDispatcher.addAuthenticationFailureListener(authenticationFailureLogger); + nextDispatcher.addCommandResponder(authenticationFailureLogger); + + nextDispatcher.addMessageProcessingModel(new MPv3(usm)); + // Use the same trap notifier + nextDispatcher.addCommandResponder(trapNotifier); + transport.addTransportListener(nextDispatcher); } } + Snmp4JStrategy.trackSession(snmp); snmp.addCommandResponder(trapNotifier); info.setSession(snmp); @@ -623,7 +666,32 @@ public void registerForTraps(final TrapNotificationListener listener, InetAddres snmp.listen(); } - + + private static class AuthenticationFailureLogger implements AuthenticationFailureListener, CommandResponder { + private int currentDispatcher, maxDispatcher; + + private AuthenticationFailureLogger(final int currentDispatcher, final int maxDispatchers) { + this.currentDispatcher = currentDispatcher; + this.maxDispatcher = maxDispatchers; + } + + @Override + public void authenticationFailure(final AuthenticationFailureEvent authenticationFailureEvent) { + final MessageDispatcher messageDispatcher = (MessageDispatcher) authenticationFailureEvent.getSource(); + // the dispatchers for different credentials have only the v3 processing model assigned, so we can check whether the v2 processing model is null + if (messageDispatcher.getMessageProcessingModel(MPv2c.ID) == null) { + LOG.debug("Error authenticating SNMP v3 trap PDU received from {} (error status code {}). Tried #{} of {} different dispatchers.", authenticationFailureEvent.getAddress(), authenticationFailureEvent.getError(), currentDispatcher, maxDispatcher); + } + } + + @Override + public void processPdu(final CommandResponderEvent event) { + if (event.getMessageProcessingModel() == MPv3.ID) { + LOG.debug("Authenticated SNMP v3 trap PDU received from {}. Tried #{} of {} different dispatchers.", event.getPeerAddress(), currentDispatcher, maxDispatcher); + } + } + } + @Override public void registerForTraps(final TrapNotificationListener listener, InetAddress address, int snmpTrapPort) throws IOException { registerForTraps(listener, address, snmpTrapPort, null); @@ -635,21 +703,7 @@ public void registerForTraps(final TrapNotificationListener listener, final int } @Override - public void unregisterForTraps(final TrapNotificationListener listener, InetAddress address, int snmpTrapPort) throws IOException { - final RegistrationInfo info = s_registrations.remove(listener); - final Snmp session = info.getSession(); - try { - session.close(); - } catch (final IOException e) { - LOG.error("session error unregistering for traps", e); - throw e; - } finally { - Snmp4JStrategy.reapSession(session); - } - } - - @Override - public void unregisterForTraps(final TrapNotificationListener listener, final int snmpTrapPort) throws IOException { + public void unregisterForTraps(final TrapNotificationListener listener) throws IOException { final RegistrationInfo info = s_registrations.remove(listener); final Snmp session = info.getSession(); try { diff --git a/core/snmp/integration-tests/pom.xml b/core/snmp/integration-tests/pom.xml index 264c44447925..9488448911a1 100644 --- a/core/snmp/integration-tests/pom.xml +++ b/core/snmp/integration-tests/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.snmp - 28.1.1 + 29.0.0-SNAPSHOT .. 4.0.0 diff --git a/core/snmp/integration-tests/src/test/java/org/opennms/netmgt/snmp/SnmpUtilsIT.java b/core/snmp/integration-tests/src/test/java/org/opennms/netmgt/snmp/SnmpUtilsIT.java index 18633ba3010e..1503c514fb26 100644 --- a/core/snmp/integration-tests/src/test/java/org/opennms/netmgt/snmp/SnmpUtilsIT.java +++ b/core/snmp/integration-tests/src/test/java/org/opennms/netmgt/snmp/SnmpUtilsIT.java @@ -111,7 +111,7 @@ public SnmpUtilsIT(String strategyClass, int snmpVersion, boolean trapsSupported @After public void cleanupTrapListener() throws Exception { if (m_trapListener != null) { - SnmpUtils.unregisterForTraps(m_trapListener, null, 9162); + SnmpUtils.unregisterForTraps(m_trapListener); } if (m_oldProperty == null) { diff --git a/core/snmp/integration-tests/src/test/java/org/opennms/netmgt/snmp/snmp4j/Snmp4jTrapReceiverIT.java b/core/snmp/integration-tests/src/test/java/org/opennms/netmgt/snmp/snmp4j/Snmp4jTrapReceiverIT.java index 47140034426e..5171e41496da 100644 --- a/core/snmp/integration-tests/src/test/java/org/opennms/netmgt/snmp/snmp4j/Snmp4jTrapReceiverIT.java +++ b/core/snmp/integration-tests/src/test/java/org/opennms/netmgt/snmp/snmp4j/Snmp4jTrapReceiverIT.java @@ -30,6 +30,7 @@ import static com.jayway.awaitility.Awaitility.await; import static java.util.concurrent.TimeUnit.SECONDS; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -37,6 +38,7 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -168,7 +170,7 @@ public void testTrapReceiverWithOpenNMSAuthPriv() { } finally { LOG.debug("ONMS: Unregister for Traps"); try { - strategy.unregisterForTraps(trapListener, 9162); + strategy.unregisterForTraps(trapListener); } catch (final IOException e) { LOG.debug("Failed to unregister for traps.", e); } @@ -198,7 +200,7 @@ public void testTrapReceiverWithOpenNMSAuthPrivWithSHA256() { } finally { LOG.debug("ONMS: Unregister for Traps"); try { - strategy.unregisterForTraps(trapListener, 9162); + strategy.unregisterForTraps(trapListener); } catch (final IOException e) { LOG.debug("Failed to unregister for traps.", e); } @@ -231,7 +233,7 @@ public void testTrapReceiverWithOpenNMSNoAuthNoPriv() { } finally { LOG.debug("ONMS: Unregister for Traps"); try { - strategy.unregisterForTraps(trapListener, 9162); + strategy.unregisterForTraps(trapListener); } catch (final IOException e) { LOG.debug("Failed to unregister for traps.", e); } @@ -262,7 +264,7 @@ public void testTrapReceiverWithoutUser() { } finally { LOG.debug("ONMS: Unregister for Traps"); try { - strategy.unregisterForTraps(trapListener, 9162); + strategy.unregisterForTraps(trapListener); } catch (final IOException e) { LOG.debug("Failed to unregister for traps.", e); } @@ -278,6 +280,45 @@ public void testTrapReceiverWithoutUser() { strategy.clearUsers(); } + @Test + public void canReceiveV3TrapsFromSameUserWithMultiplePassphrases() throws Exception { + // Setup the listener + final Snmp4JStrategy strategy = new Snmp4JStrategy(); + final TestTrapListener trapListener = new TestTrapListener(); + SnmpV3User user1 = new SnmpV3User("opennmsUser", "SHA-256", "0p3nNMSv3", "DES", "0p3nNMSv3"); + SnmpV3User user2 = new SnmpV3User("opennmsUser", "MD5", "opennms-loves", "AES", "open-source"); + SnmpV3User user3 = new SnmpV3User("opennmsUser", "SHA-512", "how-does", "AES256", "this-even-work?!"); + List users = Arrays.asList(user1, user2, user3); + strategy.registerForTraps(trapListener, getAgentAddress(), 9162, users); + + // No traps yet + assertThat(trapListener.getReceivedTrapCount(), equalTo(0)); + + // Generate a trap for each user defined above + final String hostAddress = str(getAgentAddress()); + SnmpObjId enterpriseId = SnmpObjId.get(".0.0"); + SnmpObjId trapOID = SnmpObjId.get(enterpriseId, new SnmpInstId(1)); + for (SnmpV3User user : users) { + SnmpV3TrapBuilder pduv3 = strategy.getV3TrapBuilder(); + pduv3.addVarBind(SnmpObjId.get(".1.3.6.1.2.1.1.3.0"), strategy.getValueFactory().getTimeTicks(0)); + pduv3.addVarBind(SnmpObjId.get(".1.3.6.1.6.3.1.1.4.1.0"), strategy.getValueFactory().getObjectId(trapOID)); + pduv3.addVarBind(SnmpObjId.get(".1.3.6.1.6.3.1.1.4.3.0"), strategy.getValueFactory().getObjectId(enterpriseId)); + pduv3.send(hostAddress, 9162, SnmpConfiguration.AUTH_PRIV, user.getSecurityName(), user.getAuthPassPhrase(), user.getAuthProtocol(), + user.getPrivPassPhrase(), user.getPrivProtocol()); + } + + // Wait to receive all the traps + await().atMost(5, SECONDS).until(() -> m_trapCount, equalTo(3)); + + // Make sure no other error occurred + assertFalse(trapListener.hasError()); + // Cleanup for sanity + strategy.clearUsers(); + // unregister listener + strategy.unregisterForTraps(trapListener); + } + + @Override protected boolean usingMockStrategy() { return false; diff --git a/core/snmp/joesnmp/pom.xml b/core/snmp/joesnmp/pom.xml index fbb06b6b4b60..f83e75ad0cf6 100644 --- a/core/snmp/joesnmp/pom.xml +++ b/core/snmp/joesnmp/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.snmp - 28.1.1 + 29.0.0-SNAPSHOT .. 4.0.0 diff --git a/core/snmp/pom.xml b/core/snmp/pom.xml index f0c84f684e51..28003281d9b2 100644 --- a/core/snmp/pom.xml +++ b/core/snmp/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/snmp/profile-mapper/pom.xml b/core/snmp/profile-mapper/pom.xml index 98e7fef9b852..a7989e02dab3 100644 --- a/core/snmp/profile-mapper/pom.xml +++ b/core/snmp/profile-mapper/pom.xml @@ -5,7 +5,7 @@ org.opennms.core.snmp org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/core/snmp/proxy-rpc-impl/pom.xml b/core/snmp/proxy-rpc-impl/pom.xml index 6a19e85a2951..423692251be4 100644 --- a/core/snmp/proxy-rpc-impl/pom.xml +++ b/core/snmp/proxy-rpc-impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.snmp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.snmp diff --git a/core/snmp/proxy-rpc-tests/pom.xml b/core/snmp/proxy-rpc-tests/pom.xml index 26cf1271c5d6..dd2844415d69 100644 --- a/core/snmp/proxy-rpc-tests/pom.xml +++ b/core/snmp/proxy-rpc-tests/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.snmp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.snmp diff --git a/core/snmp/proxy-rpc-tests/src/test/java/org/opennms/netmgt/snmp/proxy/common/MockSnmpStrategy.java b/core/snmp/proxy-rpc-tests/src/test/java/org/opennms/netmgt/snmp/proxy/common/MockSnmpStrategy.java index 43d1c23c3a78..5532ca718956 100644 --- a/core/snmp/proxy-rpc-tests/src/test/java/org/opennms/netmgt/snmp/proxy/common/MockSnmpStrategy.java +++ b/core/snmp/proxy-rpc-tests/src/test/java/org/opennms/netmgt/snmp/proxy/common/MockSnmpStrategy.java @@ -118,13 +118,7 @@ public void registerForTraps(TrapNotificationListener listener, int snmpTrapPort } @Override - public void unregisterForTraps(TrapNotificationListener listener, InetAddress address, int snmpTrapPort) - throws IOException { - - } - - @Override - public void unregisterForTraps(TrapNotificationListener listener, int snmpTrapPort) throws IOException { + public void unregisterForTraps(TrapNotificationListener listener) throws IOException { } diff --git a/core/soa/pom.xml b/core/soa/pom.xml index 7b089c58333b..05baa70363a2 100644 --- a/core/soa/pom.xml +++ b/core/soa/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core @@ -17,7 +17,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/core/spring-web/pom.xml b/core/spring-web/pom.xml index 4b53bbf2cd93..99f52079454a 100644 --- a/core/spring-web/pom.xml +++ b/core/spring-web/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/spring/pom.xml b/core/spring/pom.xml index b5085e68e815..348f471dc72c 100644 --- a/core/spring/pom.xml +++ b/core/spring/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/sysprops/pom.xml b/core/sysprops/pom.xml index 95f5936078da..506e7504106a 100644 --- a/core/sysprops/pom.xml +++ b/core/sysprops/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/tasks/pom.xml b/core/tasks/pom.xml index 4da0ddc99a13..1d4262d8eb82 100644 --- a/core/tasks/pom.xml +++ b/core/tasks/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/test-api/activemq/pom.xml b/core/test-api/activemq/pom.xml index cbaf3e17a72d..bb9cff59f741 100644 --- a/core/test-api/activemq/pom.xml +++ b/core/test-api/activemq/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/alarms/pom.xml b/core/test-api/alarms/pom.xml index 988feacf2928..de64ba5e0c25 100644 --- a/core/test-api/alarms/pom.xml +++ b/core/test-api/alarms/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/camel/pom.xml b/core/test-api/camel/pom.xml index 107c58009aba..76b9f8be8282 100644 --- a/core/test-api/camel/pom.xml +++ b/core/test-api/camel/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/collection/pom.xml b/core/test-api/collection/pom.xml index 87a77c26494f..d59164724b13 100644 --- a/core/test-api/collection/pom.xml +++ b/core/test-api/collection/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/db/pom.xml b/core/test-api/db/pom.xml index 6acc8d746f98..9abd471aecd8 100644 --- a/core/test-api/db/pom.xml +++ b/core/test-api/db/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api @@ -139,7 +139,7 @@ true${updatePolicy} opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release/ + https://maven.opennms.org/content/groups/opennms.org-release/ diff --git a/core/test-api/dns/pom.xml b/core/test-api/dns/pom.xml index 286a037cacb2..0267e3f14b6b 100644 --- a/core/test-api/dns/pom.xml +++ b/core/test-api/dns/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/elasticsearch/pom.xml b/core/test-api/elasticsearch/pom.xml index 07a9bc7e4dd8..60c08ecce4f0 100644 --- a/core/test-api/elasticsearch/pom.xml +++ b/core/test-api/elasticsearch/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/http/pom.xml b/core/test-api/http/pom.xml index 1832c60c0ca4..e984590ea817 100644 --- a/core/test-api/http/pom.xml +++ b/core/test-api/http/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/kafka/pom.xml b/core/test-api/kafka/pom.xml index 2688e3480f64..b3975e9b893c 100644 --- a/core/test-api/kafka/pom.xml +++ b/core/test-api/kafka/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/kafka/src/main/java/org/opennms/core/test/kafka/JUnitKafkaServer.java b/core/test-api/kafka/src/main/java/org/opennms/core/test/kafka/JUnitKafkaServer.java index 54e68fed3863..db90d2faae0a 100644 --- a/core/test-api/kafka/src/main/java/org/opennms/core/test/kafka/JUnitKafkaServer.java +++ b/core/test-api/kafka/src/main/java/org/opennms/core/test/kafka/JUnitKafkaServer.java @@ -57,6 +57,7 @@ import kafka.metrics.KafkaMetricsReporter; import kafka.server.KafkaConfig; import kafka.server.KafkaServer; +import kafka.server.metadata.MetadataBroker; import scala.Option; import scala.collection.JavaConverters; import scala.collection.mutable.Buffer; @@ -127,9 +128,7 @@ public void before() throws Exception { System.err.println("Kafka server properties: " + properties); kafkaConfig = new KafkaConfig(properties); - final List kmrList = new ArrayList<>(); - final Buffer metricsList = JavaConverters.asScalaBuffer(kmrList); - kafkaServer = new KafkaServer(kafkaConfig, new SystemTime(), Option.empty(), metricsList); + kafkaServer = new KafkaServer(kafkaConfig, new SystemTime(), Option.empty(), false); kafkaServer.startup(); await().atMost(1, MINUTES).until(this::getBrokers, hasSize(greaterThanOrEqualTo(1))); @@ -153,7 +152,7 @@ public void after() { } } - private List getBrokers() { + private List getBrokers() { return JavaConverters.seqAsJavaList(kafkaServer.metadataCache().getAliveBrokers().toList()); } diff --git a/core/test-api/karaf/pom.xml b/core/test-api/karaf/pom.xml index e799bf5dc25e..01e0f6518dd6 100644 --- a/core/test-api/karaf/pom.xml +++ b/core/test-api/karaf/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api @@ -75,9 +75,9 @@ mvn:org.apache.karaf.features/standard/${karafVersion}/xml/features - mvn:org.apache.karaf.features/spring/${karafVersion}/xml/features + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring - mvn:org.apache.karaf.features/spring-legacy/${karafVersion}/xml/features + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring-legacy mvn:org.ops4j.pax.exam/pax-exam-features/${paxExamVersion}/xml @@ -227,7 +227,7 @@ org.osgi - org.osgi.core + osgi.core provided @@ -320,10 +320,10 @@ - org.apache.karaf.features - spring - ${karafVersion} - features + org.opennms.karaf + opennms + ${project.version} + spring xml compile @@ -336,10 +336,10 @@ - org.apache.karaf.features - spring-legacy - ${karafVersion} - features + org.opennms.karaf + opennms + ${project.version} + spring-legacy xml compile @@ -547,18 +547,18 @@ true opennms-repo OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release/ + https://maven.opennms.org/content/groups/opennms.org-release/ true false opennms-snapshots OpenNMS Snapshot Maven Repository - http://maven.opennms.org/content/groups/opennms.org-snapshot/ + https://maven.opennms.org/content/groups/opennms.org-snapshot/ vaadin-addons - http://maven.opennms.org/content/repositories/vaadin-addons/ + https://maven.opennms.org/content/repositories/vaadin-addons/ diff --git a/core/test-api/lib/pom.xml b/core/test-api/lib/pom.xml index 239c14a7b5aa..ad5e7d691369 100644 --- a/core/test-api/lib/pom.xml +++ b/core/test-api/lib/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/pom.xml b/core/test-api/pom.xml index 235d38710936..55d6769dfba6 100644 --- a/core/test-api/pom.xml +++ b/core/test-api/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/test-api/rest/pom.xml b/core/test-api/rest/pom.xml index 45b65a75e32c..ea6a3bc6c92f 100644 --- a/core/test-api/rest/pom.xml +++ b/core/test-api/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/schema/a/pom.xml b/core/test-api/schema/a/pom.xml index f036eef423f7..aefb2ea94b7f 100644 --- a/core/test-api/schema/a/pom.xml +++ b/core/test-api/schema/a/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.test-api org.opennms.core.test-api.schema - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api.schema diff --git a/core/test-api/schema/b/pom.xml b/core/test-api/schema/b/pom.xml index dd1712ea4915..c0361f36c996 100644 --- a/core/test-api/schema/b/pom.xml +++ b/core/test-api/schema/b/pom.xml @@ -3,7 +3,7 @@ org.opennms.core.test-api org.opennms.core.test-api.schema - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api.schema diff --git a/core/test-api/schema/pom.xml b/core/test-api/schema/pom.xml index a58b5d0aa6a3..e079644900fd 100644 --- a/core/test-api/schema/pom.xml +++ b/core/test-api/schema/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/services/pom.xml b/core/test-api/services/pom.xml index 051c4c791417..a1f0c89412c4 100644 --- a/core/test-api/services/pom.xml +++ b/core/test-api/services/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/snmp/pom.xml b/core/test-api/snmp/pom.xml index 85d6cd225300..2655647c36d2 100644 --- a/core/test-api/snmp/pom.xml +++ b/core/test-api/snmp/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/test-api/xml/pom.xml b/core/test-api/xml/pom.xml index fe368bab106e..fbee5ae62294 100644 --- a/core/test-api/xml/pom.xml +++ b/core/test-api/xml/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.test-api - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.test-api diff --git a/core/tracing/api/pom.xml b/core/tracing/api/pom.xml index 9c9212a477bd..c3017d19e107 100644 --- a/core/tracing/api/pom.xml +++ b/core/tracing/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.tracing - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.tracing diff --git a/core/tracing/jaeger-osgi/pom.xml b/core/tracing/jaeger-osgi/pom.xml index c9a3af6cda10..7b5de4d42383 100644 --- a/core/tracing/jaeger-osgi/pom.xml +++ b/core/tracing/jaeger-osgi/pom.xml @@ -5,7 +5,7 @@ org.opennms.core.tracing org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.tracing diff --git a/core/tracing/jaeger-tracer/pom.xml b/core/tracing/jaeger-tracer/pom.xml index 968dd9d41ac6..9698e9f774a9 100644 --- a/core/tracing/jaeger-tracer/pom.xml +++ b/core/tracing/jaeger-tracer/pom.xml @@ -5,7 +5,7 @@ org.opennms.core org.opennms.core.tracing - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.tracing diff --git a/core/tracing/pom.xml b/core/tracing/pom.xml index 883db92e1eb3..bc06a53978bb 100644 --- a/core/tracing/pom.xml +++ b/core/tracing/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/tracing/registry/pom.xml b/core/tracing/registry/pom.xml index 151bb2c6d033..8de0ac0d6e47 100644 --- a/core/tracing/registry/pom.xml +++ b/core/tracing/registry/pom.xml @@ -3,7 +3,7 @@ org.opennms.core org.opennms.core.tracing - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core.tracing diff --git a/core/upgrade/pom.xml b/core/upgrade/pom.xml index b92ec912fa40..9d76bfa5c42e 100644 --- a/core/upgrade/pom.xml +++ b/core/upgrade/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/upgrade/src/main/resources/org/opennms/upgrade/implementations/monitoringLocations16/jaxb.properties b/core/upgrade/src/main/resources/org/opennms/upgrade/implementations/monitoringLocations16/jaxb.properties index a0cde4655ec3..4c1742cec2ff 100644 --- a/core/upgrade/src/main/resources/org/opennms/upgrade/implementations/monitoringLocations16/jaxb.properties +++ b/core/upgrade/src/main/resources/org/opennms/upgrade/implementations/monitoringLocations16/jaxb.properties @@ -26,4 +26,5 @@ # http://www.opennms.com/ ############################################################################### -javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory \ No newline at end of file +javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory +javax.xml.bind.JAXBContextFactory=org.eclipse.persistence.jaxb.JAXBContextFactory diff --git a/core/web-assets/package-lock.json b/core/web-assets/package-lock.json index e551bca43555..e47bc5a2cbea 100644 --- a/core/web-assets/package-lock.json +++ b/core/web-assets/package-lock.json @@ -1,6 +1,6 @@ { "name": "opennms-core-web-assets", - "version": "28.1.1", + "version": "29.0.0-SNAPSHOT", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/core/web-assets/package.json b/core/web-assets/package.json index 221574729e49..dc520e1ab5a9 100644 --- a/core/web-assets/package.json +++ b/core/web-assets/package.json @@ -1,6 +1,6 @@ { "name": "opennms-core-web-assets", - "version": "28.1.1", + "version": "29.0.0-SNAPSHOT", "description": "JavaScript Web Components for OpenNMS", "license": "AGPL-3.0", "repository": { diff --git a/core/web-assets/pom.xml b/core/web-assets/pom.xml index ffd8307e379a..6c07d8dc4a55 100644 --- a/core/web-assets/pom.xml +++ b/core/web-assets/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/web/pom.xml b/core/web/pom.xml index d96059a3ee57..f4cb5ffe7270 100644 --- a/core/web/pom.xml +++ b/core/web/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/core/xml/pom.xml b/core/xml/pom.xml index 3dab2843c334..b029b58c7d45 100644 --- a/core/xml/pom.xml +++ b/core/xml/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.core - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.core diff --git a/debian/changelog b/debian/changelog index 0e8de168a9d4..f4b9e23cd352 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +opennms (29.0.0-1) stable; urgency=medium + + * New major release. It contains a number of updates including + introducing running as non-root by default, optimizations to Minion + communication, time-series improvements, support for Cortex for + storing flow data, and more. + + For details on what has changed, see: + https://docs.opennms.com/horizon/29.0.0/index.html + + -- OpenNMS Release Manager Wed, 10 Nov 2021 09:12:00 -0400 + opennms (28.1.1-1) stable; urgency=low * New minor release. It contains a number of bug fixes and enhancements, diff --git a/debian/control b/debian/control index 0a6ba389928e..dee059ed4569 100644 --- a/debian/control +++ b/debian/control @@ -1,13 +1,13 @@ Source: opennms Section: contrib/net Priority: optional -Maintainer: Jeff Gehlbach +Maintainer: Benjamin Reed Build-Depends: oracle-java11-installer | adoptopenjdk-11-openj9xl | adoptopenjdk-11-openj9 | adoptopenjdk-11-hotspot | openjdk-11-jdk-headless | openjdk-11-jdk | java11-jdk, debhelper (>= 5.0.42), dh-systemd (>= 1.5), po-debconf (>= 1.0.5), rsync Standards-Version: 3.7.3 Package: opennms Architecture: all -Depends: opennms-db (=${binary:Version}), opennms-server (=${binary:Version}), opennms-webapp-jetty (=${binary:Version}) +Depends: opennms-common (=${binary:Version}), opennms-db (=${binary:Version}), opennms-server (=${binary:Version}), opennms-webapp-jetty (=${binary:Version}) Recommends: opennms-source (=${binary:Version}), openjdk-11-jdk-headless | openjdk-11-jdk | adoptopenjdk-11-openj9xl | adoptopenjdk-11-openj9 | adoptopenjdk-11-hotspot | java11-jdk Suggests: opennms-doc Description: Enterprise-grade Open-source Network Management Platform (Full Install) @@ -24,7 +24,7 @@ Description: Enterprise-grade Open-source Network Management Platform (Full Inst Package: opennms-source Architecture: all -Depends: opennms-webapp-jetty (=${binary:Version}) +Depends: opennms-common (=${binary:Version}), opennms-webapp-jetty (=${binary:Version}) Description: Enterprise-grade Open-source Network Management Platform (Source) OpenNMS is an enterprise-grade network management system written in Java. . @@ -39,7 +39,7 @@ Description: Enterprise-grade Open-source Network Management Platform (Source) Package: opennms-db Architecture: all -Depends: postgresql-13 | postgresql-12 | postgresql-11 | postgresql-10, iplike-pgsql13 | iplike-pgsql12 | iplike-pgsql11 | iplike-pgsql10, debconf +Depends: opennms-common (=${binary:Version}), postgresql-14 | postgresql-13 | postgresql-12 | postgresql-11 | postgresql-10, iplike-pgsql14 (>= 2.3.0) | iplike-pgsql13 (>= 2.3.0) | iplike-pgsql12 (>= 2.3.0) | iplike-pgsql11 (>= 2.3.0) | iplike-pgsql10 (>= 2.3.0), debconf Description: Enterprise-grade Open-source Network Management Platform (Database) OpenNMS is an enterprise-grade network management system written in Java. . @@ -57,7 +57,7 @@ Description: Enterprise-grade Open-source Network Management Platform (Database) Package: opennms-server Architecture: all Depends: opennms-common (=${binary:Version}), libopennms-java (=${binary:Version}), libopennmsdeps-java (=${binary:Version}), mailx -Suggests: jrrd2, rrdtool (>= 1.4.8), postgresql-client-13 | postgresql-client-12 | postgresql-client-11 | postgresql-client-10 +Suggests: jrrd2, rrdtool (>= 1.4.8), postgresql-client-14 | postgresql-client-13 | postgresql-client-12 | postgresql-client-11 | postgresql-client-10 Recommends: haveged Description: Enterprise-grade Open-source Network Management Platform (Daemon) OpenNMS is an enterprise-grade network management system written in Java. @@ -74,7 +74,7 @@ Description: Enterprise-grade Open-source Network Management Platform (Daemon) Package: opennms-jmx-config-generator Architecture: all -Depends: adoptopenjdk-11-openj9xl-jre | adoptopenjdk-11-openj9-jre | adoptopenjdk-11-hotspot-jre | openjdk-11-jre-headless | openjdk-11-jre +Depends: opennms-common (=${binary:Version}),adoptopenjdk-11-openj9xl-jre | adoptopenjdk-11-openj9-jre | adoptopenjdk-11-hotspot-jre | openjdk-11-jre-headless | openjdk-11-jre Description: Enterprise-grade Open-source Network Management Platform (JMX Config Generator) OpenNMS is an enterprise-grade network management system written in Java. . @@ -137,7 +137,7 @@ Description: Enterprise-grade Open-source Network Management Platform (Common Fi Package: libopennms-java Architecture: all -Depends: jicmp (>= 2.0.0), jicmp6 (>= 2.0.0) +Depends: opennms-common (=${binary:Version}), jicmp (>= 2.0.0), jicmp6 (>= 2.0.0) Conflicts: opennms-plugin-protocol-xml (<<${binary:Version}) Replaces: opennms-common (<< 1.3.0), libicmp-jni (<< 1.3.0), opennms-plugin-protocol-xml (<<${binary:Version}) Description: Enterprise-grade Open-source Network Management Platform (OpenNMS Libraries) @@ -153,6 +153,7 @@ Description: Enterprise-grade Open-source Network Management Platform (OpenNMS L Package: libopennmsdeps-java Architecture: all +Depends: opennms-common (=${binary:Version}) Description: Enterprise-grade Open-source Network Management Platform (Required Libraries) OpenNMS is an enterprise-grade network management system written in Java. . @@ -167,6 +168,7 @@ Description: Enterprise-grade Open-source Network Management Platform (Required Package: opennms-doc Section: contrib/doc Architecture: all +Depends: opennms-common (=${binary:Version}) Description: Enterprise-grade Open-source Network Management Platform (Documentation) OpenNMS is an enterprise-grade network management system written in Java. . diff --git a/debian/opennms-common.postinst b/debian/opennms-common.postinst new file mode 100644 index 000000000000..1966b5402f8d --- /dev/null +++ b/debian/opennms-common.postinst @@ -0,0 +1,52 @@ +#! /bin/sh +# postinst script for opennms-common +# +# vim:set ai et sts=4 sw=4 tw=0: + +## create the OpenNMS group if it doesn't exist +if ! getent group opennms >/dev/null 2>&1; then + if ! id -g 1000 >/dev/null 2>&1; then + # try to match Minion/Sentinel GID if possible + addgroup --system --gid 1000 opennms + else + addgroup --system opennms + fi +fi + +## create the OpenNMS user if it doesn't exist +if ! getent passwd opennms >/dev/null 2>&1; then + if ! id 1000 >/dev/null 2>&1; then + # try to match Minion/Sentinel UID if possible + adduser --system \ + --uid 1000 \ + --home /usr/share/opennms \ + --no-create-home \ + --disabled-password \ + --ingroup opennms \ + opennms + else + adduser --system \ + --home /usr/share/opennms \ + --no-create-home \ + --disabled-password \ + --ingroup opennms \ + opennms + fi +fi + +case "$1" in + configure) + /usr/share/opennms/bin/ensure-user-ping.sh || echo "WARNING: Unable to enable ping by the opennms user. Try running /usr/share/opennms/bin/ensure-user-ping.sh manually." + /usr/share/opennms/bin/update-package-permissions opennms-common + /usr/share/opennms/bin/fix-permissions -R /usr/share/opennms/etc /usr/share/opennms/lib /usr/share/opennms/logs /usr/share/opennms/share + ;; + *) + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/opennms-server.opennms.init b/debian/opennms-server.opennms.init index fc990f889a6b..f24c091e6bd2 100644 --- a/debian/opennms-server.opennms.init +++ b/debian/opennms-server.opennms.init @@ -67,7 +67,7 @@ case "$1" in echo -n "Stopping $DESC: $NAME" DAEMON_MESSAGES="$($DAEMON stop)" __ret="$?" - rm -f /var/run/$NAME.pid + rm -f /run/opennms/$NAME.pid echo "." exit "$__ret" ;; diff --git a/debian/opennms-server.postinst b/debian/opennms-server.postinst index 4cffe69bb7b6..eb63e20143f2 100644 --- a/debian/opennms-server.postinst +++ b/debian/opennms-server.postinst @@ -16,6 +16,7 @@ case "$1" in # try to detect java if possible if [ ! -e /etc/opennms/java.conf ]; then /usr/share/opennms/bin/runjava -s || : + /usr/share/opennms/bin/fix-permissions -R /usr/share/opennms/etc/java.conf fi if [ -d "/usr/share/opennms/data" ]; then @@ -23,6 +24,8 @@ case "$1" in find /usr/share/opennms/data/tmp/* -maxdepth 0 -name README -prune -o -print0 | xargs -0 rm -rf fi + /usr/share/opennms/bin/update-package-permissions opennms-server + echo "" echo " *** Installation complete. You must still run the installer at" echo " *** \$OPENNMS_HOME/bin/install to be sure your database is up" diff --git a/debian/package-permissions.sh b/debian/package-permissions.sh new file mode 100644 index 000000000000..e2c9a39af425 --- /dev/null +++ b/debian/package-permissions.sh @@ -0,0 +1,19 @@ +#! /bin/sh +# postinst script for "@PACKAGE@" +# +# vim:set ai et sts=4 sw=4 tw=0: + +case "$1" in + configure) + /usr/share/opennms/bin/update-package-permissions "@PACKAGE@" + ;; + *) + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/rules b/debian/rules index f7205aa5323b..5edc0f87f157 100755 --- a/debian/rules +++ b/debian/rules @@ -21,7 +21,7 @@ export BUILDDEFINES=\ -Dinstall.servlet.dir=/usr/share/opennms/webapps \ -Dinstall.webapps.dir=/usr/share/opennms/webapps \ -Dinstall.logs.dir=/var/log/opennms \ - -Dinstall.pid.file=/var/run/opennms.pid \ + -Dinstall.pid.file=/run/opennms/opennms.pid \ -Dmaven.test.skip.exec=true \ -DskipTests=true \ -DskipITs=true \ @@ -103,6 +103,7 @@ install: build mv debian/temp/lib/opennms-alarm-northbounder-jms-*.jar debian/opennms-plugin-northbounder-jms/usr/share/java/opennms/ mv debian/temp/etc/jms-northbounder-configuration.xml debian/opennms-plugin-northbounder-jms/etc/opennms/ mv debian/opennms-common/var/lib/opennms/etc-pristine/jms-northbounder-configuration.xml debian/opennms-plugin-northbounder-jms/var/lib/opennms/etc-pristine/ + sed -e 's,@PACKAGE@,opennms-plugin-northbounder-jms,g' debian/package-permissions.sh > debian/opennms-plugin-northbounder-jms.postinst ## ## Setup the provision adapter packages @@ -115,11 +116,17 @@ install: build mv debian/temp/lib/opennms-rancid-provisioning-adapter*.jar debian/opennms-plugin-provisioning-rancid/usr/share/java/opennms/ mv debian/temp/lib/opennms-snmp-asset-provisioning-adapter*.jar debian/opennms-plugin-provisioning-snmp-asset/usr/share/java/opennms/ mv debian/temp/lib/opennms-wsman-asset-provisioning-adapter*.jar debian/opennms-plugin-provisioning-snmp-asset/usr/share/java/opennms/ - mv debian/temp/lib/opennms-snmp-metadata-provisioning-adapter*.jar debian/opennms-plugin-provisioning-snmp-asset/usr/share/java/opennms/ mv debian/temp/lib/opennms-snmp-hardware-inventory-provisioning-adapter*.jar debian/opennms-plugin-provisioning-snmp-hardware-inventory/usr/share/java/opennms/ mv debian/temp/etc/snmp-asset-adapter-configuration.xml debian/opennms-plugin-provisioning-snmp-asset/etc/opennms/ mv debian/temp/etc/snmp-hardware-inventory-adapter-configuration.xml debian/opennms-plugin-provisioning-snmp-hardware-inventory/etc/opennms/ find debian/opennms-plugin*/etc/opennms -type f -execdir chmod 644 {} \; + sed -e 's,@PACKAGE@,opennms-plugin-provisioning-dns,g' debian/package-permissions.sh > debian/opennms-plugin-provisioning-dns.postinst + sed -e 's,@PACKAGE@,opennms-plugin-provisioning-link,g' debian/package-permissions.sh > debian/opennms-plugin-provisioning-link.postinst + sed -e 's,@PACKAGE@,opennms-plugin-provisioning-map,g' debian/package-permissions.sh > debian/opennms-plugin-provisioning-map.postinst + sed -e 's,@PACKAGE@,opennms-plugin-provisioning-rancid,g' debian/package-permissions.sh > debian/opennms-plugin-provisioning-rancid.postinst + sed -e 's,@PACKAGE@,opennms-plugin-provisioning-reverse-dns,g' debian/package-permissions.sh > debian/opennms-plugin-provisioning-reverse-dns.postinst + sed -e 's,@PACKAGE@,opennms-plugin-provisioning-snmp-asset,g' debian/package-permissions.sh > debian/opennms-plugin-provisioning-snmp-asset.postinst + sed -e 's,@PACKAGE@,opennms-plugin-provisioning-snmp-hardware-inventory,g' debian/package-permissions.sh > debian/opennms-plugin-provisioning-snmp-hardware-inventory.postinst # etc-pristine version mv debian/opennms-common/var/lib/opennms/etc-pristine/snmp-asset-adapter-configuration.xml debian/opennms-plugin-provisioning-snmp-asset/var/lib/opennms/etc-pristine/ @@ -141,6 +148,7 @@ install: build install -d -m 755 debian/opennms-plugin-collector-juniper-tca/var/lib/opennms/etc-pristine install -d -m 755 debian/opennms-plugin-collector-juniper-tca/var/lib/opennms/xsds install -d -m 755 debian/opennms-plugin-collector-juniper-tca/etc/opennms/{datacollection,snmp-graph.properties.d} + sed -e 's,@PACKAGE@,opennms-plugin-collector-juniper-tca,g' debian/package-permissions.sh > debian/opennms-plugin-collector-juniper-tca.postinst # Setup ticketers install -d -m 755 debian/opennms-plugin-ticketer-{jira,otrs,rt}/usr/share/java/opennms @@ -149,20 +157,24 @@ install: build # CIFS mv debian/temp/lib/org.opennms.protocols.cifs-*.jar debian/opennms-plugin-protocol-cifs/usr/share/java/opennms/ + sed -e 's,@PACKAGE@,opennms-plugin-protocol-cifs,g' debian/package-permissions.sh > debian/opennms-plugin-protocol-cifs.postinst # NSClient mv debian/temp/lib/org.opennms.protocols.nsclient-*.jar debian/opennms-plugin-protocol-nsclient/usr/share/java/opennms/ mv debian/temp/etc/nsclient*.xml debian/opennms-plugin-protocol-nsclient/etc/opennms/ mv debian/temp/share/xsds/nsclient*.xsd debian/opennms-plugin-protocol-nsclient/var/lib/opennms/xsds/ mv debian/opennms-common/var/lib/opennms/etc-pristine/nsclient*.xml debian/opennms-plugin-protocol-nsclient/var/lib/opennms/etc-pristine/ + sed -e 's,@PACKAGE@,opennms-plugin-protocol-nsclient,g' debian/package-permissions.sh > debian/opennms-plugin-protocol-nsclient.postinst # RADIUS mv debian/temp/lib/*radius*.jar debian/opennms-plugin-protocol-radius/usr/share/java/opennms/ + sed -e 's,@PACKAGE@,opennms-plugin-protocol-radius,g' debian/package-permissions.sh > debian/opennms-plugin-protocol-radius.postinst # VTD-XML install -d -m 755 debian/opennms-plugin-collector-vtdxml-handler/usr/share/java/opennms mv debian/temp/lib/vtd-xml-*.jar debian/opennms-plugin-collector-vtdxml-handler/usr/share/java/opennms/ mv debian/temp/lib/opennms-vtdxml-collector-handler-*.jar debian/opennms-plugin-collector-vtdxml-handler/usr/share/java/opennms/ + sed -e 's,@PACKAGE@,opennms-plugin-collector-vtdxml-handler,g' debian/package-permissions.sh > debian/opennms-plugin-collector-vtdxml-handler.postinst # XMP mv debian/temp/lib/xmp-*.jar debian/opennms-plugin-protocol-xmp/usr/share/java/opennms/ @@ -170,6 +182,7 @@ install: build mv debian/temp/etc/xmp*-config.xml debian/opennms-plugin-protocol-xmp/etc/opennms/ mv debian/temp/share/xsds/xmp*.xsd debian/opennms-plugin-protocol-xmp/var/lib/opennms/xsds/ mv debian/opennms-common/var/lib/opennms/etc-pristine/xmp*-config.xml debian/opennms-plugin-protocol-xmp/var/lib/opennms/etc-pristine/ + sed -e 's,@PACKAGE@,opennms-plugin-protocol-xmp,g' debian/package-permissions.sh > debian/opennms-plugin-protocol-xmp.postinst # Juniper TCA install -d -m 755 debian/opennms-plugin-collector-juniper-tca/var/lib/opennms/etc-pristine/{datacollection,snmp-graph.properties.d} @@ -180,6 +193,7 @@ install: build mv debian/opennms-common/var/lib/opennms/etc-pristine/tca*-config.xml debian/opennms-plugin-collector-juniper-tca/var/lib/opennms/etc-pristine/ mv debian/opennms-common/var/lib/opennms/etc-pristine/datacollection/juniper-tca* debian/opennms-plugin-collector-juniper-tca/var/lib/opennms/etc-pristine/datacollection/ mv debian/opennms-common/var/lib/opennms/etc-pristine/snmp-graph.properties.d/juniper-tca* debian/opennms-plugin-collector-juniper-tca/var/lib/opennms/etc-pristine/snmp-graph.properties.d/ + sed -e 's,@PACKAGE@,opennms-plugin-collector-juniper-tca,g' debian/package-permissions.sh > debian/opennms-plugin-collector-juniper-tca.postinst # JIRA mkdir -p debian/opennms-plugin-ticketer-jira/usr/share/opennms/system/org/opennms/features/jira-troubleticketer @@ -188,16 +202,19 @@ install: build mv debian/temp/system/org/opennms/features/jira-client/* debian/opennms-plugin-ticketer-jira/usr/share/opennms/system/org/opennms/features/jira-client/ mv debian/temp/etc/jira.properties debian/opennms-plugin-ticketer-jira/etc/opennms/ mv debian/opennms-common/var/lib/opennms/etc-pristine/jira.properties debian/opennms-plugin-ticketer-jira/var/lib/opennms/etc-pristine/ + sed -e 's,@PACKAGE@,opennms-plugin-ticketer-jira,g' debian/package-permissions.sh > debian/opennms-plugin-ticketer-jira.postinst # OTRS mv debian/temp/lib/opennms-integration-otrs*.jar debian/opennms-plugin-ticketer-otrs/usr/share/java/opennms/ mv debian/temp/etc/otrs.properties debian/opennms-plugin-ticketer-otrs/etc/opennms/ mv debian/opennms-common/var/lib/opennms/etc-pristine/otrs.properties debian/opennms-plugin-ticketer-otrs/var/lib/opennms/etc-pristine/ + sed -e 's,@PACKAGE@,opennms-plugin-ticketer-otrs,g' debian/package-permissions.sh > debian/opennms-plugin-ticketer-otrs.postinst # RT mv debian/temp/lib/opennms-integration-rt*.jar debian/opennms-plugin-ticketer-rt/usr/share/java/opennms/ mv debian/temp/etc/rt.properties debian/opennms-plugin-ticketer-rt/etc/opennms/ mv debian/opennms-common/var/lib/opennms/etc-pristine/rt.properties debian/opennms-plugin-ticketer-rt/var/lib/opennms/etc-pristine/ + sed -e 's,@PACKAGE@,opennms-plugin-ticketer-rt,g' debian/package-permissions.sh > debian/opennms-plugin-ticketer-rt.postinst ## ## opennms-jmx-config-generator @@ -206,6 +223,7 @@ install: build install -m 755 debian/opennms-jmx-config-generator.bin debian/opennms-jmx-config-generator/usr/bin/opennms-jmx-config-generator mv debian/temp/bin/jmx-config-generator debian/opennms-jmx-config-generator/usr/share/opennms/bin/ mv debian/temp/lib/opennms_jmx_config_generator.jar debian/opennms-jmx-config-generator/usr/share/java/opennms/ + sed -e 's,@PACKAGE@,opennms-jmx-config-generator,g' debian/package-permissions.sh > debian/opennms-jmx-config-generator.postinst ## ## Setup the libopennms-java package @@ -213,12 +231,14 @@ install: build mv debian/temp/lib/opennms*.jar debian/libopennms-java/usr/share/java/opennms/ mv debian/temp/lib/endorsed debian/libopennms-java/usr/share/java/opennms/ chmod 644 debian/libopennms-java/usr/share/java/opennms/*.jar debian/libopennms-java/usr/share/java/opennms/endorsed/*.jar + sed -e 's,@PACKAGE@,libopennms-java,g' debian/package-permissions.sh > debian/libopennms-java.postinst ## ## Setup the libopennmsdeps-java package ## mv debian/temp/lib/*.jar debian/libopennmsdeps-java/usr/share/java/opennms/ chmod 644 debian/libopennmsdeps-java/usr/share/java/opennms/* + sed -e 's,@PACKAGE@,libopennmsdeps-java,g' debian/package-permissions.sh > debian/libopennmsdeps-java.postinst ## ## Setup the opennms-common package @@ -262,6 +282,7 @@ install: build ## ## Setup the opennms-db package ## + sed -e 's,@PACKAGE@,opennms-db,g' debian/package-permissions.sh > debian/opennms-db.postinst ## ## Setup the opennms-server package @@ -273,6 +294,7 @@ install: build install -d -m 755 debian/opennms-source/usr/share/opennms/jetty-webapps/opennms mv debian/temp/jetty-webapps/opennms/source debian/opennms-source/usr/share/opennms/jetty-webapps/opennms/ find debian/opennms-webapp-jetty/usr/share/opennms/jetty-webapps/opennms* -type f -execdir chmod 644 {} \; + sed -e 's,@PACKAGE@,opennms-source,g' debian/package-permissions.sh > debian/opennms-source.postinst ## ## Setup the opennms-webapp-jetty package @@ -282,6 +304,7 @@ install: build mv debian/temp/jetty-webapps/opennms/* debian/opennms-webapp-jetty/usr/share/opennms/jetty-webapps/opennms/ mv debian/temp/jetty-webapps/ROOT/* debian/opennms-webapp-jetty/usr/share/opennms/jetty-webapps/ROOT/ find debian/opennms-webapp-jetty/usr/share/opennms/jetty-webapps/opennms* -type f -execdir chmod 644 {} \; + sed -e 's,@PACKAGE@,opennms-webapp-jetty,g' debian/package-permissions.sh > debian/opennms-webapp-jetty.postinst ## ## Setup the opennms-webapp-hawtio package @@ -290,6 +313,7 @@ install: build install -m 644 debian/opennms-webapp-hawtio.overrides debian/opennms-webapp-hawtio/usr/share/lintian/overrides/opennms-webapp-hawtio mv debian/temp/jetty-webapps/hawtio/* debian/opennms-webapp-hawtio/usr/share/opennms/jetty-webapps/hawtio/ find debian/opennms-webapp-hawtio/usr/share/opennms/jetty-webapps/hawtio* -type f -execdir chmod 644 {} \; + sed -e 's,@PACKAGE@,opennms-webapp-hawtio,g' debian/package-permissions.sh > debian/opennms-webapp-hawtio.postinst ## ## Setup the opennms-contrib package @@ -303,6 +327,7 @@ install: build chmod 755 debian/opennms-contrib/usr/share/opennms/contrib/downOpenNMS \ debian/opennms-contrib/usr/share/opennms/contrib/alvarion/link_quality \ debian/opennms-contrib/usr/share/opennms/contrib/alvarion/run_link_quality + sed -e 's,@PACKAGE@,opennms-contrib,g' debian/package-permissions.sh > debian/opennms-contrib.postinst ## ## Make sure there aren't any files left over in debian/temp that missed packaging diff --git a/dependencies/activemq-web/pom.xml b/dependencies/activemq-web/pom.xml index 70060c328545..4a4f18714a02 100644 --- a/dependencies/activemq-web/pom.xml +++ b/dependencies/activemq-web/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/activemq/pom.xml b/dependencies/activemq/pom.xml index d23f307f050c..54b7015764bd 100644 --- a/dependencies/activemq/pom.xml +++ b/dependencies/activemq/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/asterisk/pom.xml b/dependencies/asterisk/pom.xml index 409996551e08..e0fc6621cf7f 100644 --- a/dependencies/asterisk/pom.xml +++ b/dependencies/asterisk/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/atomikos/pom.xml b/dependencies/atomikos/pom.xml index 7601fd38aca2..677ac980fd75 100644 --- a/dependencies/atomikos/pom.xml +++ b/dependencies/atomikos/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/aws/pom.xml b/dependencies/aws/pom.xml deleted file mode 100644 index 04b936469d27..000000000000 --- a/dependencies/aws/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - dependencies - org.opennms - 28.1.1 - - 4.0.0 - org.opennms.dependencies - aws-dependencies - pom - OpenNMS :: Dependencies :: AWS - - - com.amazonaws - aws-java-sdk-core - ${awsSdkVersion} - - - log4j - log4j - - - slf4j-log4j12 - org.slf4j - - - commons-logging - commons-logging - - - - - com.amazonaws - aws-java-sdk-sqs - ${awsSdkVersion} - - - log4j - log4j - - - slf4j-log4j12 - org.slf4j - - - commons-logging - commons-logging - - - - - com.amazonaws - amazon-sqs-java-messaging-lib - ${awsSqsMessagingVersion} - - - log4j - log4j - - - slf4j-log4j12 - org.slf4j - - - commons-logging - commons-logging - - - - - diff --git a/dependencies/camel-test/pom.xml b/dependencies/camel-test/pom.xml index 58df574af8ed..989689255652 100644 --- a/dependencies/camel-test/pom.xml +++ b/dependencies/camel-test/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/camel/pom.xml b/dependencies/camel/pom.xml index 6b8880e43f86..b2417bb81b61 100644 --- a/dependencies/camel/pom.xml +++ b/dependencies/camel/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/cxf/pom.xml b/dependencies/cxf/pom.xml index 6ec36f0c4197..78d85b14bc3c 100644 --- a/dependencies/cxf/pom.xml +++ b/dependencies/cxf/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/dnsjava/pom.xml b/dependencies/dnsjava/pom.xml index 2ed80c0f519f..4dd3c47190da 100644 --- a/dependencies/dnsjava/pom.xml +++ b/dependencies/dnsjava/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -34,7 +34,7 @@ true sonatype-public-repo Sonatype Public Maven Repository - http://maven.opennms.org/content/repositories/sonatype-public-repo/ + https://maven.opennms.org/content/repositories/sonatype-public-repo/ diff --git a/dependencies/drools/pom.xml b/dependencies/drools/pom.xml index 526da690f496..6703b6459a4a 100644 --- a/dependencies/drools/pom.xml +++ b/dependencies/drools/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/felix/pom.xml b/dependencies/felix/pom.xml index 8ae87bb69a04..b1b5b6c91926 100644 --- a/dependencies/felix/pom.xml +++ b/dependencies/felix/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/hibernate/pom.xml b/dependencies/hibernate/pom.xml index b1bda3547527..87a64302ec4b 100644 --- a/dependencies/hibernate/pom.xml +++ b/dependencies/hibernate/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/jasper/pom.xml b/dependencies/jasper/pom.xml index f621ca43ae5c..ef4834917bbd 100644 --- a/dependencies/jasper/pom.xml +++ b/dependencies/jasper/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -114,21 +114,21 @@ true jasperreports Jasper Reports Maven Repository - http://maven.opennms.org/content/repositories/jasperreports + https://maven.opennms.org/content/repositories/jasperreports false true jaspersoft-third-party JasperSoft Third Party Maven Repository - http://maven.opennms.org/content/repositories/jaspersoft-third-party + https://maven.opennms.org/content/repositories/jaspersoft-third-party false true opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/jasypt/pom.xml b/dependencies/jasypt/pom.xml index f6f5c9f53a31..de8e0fe8546c 100644 --- a/dependencies/jasypt/pom.xml +++ b/dependencies/jasypt/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/javamail/pom.xml b/dependencies/javamail/pom.xml index 0b52f8a4f4ff..a7c966d4b181 100644 --- a/dependencies/javamail/pom.xml +++ b/dependencies/javamail/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -27,7 +27,7 @@ true opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/jaxb/pom.xml b/dependencies/jaxb/pom.xml index 316d56d513d1..8752542489d9 100644 --- a/dependencies/jaxb/pom.xml +++ b/dependencies/jaxb/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -27,8 +27,8 @@ - javax.mail - mail + com.sun.mail + jakarta.mail
diff --git a/dependencies/jcifs-shaded/pom.xml b/dependencies/jcifs-shaded/pom.xml index 656364155d25..52c0555aaae6 100644 --- a/dependencies/jcifs-shaded/pom.xml +++ b/dependencies/jcifs-shaded/pom.xml @@ -5,7 +5,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/dependencies/jcifs/pom.xml b/dependencies/jcifs/pom.xml index 49a680cb11bb..c8628340ea44 100644 --- a/dependencies/jcifs/pom.xml +++ b/dependencies/jcifs/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -28,7 +28,7 @@ true opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/jfreechart/pom.xml b/dependencies/jfreechart/pom.xml index d375e03ea35f..46badcd5cd24 100644 --- a/dependencies/jfreechart/pom.xml +++ b/dependencies/jfreechart/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/jinterop/pom.xml b/dependencies/jinterop/pom.xml index 6bc59d43b9d5..adb60567d31d 100644 --- a/dependencies/jinterop/pom.xml +++ b/dependencies/jinterop/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -43,7 +43,7 @@ true opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/jmx/pom.xml b/dependencies/jmx/pom.xml index 4dd89ae12e2c..70b54ccaab6c 100644 --- a/dependencies/jmx/pom.xml +++ b/dependencies/jmx/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT ../pom.xml 4.0.0 @@ -39,7 +39,7 @@ true${updatePolicy} opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/jna/pom.xml b/dependencies/jna/pom.xml index 1e384013f074..98cdcaec2cfa 100644 --- a/dependencies/jna/pom.xml +++ b/dependencies/jna/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -32,7 +32,7 @@ true opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/jnlp/pom.xml b/dependencies/jnlp/pom.xml index 34eec72209db..b9ef30409c3f 100644 --- a/dependencies/jnlp/pom.xml +++ b/dependencies/jnlp/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -37,7 +37,7 @@ true opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/jradius-extended/pom.xml b/dependencies/jradius-extended/pom.xml index 81ccd08c750a..e3398e69e4c5 100644 --- a/dependencies/jradius-extended/pom.xml +++ b/dependencies/jradius-extended/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -104,7 +104,7 @@ true coova Coova Repository - http://maven.opennms.org/content/repositories/coova/ + https://maven.opennms.org/content/repositories/coova/ diff --git a/dependencies/jradius/pom.xml b/dependencies/jradius/pom.xml index 062492be74f4..caab0e91892a 100644 --- a/dependencies/jradius/pom.xml +++ b/dependencies/jradius/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -114,7 +114,7 @@ true coova Coova Repository - http://maven.opennms.org/content/repositories/coova/ + https://maven.opennms.org/content/repositories/coova/ diff --git a/dependencies/jrobin/pom.xml b/dependencies/jrobin/pom.xml index 727b8bb000a7..3164ab57bf02 100644 --- a/dependencies/jrobin/pom.xml +++ b/dependencies/jrobin/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -23,14 +23,14 @@ false${updatePolicy} opennms-snapshots OpenNMS Maven Snapshot Repository - http://maven.opennms.org/content/groups/opennms.org-snapshot + https://maven.opennms.org/content/groups/opennms.org-snapshot false${updatePolicy} true${updatePolicy} opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/jrrd/pom.xml b/dependencies/jrrd/pom.xml index 46a99e12da26..239d69047cf1 100644 --- a/dependencies/jrrd/pom.xml +++ b/dependencies/jrrd/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -23,7 +23,7 @@ true opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/jrrd2/pom.xml b/dependencies/jrrd2/pom.xml index afba5fd22dac..2b6d6361c783 100644 --- a/dependencies/jrrd2/pom.xml +++ b/dependencies/jrrd2/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -23,7 +23,7 @@ true opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/jstl/pom.xml b/dependencies/jstl/pom.xml index 83a26619c1a6..eb0a525625ba 100644 --- a/dependencies/jstl/pom.xml +++ b/dependencies/jstl/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/liquibase/pom.xml b/dependencies/liquibase/pom.xml index 9d5c3d6a83b9..d026c64ad1af 100644 --- a/dependencies/liquibase/pom.xml +++ b/dependencies/liquibase/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -40,7 +40,7 @@ true opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/mina/pom.xml b/dependencies/mina/pom.xml index f91022c36189..e7d57d5e9d28 100644 --- a/dependencies/mina/pom.xml +++ b/dependencies/mina/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/netty/pom.xml b/dependencies/netty/pom.xml index c93665d34502..cf9618416939 100644 --- a/dependencies/netty/pom.xml +++ b/dependencies/netty/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/newts/pom.xml b/dependencies/newts/pom.xml index cc50235d9640..5a69a7e18464 100644 --- a/dependencies/newts/pom.xml +++ b/dependencies/newts/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/owasp/pom.xml b/dependencies/owasp/pom.xml index 9e7fd7c8bf9c..389d384a32a2 100644 --- a/dependencies/owasp/pom.xml +++ b/dependencies/owasp/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/pax-exam/pom.xml b/dependencies/pax-exam/pom.xml index 5f0ba0c9fc7a..b5e3fca318d4 100644 --- a/dependencies/pax-exam/pom.xml +++ b/dependencies/pax-exam/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -20,7 +20,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/dependencies/pom.xml b/dependencies/pom.xml index 1be801806d98..350b2329ead5 100644 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -3,7 +3,7 @@ opennms org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 dependencies @@ -14,7 +14,6 @@ activemq-web asterisk atomikos - aws camel camel-test cxf diff --git a/dependencies/quartz/pom.xml b/dependencies/quartz/pom.xml index 531d4684419b..62acb1a37a26 100644 --- a/dependencies/quartz/pom.xml +++ b/dependencies/quartz/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/rancid/pom.xml b/dependencies/rancid/pom.xml index 472a77ba392e..0dba7cbd95ff 100644 --- a/dependencies/rancid/pom.xml +++ b/dependencies/rancid/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -33,7 +33,7 @@ true opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/servlet/pom.xml b/dependencies/servlet/pom.xml index bade45fba8bb..f2ef35ea4fda 100644 --- a/dependencies/servlet/pom.xml +++ b/dependencies/servlet/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/smack/pom.xml b/dependencies/smack/pom.xml index 06c97555de57..89f97ae45d92 100644 --- a/dependencies/smack/pom.xml +++ b/dependencies/smack/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/smslib/pom.xml b/dependencies/smslib/pom.xml index dafc3259b0b5..5903f424319f 100644 --- a/dependencies/smslib/pom.xml +++ b/dependencies/smslib/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -26,7 +26,7 @@ smslib-repo SMSLib Maven Repository - http://maven.opennms.org/content/repositories/smslib-repo/ + https://maven.opennms.org/content/repositories/smslib-repo/ diff --git a/dependencies/snmp-test/pom.xml b/dependencies/snmp-test/pom.xml index f51eda53903e..308a64a2bc00 100644 --- a/dependencies/snmp-test/pom.xml +++ b/dependencies/snmp-test/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -45,7 +45,7 @@ true opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/snmp/pom.xml b/dependencies/snmp/pom.xml index 0dcfc0d1cb72..19e8c98ae810 100644 --- a/dependencies/snmp/pom.xml +++ b/dependencies/snmp/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -37,7 +37,7 @@ true${updatePolicy} opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/dependencies/snmp4j-agent/pom.xml b/dependencies/snmp4j-agent/pom.xml index d9326f4638cb..7d5ff9f240d1 100644 --- a/dependencies/snmp4j-agent/pom.xml +++ b/dependencies/snmp4j-agent/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/snmp4j/pom.xml b/dependencies/snmp4j/pom.xml index 7b0e4a7817e9..e206708c2946 100644 --- a/dependencies/snmp4j/pom.xml +++ b/dependencies/snmp4j/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/spring-security-core/pom.xml b/dependencies/spring-security-core/pom.xml index 020469418690..96bedf906f7a 100644 --- a/dependencies/spring-security-core/pom.xml +++ b/dependencies/spring-security-core/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/spring-security/pom.xml b/dependencies/spring-security/pom.xml index 73ebe7efe6c2..36b972af004d 100644 --- a/dependencies/spring-security/pom.xml +++ b/dependencies/spring-security/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/spring-test/pom.xml b/dependencies/spring-test/pom.xml index 8d8859f7ec44..bae5832eabbc 100644 --- a/dependencies/spring-test/pom.xml +++ b/dependencies/spring-test/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/spring-web/pom.xml b/dependencies/spring-web/pom.xml index 2a5e9f259d25..4fd720d1a26b 100644 --- a/dependencies/spring-web/pom.xml +++ b/dependencies/spring-web/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/spring/pom.xml b/dependencies/spring/pom.xml index 55f33f2971a8..b6691eda8a57 100644 --- a/dependencies/spring/pom.xml +++ b/dependencies/spring/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/dependencies/tracker/pom.xml b/dependencies/tracker/pom.xml index e6a7c16794da..b21af67d0b28 100644 --- a/dependencies/tracker/pom.xml +++ b/dependencies/tracker/pom.xml @@ -3,7 +3,7 @@ dependencies org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies @@ -29,14 +29,14 @@ true opennms-repo OpenNMS Maven Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release true false opennms-snapshots OpenNMS Snapshot Maven Repository - http://maven.opennms.org/content/groups/opennms.org-snapshot + https://maven.opennms.org/content/groups/opennms.org-snapshot diff --git a/dependencies/twitter4j/pom.xml b/dependencies/twitter4j/pom.xml index f71c48e6b0b9..26dc7bf8caf7 100644 --- a/dependencies/twitter4j/pom.xml +++ b/dependencies/twitter4j/pom.xml @@ -3,7 +3,7 @@ org.opennms dependencies - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.dependencies diff --git a/docs/antora.yml b/docs/antora.yml index ddceb91a20cf..2b353bf21130 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -1,5 +1,5 @@ name: horizon -version: '28.1.1' +version: '29.0.0-SNAPSHOT' title: Horizon prerelease: true asciidoc: diff --git a/docs/modules/deployment/pages/core/centos-rhel/firewall-core.adoc b/docs/modules/deployment/pages/core/centos-rhel/firewall-core.adoc new file mode 100644 index 000000000000..a09117928044 --- /dev/null +++ b/docs/modules/deployment/pages/core/centos-rhel/firewall-core.adoc @@ -0,0 +1,14 @@ +.Enable Masquerade to allow port forwarding +[source, console] +---- +sudo firewall-cmd --permanent --add-masquerade +---- + +.Forward SNMP Trap UDP port 162 to 10162 +[source, console] +---- +sudo firewall-cmd --permanent --add-port=162/udp +sudo firewall-cmd --permanent --add-port=10162/udp +sudo firewall-cmd --permanent --add-forward-port=port=162:proto=udp:toport=10162 +sudo systemctl reload firewalld +---- diff --git a/docs/modules/deployment/pages/core/centos-rhel/initialize-core.adoc b/docs/modules/deployment/pages/core/centos-rhel/initialize-core.adoc index 3547794add94..b8db615331d7 100644 --- a/docs/modules/deployment/pages/core/centos-rhel/initialize-core.adoc +++ b/docs/modules/deployment/pages/core/centos-rhel/initialize-core.adoc @@ -1,7 +1,7 @@ .Configure PostgreSQL database access [source, console] ---- -sudo vi /opt/opennms/etc/opennms-datasources.xml +sudo -u opennms vi /opt/opennms/etc/opennms-datasources.xml ---- .Set credentials to access the PostgreSQL database @@ -53,6 +53,5 @@ sudo firewall-cmd --permanent --add-port=8980/tcp sudo systemctl reload firewalld ---- -TIP: To receive SNMP Traps or Syslog messages you must allow incoming traffic on your host firewall as well. - By default, the OpenNMS {page-component-title} SNMP trap daemon listens on 162/udp and the Syslog daemon listens on 10514/udp. - The SNMP Trap daemon is enabled by default, the OpenNMS Syslog daemon is disabled. +NOTE: The core service user must be able to send ICMP echo requests. + During setup, the permissions for `net.ipv4.ping_group_range` are set permanently on boot in `/etc/sysctl.d/99-opennms-non-root-icmp.conf`. diff --git a/docs/modules/deployment/pages/core/debian-ubuntu/firewall-core.adoc b/docs/modules/deployment/pages/core/debian-ubuntu/firewall-core.adoc new file mode 100644 index 000000000000..9bea8463c377 --- /dev/null +++ b/docs/modules/deployment/pages/core/debian-ubuntu/firewall-core.adoc @@ -0,0 +1,22 @@ +.Enable Masquerade to allow port forwarding +[source, console] +---- +sudo vi /etc/ufw/before.rules +---- + +.For SNMP Trap forwarding, add the following lines at the top before the `*filter` section +[source, console] +---- +*nat +:PREROUTING ACCEPT [0:0] +-A PREROUTING -p udp --dport 162 -j REDIRECT --to-port 10162 +COMMIT +---- + +.Apply the firewall changes +[source, console] +---- +sudo ufw allow in 162/udp +sudo ufw allow in 10162/udp +sudo ufw reload +---- diff --git a/docs/modules/deployment/pages/core/debian-ubuntu/initialize-core.adoc b/docs/modules/deployment/pages/core/debian-ubuntu/initialize-core.adoc index 727d7ea70869..895d89804717 100644 --- a/docs/modules/deployment/pages/core/debian-ubuntu/initialize-core.adoc +++ b/docs/modules/deployment/pages/core/debian-ubuntu/initialize-core.adoc @@ -1,7 +1,7 @@ .Configure PostgreSQL database access [source, shell] ---- -sudo vi /usr/share/opennms/etc/opennms-datasources.xml +sudo -u opennms vi /usr/share/opennms/etc/opennms-datasources.xml ---- .Set credentials to access the PostgreSQL database @@ -40,11 +40,7 @@ sudo /usr/share/opennms/bin/runjava -s sudo /usr/share/opennms/bin/install -dis ---- -.Enable {page-component-title} core instance on system boot and start immediately -[source, console] ----- -sudo systemctl enable --now opennms ----- +NOTE: The core service user must be able to send ICMP echo requests. + During setup, the permissions for `net.ipv4.ping_group_range` are set permanently on boot in `/etc/sysctl.d/99-opennms-non-root-icmp.conf` -TIP: By default the OpenNMS SNMP Trap daemon listens on 162/udp and the Syslog daemon listens on 10514/udp. - The SNMP Trap daemon is enabled by default, the OpenNMS Syslog daemon is disabled. +TIP: If you are using Uncomplicated Firewall (UFW) as your host firewall, you can allow access to the web user interface with the command `sudo ufw allow 8980/tcp`. diff --git a/docs/modules/deployment/pages/core/getting-started.adoc b/docs/modules/deployment/pages/core/getting-started.adoc index 9bc71630520d..2683e9c6d29b 100644 --- a/docs/modules/deployment/pages/core/getting-started.adoc +++ b/docs/modules/deployment/pages/core/getting-started.adoc @@ -32,6 +32,7 @@ NOTE: On Debian, you must install and configure `sudo` yourself. endif::[] +[[setup-postgresql]] == Set up PostgreSQL [{tabs}] @@ -125,6 +126,52 @@ include::docker/initialize.adoc[] endif::[] ==== +== Receive SNMP Traps/Informs + +OpenNMS {page-component-title} core lets you receive and process SNMP Traps/Informs out of the box. +The OpenNMS {page-component-title} core services run as an unprivileged user and can't bind on port numbers < 1024 without escalated privileges. +For this reason, the default port for the SNMP Trap/Inform listener is set to port number 10162/udp instead of the IANA registered port number 162/udp. +The following example shows how to configure the local firewall daemon to forward port 162/udp to 10162/udp. + +TIP: If you need SNMP Trap listener on port 162/udp directly, you can add the Linux `CAP_NET_BIND_SERVICE` capability to the Java binary using `setcap`. + Be aware: this method allows any Java program run on your system to bind to privileged ports < 1024. + +[{tabs}] +==== +CentOS/RHEL 7/8:: ++ +-- +include::centos-rhel/firewall-core.adoc[] +-- + +ifeval::["{page-component-title}" == "Horizon"] +Debian/Ubuntu:: ++ +-- +include::debian-ubuntu/firewall-core.adoc[] +-- +endif::[] +==== + +You can verify your firewall and port forwarding configuration by sending an SNMP trap from a remote system to your OpenNMS {page-component-title} core instance with the following command: + +[source, console] +---- +snmptrap -v 2c -c public opennms-core-host '' 1.3.6.1.4.1.2021.991.17 .1.3.6.1.2.1.1.6.0 s "Milky Way"<1><2> +---- +<1> By default, OpenNMS uses the community string `public`. +If you changed the community string in OpenNMS, use that name here. +<2> Replace `opennms-core-host` with the IP or FQDN of your OpenNMS {page-component-title} core instance. + +On RHEL/CentOS the `snmptrap` command line tool is part of the `net-snmp-utils`. +When you run on Debian/Ubuntu, you have to install the `snmp-utils` package. + +Your configuration works as expected when you see an SNMP trap event in the web UI. + +. Log in to the web UI. +. Click menu:Status[Events > All events]. +. Verify you received a `uei.opennms.org/generic/traps/EnterpriseDefault` event from your test host. + == First login After you start the {page-component-title} Core services, access the web application at + @@ -139,3 +186,7 @@ IMPORTANT: Immediately change the password to a secure one. . Use *admin* as the current password then type and confirm a new password in the appropriate boxes. . Click btn:[Submit]. . Log out, then log in with your new password. + +== First monitored node +The default configuration will discover a single node with an interface 127.0.0.1 and detect services exposed on the loopback interface, including the OpenNMS-JVM service. +Nodes with this service have JMX-based data collection performed on Java JVM statistics such as heap memory and open file handles. diff --git a/docs/modules/deployment/pages/core/message-broker/aws-sqs.adoc b/docs/modules/deployment/pages/core/message-broker/aws-sqs.adoc deleted file mode 100644 index 31f01806edf0..000000000000 --- a/docs/modules/deployment/pages/core/message-broker/aws-sqs.adoc +++ /dev/null @@ -1,47 +0,0 @@ -.Create a configuration file for AWS SQS settings -[source, console] ----- -sudo vi etc/opennms.properties.d/aws-sqs.properties ----- - -.Configure AWS SQS -[source, aws-sqs.properties] ----- -org.opennms.core.ipc.rpc.strategy=sqs<1> -org.opennms.core.ipc.sink.strategy=sqs<2> -org.opennms.core.ipc.sink.initialSleepTime=60000<3> -org.opennms.core.ipc.aws.sqs.sink.FifoQueue=false<4> - -org.opennms.core.ipc.aws.sqs.aws_region=us-east-1<5> -org.opennms.core.ipc.aws.sqs.aws_access_key_id=my-access-key<6> -org.opennms.core.ipc.aws.sqs.aws_secret_access_key=my-secret-access-key<7> ----- - -<1> Use AWS SQS for remote procedure calls (RPC). -<2> Use AWS SQS as message sink. -<3> Ensure that messages are not consumed from Kafka until the system has fully initialized. Default is 60 seconds. -<4> If you require consistent ordering of incoming messages, you can use FIFO queues. Default is false and **must** match the Minion setting. -<5> Set AWS SQS region. -<6> The AWS SQS access key. -<7> The AWS SQS secret for the access key. - -The default credential provider chain looks for credentials in the following order: - -1. Environment variables (such as `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`). -2. Java system properties (such as `aws.accessKeyId` and `aws.secretKey`). Add these keys to `$\{OPENNMS_HOME}/etc/opennms.conf`). -3. Default credential profiles file (for example, `~/.aws/credentials`). -4. Amazon ECS container credentials (for example, `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`). -5. Instance profile credentials (such as through the metadata service when running on EC2). - -.Apply the changes with {page-component-title} Core instance restart -[source, console] ----- -sudo systemctl restart opennms ----- - -TIP: When OpenNMS {page-component-title} runs inside AWS, you can use the default provider chain with an IAM role to avoid hard coding the AWS credentials on a configuration file. - The following shows an example of the role to associate with the EC2 instance on which OpenNMS is going to run. - -image::deployment/core/message-broker/aws-iam-role.png[] - -You can find available configuration parameters in the xref:reference:configuration/aws-sqs.adoc[Amazon Simple Queue Service]. diff --git a/docs/modules/deployment/pages/core/message-broker/kafka.adoc b/docs/modules/deployment/pages/core/message-broker/kafka.adoc index 2d86c372062c..1778f9e20a46 100644 --- a/docs/modules/deployment/pages/core/message-broker/kafka.adoc +++ b/docs/modules/deployment/pages/core/message-broker/kafka.adoc @@ -7,17 +7,17 @@ sudo vi etc/opennms.properties.d/kafka.properties .Configure Kafka [source, kafka.properties] ---- -org.opennms.core.ipc.rpc.strategy=kafka<1> -org.opennms.core.ipc.rpc.kafka.bootstrap.servers=my-kafka-ip-1:9092,my-kafka-ip-2:9092<2> -org.opennms.core.ipc.sink.strategy=kafka<3> -org.opennms.core.ipc.sink.initialSleepTime=60000<4> -org.opennms.core.ipc.sink.kafka.bootstrap.servers=my-kafka-ip-1:9092,my-kafka-ip-2:9092<5> +org.opennms.core.ipc.strategy=kafka<1> +org.opennms.core.ipc.sink.initialSleepTime=60000<2> +org.opennms.core.ipc.sink.kafka.bootstrap.servers=my-kafka-ip-1:9092,my-kafka-ip-2:9092<3> +org.opennms.core.ipc.rpc.kafka.bootstrap.servers=my-kafka-ip-1:9092,my-kafka-ip-2:9092<4> +org.opennms.core.ipc.twin.kafka.bootstrap.servers=my-kafka-ip-1:9092,my-kafka-ip-2:9092<5> ---- <1> Use Kafka for remote producer calls (RPC). -<2> Connect to the following Kafka nodes and adjust the IPs or FQDNs with the Kafka port (9092) accordingly. -<3> Use Kafka as message sink. -<4> Ensure that messages are not consumed from Kafka until the system has fully initialized. Default is 60 seconds. +<2> Ensure that messages are not consumed from Kafka for Sink until the system has fully initialized. Default is 60 seconds. +<3> Connect to the following Kafka nodes and adjust the IPs or FQDNs with the Kafka port (9092) accordingly. +<4> Connect to the following Kafka nodes and adjust the IPs or FQDNs with the Kafka port (9092) accordingly. <5> Connect to the following Kafka nodes and adjust the IPs or FQDNs with the Kafka port (9092) accordingly. NOTE: If you set more than one Kafka node as `bootstrap.servers`, the driver attempts to connect to the first entry. diff --git a/docs/modules/deployment/pages/core/setup-message-broker.adoc b/docs/modules/deployment/pages/core/setup-message-broker.adoc index 45182dc9cf32..ed9f2fe44e82 100644 --- a/docs/modules/deployment/pages/core/setup-message-broker.adoc +++ b/docs/modules/deployment/pages/core/setup-message-broker.adoc @@ -65,10 +65,4 @@ gRPC:: -- include::message-broker/grpc.adoc[] -- - -AWS SQS:: -+ --- -include::message-broker/aws-sqs.adoc[] --- ==== diff --git a/docs/modules/deployment/pages/minion/install.adoc b/docs/modules/deployment/pages/minion/install.adoc index dc8f9cce85bd..3e88de690a04 100644 --- a/docs/modules/deployment/pages/minion/install.adoc +++ b/docs/modules/deployment/pages/minion/install.adoc @@ -117,12 +117,6 @@ gRPC:: -- include::message-broker/grpc.adoc[] -- - -AWS SQS:: -+ --- -include::message-broker/aws-sqs.adoc[] --- ==== == Check Minion in the Core web UI diff --git a/docs/modules/deployment/pages/minion/installing-jdbc-driver.adoc b/docs/modules/deployment/pages/minion/installing-jdbc-driver.adoc index 352f99b5635b..1a5f4ff01183 100644 --- a/docs/modules/deployment/pages/minion/installing-jdbc-driver.adoc +++ b/docs/modules/deployment/pages/minion/installing-jdbc-driver.adoc @@ -59,5 +59,5 @@ feature:list | grep mysql .MySQL bundle is installed and available [source, output] ---- -mysql-bundle | 8.0.22 | x | Started | opennms-28.1.1 | +mysql-bundle | 8.0.22 | x | Started | opennms-{page-component-version} | ---- diff --git a/docs/modules/deployment/pages/minion/message-broker/activemq.adoc b/docs/modules/deployment/pages/minion/message-broker/activemq.adoc index 9aaa51b54f57..41547df75395 100644 --- a/docs/modules/deployment/pages/minion/message-broker/activemq.adoc +++ b/docs/modules/deployment/pages/minion/message-broker/activemq.adoc @@ -4,32 +4,27 @@ ssh -p 8201 admin@localhost ---- -.Configure REST endpoints, ActiveMQ and remote location name +.Configure ActiveMQ and remote location name [source, karaf] ---- config:edit org.opennms.minion.controller<1> config:property-set location my-location<2> -config:property-set http-url http://core-instance-ip:8980/opennms<3> -config:property-set broker-url failover:tcp://core-instance-ip:61616<4> -config:update<5> +config:property-set broker-url failover:tcp://core-instance-ip:61616<3> +config:update<4> ---- <1> Edit the Minion configuration. <2> Replace `my-location` with a location name that represents the remote location where the Minion is running. -<3> Replace the REST endpoint URL that goes to your {page-component-title} Core instance. -<4> Replace the broker URL that goes to your {page-component-title} Core instance. If you have ActiveMQ with SSL running, replace `tcp` with `ssl`. -<5> Save the configuration. +<3> Replace the broker URL that goes to your {page-component-title} Core instance. If you have ActiveMQ with SSL running, replace `tcp` with `ssl`. +<4> Save the configuration. By default, the Minion generates a unique ID. Provide a human-readable Minion identifier yourself with `config:property-set id my-minion-name` -.Configure the credentials and exit Karaf shell +.Configure credentials for the ActiveMQ message broker and exit Karaf shell [source, karaf] ---- -opennms:scv-set opennms.http my-minion-user my-minion-password<1> opennms:scv-set opennms.broker my-minion-user my-minion-password<2> ---- -<1> Set the credentials for the REST endpoint created in your {page-component-title} Core instance. -<2> Set the credentials for the ActiveMQ message broker. NOTE: The credentials are encrypted on disk in `$\{MINION_HOME}/etc/scv.jce`. @@ -56,7 +51,6 @@ opennms:health-check .The result should show success for each component [source,output] ---- -Connecting to OpenNMS ReST API [ Success ] Verifying installed bundles [ Success ] Connecting to JMS Broker [ Success ] => Everything is awesome diff --git a/docs/modules/deployment/pages/minion/message-broker/aws-sqs.adoc b/docs/modules/deployment/pages/minion/message-broker/aws-sqs.adoc deleted file mode 100644 index 67cff9cdace9..000000000000 --- a/docs/modules/deployment/pages/minion/message-broker/aws-sqs.adoc +++ /dev/null @@ -1,71 +0,0 @@ -.Create a file to install AWS SQS features on Minion start-up -[source, console] ----- -sudo vi etc/featuresBoot.d/aws-sqs.boot ----- - -.Add the following lines to disable ActiveMQ and load AWS SQS -[source, aws-sqs.boot] ----- -!minion-jms -!opennms-core-ipc-rpc-jms -!opennms-core-ipc-sink-camel -opennms-core-ipc-rpc-aws-sqs -opennms-core-ipc-sink-aws-sqs ----- - -.Configure the AWS SQS via the Karaf shell -[source, karaf] ----- -ssh -p 8201 admin@localhost ----- - -[source, karaf] ----- -config:edit org.opennms.core.ipc.aws.sqs<1> -config:property-set aws_region us-east-1<2> -config:property-set aws_access_key_id my-access-key<3> -config:property-set aws_secret_access_key my-secret-access-key<4> -config:property-set sink.FifoQueue false<5> -config:update<6> ----- - -<1> Configure the AWS SQS feature. -<2> Set AWS SQS region. -<3> The AWS SQS access key -<4> The AWS SQS secret for the access key -<5> If you require consistent ordering of incoming messages, use FIFO queues. The default is false and **must** match the Core instance setting. -<6> Save and update the configuration. - -.Restart the Minion to apply the configuration -[source,console] ----- -sudo systemctl restart minion ----- - -.Verify the configuration using the health check in the Karaf Shell -[source, console] ----- -ssh -p 8201 admin@localhost ----- - -.Run the health check command -[source, karaf] ----- -opennms:health-check ----- - -.Verify all components are configured properly -[source, output] ----- -Verifying the health of the container - -Connecting to OpenNMS ReST API [ Success ] -Verifying installed bundles [ Success ] -Connecting to AWS-SQS from RPC [ Success ] -Connecting to AWS-SQS from Sink Producer [ Success ] - -=> Everything is awesome ----- - -TIP: You can find available configuration parameters in the xref:reference:configuration/aws-sqs.adoc[Amazon Simple Queue Service reference] section. diff --git a/docs/modules/deployment/pages/minion/message-broker/grpc.adoc b/docs/modules/deployment/pages/minion/message-broker/grpc.adoc index 8ab7c9ed331f..06f8a2bb4da1 100644 --- a/docs/modules/deployment/pages/minion/message-broker/grpc.adoc +++ b/docs/modules/deployment/pages/minion/message-broker/grpc.adoc @@ -10,6 +10,7 @@ sudo vi etc/featuresBoot.d/disable-activemq.boot !minion-jms !opennms-core-ipc-rpc-jms !opennms-core-ipc-sink-camel +!opennms-core-ipc-twin-jms ---- .Create a file to install gRPC features on start-up diff --git a/docs/modules/deployment/pages/minion/message-broker/kafka.adoc b/docs/modules/deployment/pages/minion/message-broker/kafka.adoc index 09266fe95338..1515a7227bb6 100644 --- a/docs/modules/deployment/pages/minion/message-broker/kafka.adoc +++ b/docs/modules/deployment/pages/minion/message-broker/kafka.adoc @@ -10,6 +10,7 @@ sudo vi etc/featuresBoot.d/disable-activemq.boot !minion-jms !opennms-core-ipc-rpc-jms !opennms-core-ipc-sink-camel +!opennms-core-ipc-twin-jms ---- .Create a file to install Kafka features on Minion start-up @@ -18,11 +19,12 @@ sudo vi etc/featuresBoot.d/disable-activemq.boot sudo vi etc/featuresBoot.d/kafka.boot ---- -.Add the following lines to install the remote producer call (RPC) and sink feature for Kafka on Minion start-up and save the file +.Add the following lines to install the remote producer call (RPC), sink, and twin feature for Kafka on Minion start-up and save the file [source, kafka.boot] ---- opennms-core-ipc-rpc-kafka opennms-core-ipc-sink-kafka +opennms-core-ipc-twin-kafka ---- .Configure the Kafka features and the Minion location via the Karaf shell @@ -36,41 +38,40 @@ ssh -p 8201 admin@localhost ---- config:edit org.opennms.minion.controller<1> config:property-set location my-location<2> -config:property-set http-url http://core-instance-ip:8980/opennms<3> -config:update<4> +config:update<3> ---- <1> Edit the Minion configuration. <2> Replace my-location with a location name that represents the remote location where the Minion is running. -<3> Replace the example `http-url` with the URL of your {page-component-title} Core instance. -<4> Save the configuration. +<3> Save the configuration. By default, the Minion generates a unique ID. Provide a human-readable Minion identifier yourself with `config:property-set id my-minion-name`. -.Configure the credentials for the REST endpoint and exit Karaf shell +.Configure the Kafka endpoints for RPC feature [source, karaf] ---- -opennms:scv-set opennms.http my-minion-user my-minion-password<1> +config:edit org.opennms.core.ipc.rpc.kafka +config:property-set bootstrap.servers my-kafka-ip-1:9092,my-kafka-ip-2:9092<1> +config:update ---- -<1> Set the credentials for the REST endpoint created in your {page-component-title} Core instance. -NOTE: The credentials are encrypted on disk in `$\{MINION_HOME}/etc/scv.jce`. +<1> Connect to the specified Kafka nodes and adjust the IPs or FQDNs with the Kafka port (9092) accordingly. -.Configure the Kafka endpoints for RPC feature +.Configure the Kafka endpoints for sink feature [source, karaf] ---- -config:edit org.opennms.core.ipc.rpc.kafka +config:edit org.opennms.core.ipc.sink.kafka config:property-set bootstrap.servers my-kafka-ip-1:9092,my-kafka-ip-2:9092<1> config:update ---- <1> Connect to the specified Kafka nodes and adjust the IPs or FQDNs with the Kafka port (9092) accordingly. -.Configure the Kafka endpoints for sink feature +.Configure the Kafka endpoints for twin feature [source, karaf] ---- -config:edit org.opennms.core.ipc.sink.kafka +config:edit org.opennms.core.ipc.twin.kafka config:property-set bootstrap.servers my-kafka-ip-1:9092,my-kafka-ip-2:9092<1> config:update ---- @@ -108,7 +109,6 @@ opennms:health-check ---- Verifying the health of the container -Connecting to OpenNMS ReST API [ Success ] Verifying installed bundles [ Success ] Connecting to Kafka from RPC [ Success ] Connecting to Kafka from Sink Producer [ Success ] diff --git a/docs/modules/deployment/pages/time-series-storage/timeseries/time-series-storage.adoc b/docs/modules/deployment/pages/time-series-storage/timeseries/time-series-storage.adoc index 045871b2918c..4dd0263c6574 100644 --- a/docs/modules/deployment/pages/time-series-storage/timeseries/time-series-storage.adoc +++ b/docs/modules/deployment/pages/time-series-storage/timeseries/time-series-storage.adoc @@ -1,6 +1,6 @@ = Time Series Storage -{page-component-title} stores performance data in a time series storage, link:https://wiki.opennms.org/wiki/JRobin[JRobin] by default . +{page-component-title} stores performance data in a time series storage, JRobin by default. For different scenarios you may want to use a different time series storage. The following implementations are installed by default: diff --git a/docs/modules/development/pages/introduction.adoc b/docs/modules/development/pages/introduction.adoc index 856d7ebf5f3a..c6045e157309 100644 --- a/docs/modules/development/pages/introduction.adoc +++ b/docs/modules/development/pages/introduction.adoc @@ -67,9 +67,7 @@ cd ~/dev/opennms ./assemble.pl -p dir ---- -For more information on how to build OpenNMS from source, check this wiki link:https://wiki.opennms.org/wiki/Installation:Source#Building[Install from Source]. - -After successfully building OpenNMS, please follow the wiki link:https://wiki.opennms.org/wiki/Installation:Source#Running_OpenNMS[Running OpenNMS]. +For more information on how to build OpenNMS from source, check this article link:https://opennms.discourse.group/t/how-to-compile-opennms/486[How to compile OpenNMS?]. == Tooling We recommend the following toolset: @@ -84,15 +82,12 @@ We recommend the following toolset: === General * https://www.github.com/OpenNMS/opennms[source code] hosted on GitHub - * http://wiki.opennms.org[Our Wiki], especially the start page. - It points you in the right direction. * Our http://issues.opennms.org[issue/bug tracker] * https://github.com/opennms-forge/vagrant-opennms-dev[Vagrant box] to set up a virtual box to build OpenNMS * https://github.com/opennms-forge/vagrant-opennms[Vagrant box] to set up a virtual box to run OpenNMS === Installation/Setup - * https://wiki.opennms.org/wiki/Installation:Source[] - * https://wiki.opennms.org/wiki/Developing_with_Git[] - * https://wiki.opennms.org/wiki/Eclipse_and_OpenNMS[] - * https://wiki.opennms.org/wiki/IDEA_and_OpenNMS[] + * https://opennms.discourse.group/t/how-to-compile-opennms/486[How to compile OpenNMS?] + * https://opennms.discourse.group/t/developing-with-git[Developing with GIT] + * https://opennms.discourse.group/t/set-up-local-development-environment-macos/485[Set up local development environment] diff --git a/docs/modules/development/pages/rest/meta-data.adoc b/docs/modules/development/pages/rest/meta-data.adoc index 7c4761788fb4..9f7cad10d056 100644 --- a/docs/modules/development/pages/rest/meta-data.adoc +++ b/docs/modules/development/pages/rest/meta-data.adoc @@ -1,10 +1,10 @@ [[metadata-rest]] = Metadata -You can qurey, add, modify, or delete the actual metadata of nodes, interfaces, and services via REST endpoints. +You can query the actual metadata of nodes, interfaces, and services via REST endpoints. [[rest-api-meta-data-get]] -== GETs (Reading Meta-Data) +== GETs (Reading Metadata) [options="header", cols="5,10"] |=== @@ -19,41 +19,3 @@ You can qurey, add, modify, or delete the actual metadata of nodes, interfaces, | `api/v2/nodes/\{id}/ipinterfaces/\{ipinterface}/services/\{service}/metadata/\{context}` | Get the list of metadata associated with this service, filtered by the given context. | `api/v2/nodes/\{id}/ipinterfaces/\{ipinterface}/services/\{service}/metadata/\{context}/\{key}` | Get the entry for the given context and key associated with this service. |=== - -[[rest-api-meta-data-post]] -== POSTs (Adding Meta-Data) - -POST requires XML using application/xml as its Content-Type. - -[options="header", cols="5,10"] -|=== -| Resource | Description -| `api/v2/nodes/\{id}/metadata` | Adds a metadata entry to the given node. -| `api/v2/nodes/\{id}/\{ipinterface}/metadata` | Adds a metadata entry to the given interface. -| `api/v2/nodes/\{id}/\{ipinterface}/services/\{service}/metadata` | Adds a metadata entry to the given service. -|=== - -[[rest-api-meta-data-put]] -== PUTs (Modifying Meta-Data) - -[options="header", cols="5,10"] -|=== -| Resource | Description -| `api/v2/nodes/\{id}/metadata/\{context}/\{key}/\{value}` | Sets the given value for the node-level metadata entry specified by the given context and key. -| `api/v2/nodes/\{id}/ipinterfaces/\{ipinterface}/metadata/\{context}/\{key}/\{value}` | Sets the given value for the interface-level metadata entry specified by the given context and key. -| `api/v2/nodes/\{id}/ipinterfaces/\{ipinterface}/services/\{service}/metadata/\{context}/\{key}/\{value}` | Sets the given value for the service-level metadata entry specified by the given context and key. -|=== - -[[rest-api-meta-data-delete]] -== DELETEs (Removing Meta-Data) - -[options="header", cols="5,10"] -|=== -| Resource | Description -| `api/v2/nodes/\{id}/metadata/\{context}` | Deletes node-level metadata with the given context. -| `api/v2/nodes/\{id}/metadata/\{context}/\{key}` | Deletes the node-level metadata entry for the given context and key. -| `api/v2/nodes/\{id}/ipinterfaces/\{ipinterface}/metadata/\{context}` | Deletes interface-level metadata with the given context. -| `api/v2/nodes/\{id}/ipinterfaces/\{ipinterface}/metadata/\{context}/\{key}` | Deletes the interface-level metadata entry for the given context and key. -| `api/v2/nodes/\{id}/ipinterfaces/\{ipinterface}/services/\{service}/metadata/\{context}` | Deletes service-level metadata with the given context. -| `api/v2/nodes/\{id}/ipinterfaces/\{ipinterface}/services/\{service}/metadata/\{context}/\{key}` | Deletes the service-level metadata entry for the given context and key. -|=== diff --git a/docs/modules/operation/images/ifttt/trigger-definition-small.png b/docs/modules/operation/images/alarms/trigger-definition-small.png similarity index 100% rename from docs/modules/operation/images/ifttt/trigger-definition-small.png rename to docs/modules/operation/images/alarms/trigger-definition-small.png diff --git a/docs/modules/operation/images/ifttt/webhooks-settings-small.png b/docs/modules/operation/images/alarms/webhooks-settings-small.png similarity index 100% rename from docs/modules/operation/images/ifttt/webhooks-settings-small.png rename to docs/modules/operation/images/alarms/webhooks-settings-small.png diff --git a/docs/modules/operation/nav.adoc b/docs/modules/operation/nav.adoc index 9c55098afe0a..149908896acf 100644 --- a/docs/modules/operation/nav.adoc +++ b/docs/modules/operation/nav.adoc @@ -31,33 +31,6 @@ ** xref:thresholds/thresh-service.adoc[] ** xref:thresholds/troubleshoot.adoc[] -* xref:webui/introduction.adoc[] -** xref:webui/surveillance-view.adoc[] -** xref:webui/dashboard.adoc[] -** xref:webui/grafana-dashboard-box.adoc[] -** xref:webui/opsboard/introduction.adoc[] -*** xref:webui/opsboard/dashlet/alarm-detail.adoc[] -*** xref:webui/opsboard/dashlet/alarms.adoc[] -*** xref:webui/opsboard/dashlet/charts.adoc[] -*** xref:webui/opsboard/dashlet/grafana.adoc[] -*** xref:webui/opsboard/dashlet/image.adoc[] -*** xref:webui/opsboard/dashlet/ksc.adoc[] -*** xref:webui/opsboard/dashlet/map.adoc[] -*** xref:webui/opsboard/dashlet/rrd.adoc[] -*** xref:webui/opsboard/dashlet/rtc.adoc[] -*** xref:webui/opsboard/dashlet/summary.adoc[] -*** xref:webui/opsboard/dashlet/surveillance.adoc[] -*** xref:webui/opsboard/dashlet/topology.adoc[] -*** xref:webui/opsboard/dashlet/url.adoc[] -*** xref:webui/opsboard/boosting-behavior.adoc[] -**** xref:webui/opsboard/criteria-builder.adoc[] -** xref:webui/jmx-config-generator/introduction.adoc[] -*** xref:webui/jmx-config-generator/webui.adoc[] -*** xref:webui/jmx-config-generator/cli.adoc[] -** xref:webui/heatmap/introduction.adoc[] -** xref:webui/trend/introduction.adoc[] - - * xref:service-assurance/introduction.adoc[] ** xref:service-assurance/configuration.adoc[] ** xref:service-assurance/critical-service.adoc[] @@ -101,6 +74,8 @@ ** xref:alarms/alarm-notes.adoc[] ** xref:alarms/alarm-sound-flash.adoc[] ** xref:alarms/history.adoc[] +** xref:alarms/ifttt-integration.adoc[] + * xref:notifications/introduction.adoc[] ** xref:notifications/getting-started.adoc[] @@ -122,29 +97,23 @@ ** xref:bsm/reduce-functions.adoc[] ** xref:bsm/bsmd.adoc[] -* xref:topology/topology.adoc[] -* xref:asset-topology/graphml-asset-topology-provider.adoc[] -* xref:database-reports/database.adoc[] +* xref:topology/introduction.adoc[] +** xref:topology/topology.adoc[] +** xref:topology/graphml-asset-topology-provider.adoc[] +** xref:topology/enlinkd/introduction.adoc[] +*** xref:topology/enlinkd/layer-2-discovery.adoc[] +**** xref:topology/enlinkd/layer-2/lldp-discovery.adoc[] +**** xref:topology/enlinkd/layer-2/cdp-discovery.adoc[] +**** xref:topology/enlinkd/layer-2/bridge-discovery.adoc[] +*** xref:topology/enlinkd/layer-3-discovery.adoc[] +**** xref:topology/enlinkd/layer-3/ospf-discovery.adoc[] +**** xref:topology/enlinkd/layer-3/is-is-discovery.adoc[] -* xref:enlinkd/introduction.adoc[] -** xref:enlinkd/layer-2-discovery.adoc[] -*** xref:enlinkd/layer-2/lldp-discovery.adoc[] -*** xref:enlinkd/layer-2/cdp-discovery.adoc[] -*** xref:enlinkd/layer-2/bridge-discovery.adoc[] -** xref:enlinkd/layer-3-discovery.adoc[] -*** xref:enlinkd/layer-3/ospf-discovery.adoc[] -*** xref:enlinkd/layer-3/is-is-discovery.adoc[] - -* xref:system-properties/introduction.adoc[] -** xref:system-properties/system-proxies.adoc[] - -* xref:search/search.adoc[] +* xref:database-reports/database.adoc[] * xref:ticketing/introduction.adoc[] -* xref:rmi.adoc[] * xref:workarounds/snmp.adoc[] -* xref:ifttt/ifttt-integration.adoc[] * xref:dnsresolver/introduction.adoc[] * xref:telemetryd/introduction.adoc[] @@ -174,8 +143,38 @@ * xref:admin/introduction.adoc[] -** xref:admin/restart.adoc[] -** xref:admin/ssl/ssl.adoc[] -** xref:admin/request-logging.adoc[] -** xref:admin/geocoder.adoc[] +** xref:admin/webui/introduction.adoc[] +*** xref:admin/webui/dashboard.adoc[] +*** xref:admin/webui/grafana-dashboard-box.adoc[] +*** xref:admin/webui/heatmap.adoc[] +*** xref:admin/webui/search.adoc[] +*** xref:admin/webui/jmx-config-generator/introduction.adoc[] +**** xref:admin/webui/jmx-config-generator/webui.adoc[] +**** xref:admin/webui/jmx-config-generator/cli.adoc[] +*** xref:admin/webui/opsboard/introduction.adoc[] +**** xref:admin/webui/opsboard/dashlet/alarm-detail.adoc[] +**** xref:admin/webui/opsboard/dashlet/alarms.adoc[] +**** xref:admin/webui/opsboard/dashlet/charts.adoc[] +**** xref:admin/webui/opsboard/dashlet/grafana.adoc[] +**** xref:admin/webui/opsboard/dashlet/image.adoc[] +**** xref:admin/webui/opsboard/dashlet/ksc.adoc[] +**** xref:admin/webui/opsboard/dashlet/map.adoc[] +**** xref:admin/webui/opsboard/dashlet/rrd.adoc[] +**** xref:admin/webui/opsboard/dashlet/rtc.adoc[] +**** xref:admin/webui/opsboard/dashlet/summary.adoc[] +**** xref:admin/webui/opsboard/dashlet/surveillance.adoc[] +**** xref:admin/webui/opsboard/dashlet/topology.adoc[] +**** xref:admin/webui/opsboard/dashlet/url.adoc[] +**** xref:admin/webui/opsboard/boosting-behavior.adoc[] +***** xref:admin/webui/opsboard/criteria-builder.adoc[] +*** xref:admin/webui/surveillance-view.adoc[] +*** xref:admin/webui/trends.adoc[] +** xref:admin/system-properties/introduction.adoc[] +*** xref:admin/system-properties/system-proxies.adoc[] ** xref:admin/config-tester.adoc[] +** xref:admin/rmi.adoc[] +** xref:admin/geocoder.adoc[] +** xref:admin/http-ssl.adoc[] +** xref:admin/request-logging.adoc[] +** xref:admin/restart.adoc[] +** xref:admin/daemon-config-files.adoc[] diff --git a/docs/modules/operation/pages/admin/daemon-config-files.adoc b/docs/modules/operation/pages/admin/daemon-config-files.adoc new file mode 100644 index 000000000000..2e733fedd3b7 --- /dev/null +++ b/docs/modules/operation/pages/admin/daemon-config-files.adoc @@ -0,0 +1,46 @@ + += Daemon Configuration Files + +Configuration changes can require a restart of OpenNMS and some daemons are able to reload configuration changes by a running CLI command or by sending a daemon reload event. + +NOTE: Check the xref:reference:daemons/introduction#ga-daemons[daemon reference section] for an overview of all daemons, their related configuration files, and which ones you can reload without restarting OpenNMS. + +== Reload daemons by CLI + +To use the reload commands in the CLI, log into the Karaf Shell on your system using: + +[source, console] +---- +ssh -p 8101 admin@localhost +---- + +To reload a daemon use the `reload-daemon` command: +[source, console] +---- +admin@opennms()> reload-daemon NAME +---- + +NOTE: To see a list of reloadable daemons, press `tab` after the command. + +== Reload daemons by reload event + +.Running reload command in a shell +[source, console] +---- +cd $\{OPENNMS_HOME}/bin +./send-event.pl uei.opennms.org/internal/reloadDaemonConfig --parm 'daemonName NAME' +---- + +.Running the reload command in Docker +[source, console] +---- +docker exec -it horizon /opt/opennms/bin/send-event.pl uei.opennms.org/internal/reloadDaemonConfig --parm 'daemonName NAME' +---- + +== Check daemon reload results + +A daemon reload generates the following events: + +- `uei.opennms.org/internal/reloadDaemonConfig` (to indicate that the reload process was triggered) +- `uei.opennms.org/internal/reloadDaemonConfigSuccessful` (a positive feedback), or +- `uei.opennms.org/internal/reloadDaemonConfigFailed` (negative feedback, like when OpenNMS could not load the daemon. In this case, the event description also includes an event reason.) \ No newline at end of file diff --git a/docs/modules/operation/pages/admin/geocoder.adoc b/docs/modules/operation/pages/admin/geocoder.adoc index 2681c45a0bd5..8962d908c505 100644 --- a/docs/modules/operation/pages/admin/geocoder.adoc +++ b/docs/modules/operation/pages/admin/geocoder.adoc @@ -56,7 +56,7 @@ Required only if `useEnterpriseCredentials` is true. | useSystemProxy | Should the system-wide proxy settings be used? - Configure the system proxy settings in <>. + Configure the system proxy settings in <>. | Boolean | false @@ -98,7 +98,7 @@ The `apikey` and `query` strings are substituted before making the request. | useSystemProxy | Should the system-wide proxy settings be used? -Configure the system proxy settings in <>. +Configure the system proxy settings in <>. | Boolean | false |=== @@ -153,7 +153,7 @@ Alternatively, provide this information in the userAgent property. | useSystemProxy | Should the system-wide proxy settings be used? -Configure the system proxy settings in <>. +Configure the system proxy settings in <>. | Boolean | false |=== diff --git a/docs/modules/operation/pages/admin/ssl/ssl.adoc b/docs/modules/operation/pages/admin/http-ssl.adoc similarity index 100% rename from docs/modules/operation/pages/admin/ssl/ssl.adoc rename to docs/modules/operation/pages/admin/http-ssl.adoc diff --git a/docs/modules/operation/pages/admin/introduction.adoc b/docs/modules/operation/pages/admin/introduction.adoc index 5fb52a735861..164962eb770d 100644 --- a/docs/modules/operation/pages/admin/introduction.adoc +++ b/docs/modules/operation/pages/admin/introduction.adoc @@ -3,8 +3,11 @@ This section describes additional administrative tasks you may want to perform or configure: -* xref:admin/restart.adoc[shutdown and restart] -* xref:admin/ssl/ssl.adoc[HTTPS/SSL configuration] -* xref:admin/request-logging.adoc[request logging] -* xref:admin/geocoder.adoc[geolocation resolution] +* xref:admin/webui/introduction.adoc[admin UI customization] +* xref:admin/system-properties/introduction.adoc[system properties] * xref:admin/config-tester.adoc[configuration tester] +* xref:admin/rmi.adoc[enable RMI] +* xref:admin/geocoder.adoc[geolocation resolution] +* xref:admin/http-ssl.adoc[HTTPS/SSL configuration] +* xref:admin/request-logging.adoc[request logging] +* xref:admin/restart.adoc[shutdown and restart] diff --git a/docs/modules/operation/pages/admin/request-logging.adoc b/docs/modules/operation/pages/admin/request-logging.adoc index 0e98c6053b0a..8acaefdaf41c 100644 --- a/docs/modules/operation/pages/admin/request-logging.adoc +++ b/docs/modules/operation/pages/admin/request-logging.adoc @@ -4,7 +4,7 @@ Enable HTTP requests logs for Jetty by uncommenting the following snippet in `etc/jetty.xml`: -[source,xml] +[source, xml] ---- + @@ -211,37 +211,37 @@ NOTE: The `drv4doe` user is not allowed to navigate to URLs other than the `dash === Anonymous dashboards You can modify the configuration files for the security framework to give you access to one or more dashboards without logging in. -At the end you'll be able to point a browser at a special URL like \`http://.../opennms/dashboard1` or \`http://.../opennms/dashboard2` and see a dashboard without any authentication. +At the end you'll be able to point a browser at a special URL like `\http://hostname/opennms/dashboard1` or `\http://hostname/opennms/dashboard2` and see a dashboard without any authentication. First, configure surveillance views and create dashboard users as above. For example, make two dashboards and two users called `dashboard1` and `dashboard2`. Test that you can log in as each of the new users and see the correct dashboard. Now create some aliases you can use to distinguish between dashboards. -In `/opt/opennms/jetty-webapps/opennms/WEB-INF`, edit `web.xml`. +In `$\{OPENNMS_HOME}/jetty-webapps/opennms/WEB-INF`, edit `web.xml`. Just before the first `` tag, add the following servlet entries: [source, xml] ---- - - dashboard1 - /dashboard.jsp - - - - dashboard2 - /dashboard.jsp - + + dashboard1 + /dashboard.jsp + + + + dashboard2 + /dashboard.jsp + ---- Just before the first `` tag, add the following servlet-mapping entries: [source, xml] ---- - - dashboard1 - /dashboard1 - - - - dashboard2 - /dashboard2 - + + dashboard1 + /dashboard1 + + + + dashboard2 + /dashboard2 + ---- After the last `` tag, add the following filter-mapping entries: [source, xml] @@ -307,7 +307,7 @@ Finally, near the bottom of the page, add a new instance of `AnonymousProcessing dashboard2,ROLE_DASHBOARD ---- -Restart {page-component-title} and you should bring up a dashboard at \`http://.../opennms/dashboard1` without logging in. +Restart {page-component-title} and you should bring up a dashboard at `\http://hostname/opennms/dashboard1` without logging in. WARNING: There's no way to switch dashboards without closing the browser (or deleting the JSESSIONID session cookie). diff --git a/docs/modules/operation/pages/webui/grafana-dashboard-box.adoc b/docs/modules/operation/pages/admin/webui/grafana-dashboard-box.adoc similarity index 97% rename from docs/modules/operation/pages/webui/grafana-dashboard-box.adoc rename to docs/modules/operation/pages/admin/webui/grafana-dashboard-box.adoc index 8510d5c2accd..9dbdba6b90fd 100644 --- a/docs/modules/operation/pages/webui/grafana-dashboard-box.adoc +++ b/docs/modules/operation/pages/admin/webui/grafana-dashboard-box.adoc @@ -9,7 +9,7 @@ To filter relevant dashboards, you can use a tag for dashboards and make them ac If no tag is provided all dashboards from Grafana will be shown. The feature is by default deactivated and is configured by defining a `.properties` file in the `$\{OPENNMS_HOME}/etc/opennms.properties.d/` directory. -Please note that this feature works with the Grafana API v2.5.0. +Please note that this feature works with Grafana v2.5.0+. .Quick access to Grafana dashboards from the {page-component-title} start page image:webui/startpage/01_grafana-box.png[] diff --git a/docs/modules/operation/pages/webui/heatmap/introduction.adoc b/docs/modules/operation/pages/admin/webui/heatmap.adoc similarity index 100% rename from docs/modules/operation/pages/webui/heatmap/introduction.adoc rename to docs/modules/operation/pages/admin/webui/heatmap.adoc diff --git a/docs/modules/operation/pages/admin/webui/introduction.adoc b/docs/modules/operation/pages/admin/webui/introduction.adoc new file mode 100644 index 000000000000..a441a39a3d43 --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/introduction.adoc @@ -0,0 +1,4 @@ + += Administrative Web Interface + +This section describes the main sections of the {page-component-title} web UI. \ No newline at end of file diff --git a/docs/modules/operation/pages/webui/jmx-config-generator/cli.adoc b/docs/modules/operation/pages/admin/webui/jmx-config-generator/cli.adoc similarity index 99% rename from docs/modules/operation/pages/webui/jmx-config-generator/cli.adoc rename to docs/modules/operation/pages/admin/webui/jmx-config-generator/cli.adoc index 48ea07618173..ec5e8d586107 100644 --- a/docs/modules/operation/pages/webui/jmx-config-generator/cli.adoc +++ b/docs/modules/operation/pages/admin/webui/jmx-config-generator/cli.adoc @@ -364,7 +364,7 @@ The following example illustrates how a custom template `mytemplate.vm` is used The template file has to be an http://velocity.apache.org[_Apache Velocity_] template. The following sample represents the template that is used by default: -[source, graph] +[source, properties] ---- reports=#foreach( $report in $reportsList ) ${report.id}#if( $foreach.hasNext ), \ diff --git a/docs/modules/operation/pages/webui/jmx-config-generator/introduction.adoc b/docs/modules/operation/pages/admin/webui/jmx-config-generator/introduction.adoc similarity index 100% rename from docs/modules/operation/pages/webui/jmx-config-generator/introduction.adoc rename to docs/modules/operation/pages/admin/webui/jmx-config-generator/introduction.adoc diff --git a/docs/modules/operation/pages/webui/jmx-config-generator/webui.adoc b/docs/modules/operation/pages/admin/webui/jmx-config-generator/webui.adoc similarity index 93% rename from docs/modules/operation/pages/webui/jmx-config-generator/webui.adoc rename to docs/modules/operation/pages/admin/webui/jmx-config-generator/webui.adoc index 2ed4d46b3a44..e7c89c21a32c 100644 --- a/docs/modules/operation/pages/webui/jmx-config-generator/webui.adoc +++ b/docs/modules/operation/pages/admin/webui/jmx-config-generator/webui.adoc @@ -67,10 +67,10 @@ For the Alias inputs are validated to be not longer then 19 characters and have The last step is generating the following configuration files for {page-component-title}: -* _collectd-configuration.xml_: Generated sample configuration assigned to a service with a matching data collection group -* _jmx-datacollection-config.xml_: Generated JMX data collection configuration with the selected MBeans and composite data -* _snmp-graph.properties_: Generated default RRD graph definition files for all selected metrics +* `collectd-configuration.xml`: Generated sample configuration assigned to a service with a matching data collection group +* `jmx-datacollection-config.xml`: Generated JMX data collection configuration with the selected MBeans and composite data +* `snmp-graph.properties`: Generated default RRD graph definition files for all selected metrics -The content of the configuration files can be copy & pasted or can be downloaded as ZIP archive. +The content of the configuration files can be copy and pasted or can be downloaded as ZIP archive. NOTE: If the content of the configuration file exceeds 2,500 lines, the files can only be downloaded as ZIP archive. diff --git a/docs/modules/operation/pages/webui/opsboard/boosting-behavior.adoc b/docs/modules/operation/pages/admin/webui/opsboard/boosting-behavior.adoc similarity index 100% rename from docs/modules/operation/pages/webui/opsboard/boosting-behavior.adoc rename to docs/modules/operation/pages/admin/webui/opsboard/boosting-behavior.adoc diff --git a/docs/modules/operation/pages/webui/opsboard/criteria-builder.adoc b/docs/modules/operation/pages/admin/webui/opsboard/criteria-builder.adoc similarity index 100% rename from docs/modules/operation/pages/webui/opsboard/criteria-builder.adoc rename to docs/modules/operation/pages/admin/webui/opsboard/criteria-builder.adoc diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/alarm-detail.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/alarm-detail.adoc new file mode 100644 index 000000000000..943aace04bdf --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/alarm-detail.adoc @@ -0,0 +1,40 @@ + += Alarm Details + +This Alarm-Details Dashlet shows a table with alarms and some detailed information. + +.Information of the alarms +[options="header, autowidth", cols="1,2"] +|=== +| Field +| Description + +| Alarm ID +| {page-component-title} ID for the alarm + +| Severity +| Alarm severity (Cleared, Indeterminate, Normal, Warning, Minor, Major, Critical) + +| Node label +| Node label of the node where the alarm occurred + +| Alarm count +| Alarm count based on reduction key for deduplication + +| Last Event Time +| Last time the alarm occurred + +| Log Message +| Reason and detailed log message of the alarm +|=== + +Configure the Alarm Details Dashlet with the following parameters. + +[options="autowidth", cols="1,2"] +|=== +| Boost support +| <> + +| Configuration +| <> +|=== diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/alarms.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/alarms.adoc new file mode 100644 index 000000000000..554bac195c9b --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/alarms.adoc @@ -0,0 +1,31 @@ + += Alarms + +This Alarms dashlet shows a table with a short alarm description. + +.Information of the alarm +[options="header, autowidth", cols="1,2"] +|=== +| Field +| Description + +| Time +| Absolute time since the alarm appeared + +| Node label +| Node label of the node where the alarm occurred + +| UEI +| {page-component-title} Unique event identifier for this alarm +|=== + +Configure the Alarms dashlet with the following parameters. + +[options="autowidth", cols="1,2"] +|=== +| Boost support +| <> + +| Configuration +| <> +|=== diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/charts.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/charts.adoc new file mode 100644 index 000000000000..813198638a87 --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/charts.adoc @@ -0,0 +1,19 @@ + += Charts + +This dashlet displays an existing link:https://opennms.discourse.group/t/creating-custom-charts/2208[Chart]. + +[options="autowidth", cols="1,2"] +|=== +| Boost support +| false + +| Chart +| Name of the existing chart to display + +| Maximize Width +| Rescale the image to fill display width + +| Maximize Height +| Rescale the image to fill display height +|=== diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/grafana.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/grafana.adoc new file mode 100644 index 000000000000..d27f533e2a02 --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/grafana.adoc @@ -0,0 +1,23 @@ + += Grafana + +This dashlet shows a Grafana dashboard for a given time range. +The <> configuration defined in the `opennms.properties` file is used to access the Grafana instance. + +[options="autowidth", cols="1,2"] +|=== +| Boost support +| false + +| title +| Title of the Grafana dashboard to be displayed + +| uri +| URI to the Grafana Dashboard to be displayed + +| from +| Start of time range + +| to +| End of time range +|=== diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/image.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/image.adoc new file mode 100644 index 000000000000..976ee35d6827 --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/image.adoc @@ -0,0 +1,19 @@ + += Image + +This dashlet displays an image by a given URL. + +[options="autowidth", cols="1,2"] +|=== +| Boost support +| false + +| imageUrl +| URL with the location of the image to show in this dashlet + +| maximizeHeight +| Rescale the image to fill display width + +| maximizeWidth +| Rescale the image to fill display height +|=== diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/ksc.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/ksc.adoc new file mode 100644 index 000000000000..4bc31a26e06b --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/ksc.adoc @@ -0,0 +1,13 @@ +[options="autowidth", cols="1,2"] +|=== +| Boost support +| false + +| KSC-Report +| Name of the KSC report to show in this dashlet +|=== + += KSC Report Configuration + +This dashlet shows an existing link:https://opennms.discourse.group/t/ksc-report-configuration/2209[KSC report]. +The view is exactly the same as the KSC report is built regarding order, columns, and time spans. diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/map.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/map.adoc new file mode 100644 index 000000000000..e9d598e266b8 --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/map.adoc @@ -0,0 +1,13 @@ + += Map + +This dashlet displays the link:https://opennms.discourse.group/t/geographical-maps/2212[geographical map]. + +[options="autowidth", cols="1,2"] +|=== +| Boost support +| false + +| search +| Predefined link:https://opennms.discourse.group/t/geographical-maps/2212#searching-3[search] for a subset of nodes shown in the geographical map in this dashlet. +|=== diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/rrd.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/rrd.adoc new file mode 100644 index 000000000000..2e7bd2a139cf --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/rrd.adoc @@ -0,0 +1,33 @@ + += RRD + +This dashlet shows one or multiple RRD graphs. +It is possible to arrange and order the RRD graphs in multiple columns and rows. +All RRD graphs are normalized with a given width and height. + +[options="autowidth", cols="1,2"] +|=== +| Boost support +| false + +| Columns +| Number of columns within the dashlet + +| Rows +| Number of rows with the dashlet + +| KSC Report +| Import RRD graphs from an existing KSC report and re-arrange them. + +| Graph Width +| Generic width for all RRD graphs in this dashlet + +| Graph Height +| Generic height for all RRD graphs in this dashlet + +| Timeframe value +| Number of the given `Timeframe type` + +| Timeframe type +| Minute, hour, day, week, month, and year for all RRD graphs +|=== diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/rtc.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/rtc.adoc new file mode 100644 index 000000000000..5c15cbcf087a --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/rtc.adoc @@ -0,0 +1,10 @@ + += RTC + +This dashlet shows the configured SLA categories from the {page-component-title} start page. + +[options="autowidth", cols="1,2"] +|=== +| Boost support +| false +|=== diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/summary.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/summary.adoc new file mode 100644 index 000000000000..b2b2c9bca217 --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/summary.adoc @@ -0,0 +1,13 @@ + += Summary + +This dashlet shows a trend of incoming alarms in given time frame. + +[options="autowidth", cols="1,2"] +|=== +| Boost support +| <> + +| timeslot +| Time slot in seconds to evaluate the trend for alarms by severity and _UEI_. +|=== diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/surveillance.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/surveillance.adoc new file mode 100644 index 000000000000..fc21ee0f17b2 --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/surveillance.adoc @@ -0,0 +1,13 @@ + += Surveillance + +This dashlet shows a given <>. + +[options="autowidth", cols="1,2"] +|=== +| Boost support +| false + +| viewName +| Name of the configured surveillance view +|=== diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/topology.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/topology.adoc new file mode 100644 index 000000000000..97075ccb34a2 --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/topology.adoc @@ -0,0 +1,20 @@ + += Topology + +This dashlet shows a <>. +Configure the topology map with the following parameters. + +[options="autowidth", cols="1,2"] +|=== +| Boost support +| false + +| focusNodes +| Which node(s) is in focus for the topology + +| provider +| Which topology should be displayed, for example, Linkd, VMware + +| szl +| Set the zoom level for the topology +|=== diff --git a/docs/modules/operation/pages/admin/webui/opsboard/dashlet/url.adoc b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/url.adoc new file mode 100644 index 000000000000..788fb959031a --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/dashlet/url.adoc @@ -0,0 +1,19 @@ + += URL + +This dashlet shows the content of a web page or other web application, e.g., other monitoring systems by a given URL. + +[options="autowidth", cols="1,2"] +|=== +| Boost support +| false + +| password +| Optional password if a basic authentication is required + +| url +| URL to the web application or web page + +| username +| Optional username if a basic authentication is required +|=== diff --git a/docs/modules/operation/pages/admin/webui/opsboard/introduction.adoc b/docs/modules/operation/pages/admin/webui/opsboard/introduction.adoc new file mode 100644 index 000000000000..fc304602e056 --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/opsboard/introduction.adoc @@ -0,0 +1,57 @@ + +[[ops-board]] += Operator Board + +In a network operation center (NOC) you can use the ops board to visualize monitoring information. +The monitoring information for various use-cases are arranged in configurable dashlets. +To address different user groups it is possible to create multiple ops boards. + +There are two visualisation components to display dashlets: + + * Ops Panel: Shows multiple dashlets on one screen, e.g., on a NOC operators workstation + * Ops Board: Shows one dashlet at a time in rotation, e.g., for a screen wall in a NOC + +.Concept of dashlets displayed in ps panel +image::webui/opsboard/01_opspanel-concept.png[] + +.Concept to show dashlets in rotation on the ops board +image::webui/opsboard/02_opsboard-concept.png[] + +== Configuration + +To create and configure ops boards administration permissions are required. +The configuration section is in admin area of {page-component-title} and named "Ops Board Configuration". + +.Navigation to the Ops Board configuration +image::webui/opsboard/03_admin-configure-opsboard.png[] + +Create or modify ops boards is described in the following screenshot. + +.Adding a Dashlet to an existing Ops Board +image::webui/opsboard/04_add-dashlet.png[] + + . Create a new ops board to organize and arrange different dashlets + . The name to identify the ops board + . Add a dashlet to show {page-component-title} monitoring information + . Show a preview of the whole ops board + . List of available dashlets + . Priority for this dashlet in ops board rotation, lower priority means it will be displayed more often + . Duration in seconds for this dashlet in the ops board rotation + . Change Priority if the dashlet is in alert state, this is optional and maybe not available in all dashlets + . Change Duration if the dashlet is in alert state, it is optional and maybe not available in all dashlets + . Configuration properties for this dashlet + . Remove this dashlet from the ops board + . Order dashlets for the rotation on the ops board and the tile view in the Ops Panel + . Show a preview for the whole ops board + +Use the configured ops board by navigating in the main menu to *Dashboard -> Ops Board*. + +.Navigation to use the Ops Board +image::webui/opsboard/05_opsboard-user.png[] + +== Dashlets + +Visualization of information is implemented in dashlets. +The different dashlets are described in this section with all available configuration parameter. + +To allow filter information, configure the dashlet with a generic <>. diff --git a/docs/modules/operation/pages/admin/webui/search.adoc b/docs/modules/operation/pages/admin/webui/search.adoc new file mode 100644 index 000000000000..15553177b333 --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/search.adoc @@ -0,0 +1,99 @@ +[[search-functionality]] += Search + +{page-component-title} provides two ways to search in the web UI: through the search bar and the *Search* view. + +== Search bar + +The search bar uses keywords to return both nodes that match the keyword(s) and a list of actions you can perform that relate to the keyword. +Press the btn:[Shift] key twice or click in the search bar to activate it for typing. + +image::search/search-sample.png[] + +Note that the search results for nodes also display any nodes with xref:meta-data.adoc#metadata-overview[metadata] that match the keyword, such as a label, location, admin user, and so on. +For example, if you search for 'foo' and get a node match of 'foobar', the result displays no metadata. +However, if you search for 'foo' and a match is found in a node's metadata customkey='somefoo' (even if the node name does not contain 'foo'), the result displays the name of the node (for example, 'node1') and the 'foo' metadata associated with it. +See xref:search-customize[Customize search results] below for more information. + +Click on a node to navigate to the node's page. +Click on one of the actions to navigate to the screen that lets you complete the specified action. +For example, clicking on *Edit Requisition 'Test'* takes you to the screen where you can edit the requisition named 'Test'. + +== Search view + +The Search view provides a number of search options for nodes. +Click *Search* on the main menu to access the *Search* view. + +=== Quick-search links + +Click on the following links to quickly search for the associated information: + +* All nodes +* All nodes and their interfaces +* All nodes with asset info + +=== Name search + +Search by name is a case-insensitive, inclusive search. +For example, searching on `serv` finds any of `serv`, `Service`, `Reserved`, `NTSERV`, `UserVortex`, and so on. +Use the underscore character as a single-character wildcard. +Use the percent character as a multiple-character wildcard. + +=== IP address search + +Searching by IP address uses a flexible search format that lets you separate the four or eight (in the case of IPv6) fields of an IP address into specific searches. +An asterisk (`*`) in place of any octet matches any value for that octet. +Separate two numbers by a dash (`-`) to indicate a range. +Use a comma for list demarcation. + +For example, the following search fields are all valid and each creates the same result set: all IP addresses from 192.168.0.0 through 192.168.255.255: + +* 192.168.\*.* +* 192.168.0-255.0-255 +* 192.168.0,1,2,3-255.* +* 2001:6a8:3c80:8000-8fff:*:*:*:* +* fc00,fe80:*:*:*:*:*:*:* + +=== System or interface search + +A system/interface attribute search finds nodes with systems or interfaces that match a given search string. +The "contains" modifier provides a case-insensitive, inclusive search similar to the "name containing" search described above. +The "equals" modifier requires the search to find an exact match. + +=== Location search + +Select the location or service to search for from the appropriate drop-down menu. + +=== MAC address search +Case-insensitive, partial string match to find interfaces with hardware (MAC) addresses that match the search string. +For example, to find all interfaces with a specified manufacturer's code, enter the first six characters of the MAC address. +Octet separators (dash or colon) are optional. + +=== Foreign service name search +Case-insensitive, inclusive search on the foreign service name. +Use the underscore character as a single-character wildcard. +Use the percent character as a multiple-character wildcard. + +=== Flows search +Find nodes with or without flows data. + +=== Enhanced Linkd topology search + +Find nodes with CDP/LLDP data that match the given search string. + +=== Category or field search +Search for nodes that have assets associated with a particular category or field. +The field search includes a list of fields and a text box to match a value. +The field search is case-insensitive and inclusive. +Use the underscore character as a single-character wildcard. +Use the percent character as a multiple-character wildcard. + +[[search-customize]] +== Customize search results + +Customize search results to show additional metadata in the search results pop up. +Create a new file in `$\{OPENNMS_HOME}/etc/opennms.properties.d/` and specify a value for `org.opennms.netmgt.search.info`, to pick additional metadata fields to display. + +This example displays the node's sys-contact and the associated department: + +`org.opennms.netmgt.search.info=${node:sys-contact} (Department: ${asset:department})` \ No newline at end of file diff --git a/docs/modules/operation/pages/webui/surveillance-view.adoc b/docs/modules/operation/pages/admin/webui/surveillance-view.adoc similarity index 98% rename from docs/modules/operation/pages/webui/surveillance-view.adoc rename to docs/modules/operation/pages/admin/webui/surveillance-view.adoc index 2867f8bb220f..9c59f8678246 100644 --- a/docs/modules/operation/pages/webui/surveillance-view.adoc +++ b/docs/modules/operation/pages/admin/webui/surveillance-view.adoc @@ -1,4 +1,5 @@ +[[surveillance-view]] = Surveillance View When networks are larger and contain devices of different priority, it becomes interesting to show at a glance how the "whole system" is working. @@ -27,7 +28,7 @@ The visual indication for outages in the surveillance view cells is defined as t * One (1) service down: yellow as warning * More than one (1) services down: red as critical -This Surveillance View model also builds the foundation of the <>. +This Surveillance View model also builds the foundation of the <>. == Default Surveillance View Configuration diff --git a/docs/modules/operation/pages/admin/webui/trends.adoc b/docs/modules/operation/pages/admin/webui/trends.adoc new file mode 100644 index 000000000000..d9e5fd7d95a4 --- /dev/null +++ b/docs/modules/operation/pages/admin/webui/trends.adoc @@ -0,0 +1,157 @@ + += Trend + +The Trend feature lets you display small inline charts of database-based statistics. +These chart are accessible in the Status menu of the OpenNMS web application. +Furthermore it is also possible to configure these charts to be displayed on the OpenNMS landing page. +To achieve this alter the `org.opennms.web.console.centerUrl` property to also include the entry `/trend/trend-box.htm`. + +.Trend chart structure +image:webui/trend/trend-chart.png[] + +These charts can be configured and defined in the `trend-configuration.xml` file in your OpenNMS `etc` directory. +The following sample defines a Trend chart for displaying nodes with ongoing outages. + +.Sample Trend chart XML definition for displaying nodes with outages +[source, xml] +---- + + Nodes <1> + w/ Outages <2> + true <3> + fa-fire <4> + <5> + + + + + + + + + + + + + + outage/list.htm?outtype=current <6> + ${intValue[23]} NODES WITH OUTAGE(S) <7> + <8> + E) + ) from ( + select + now() - interval '1 hour' * (O + 1) AS S, + now() - interval '1 hour' * O as E + from + generateseries(0, 23) as O + ) I order by S; + ]]> + + +---- + +<1> title of the Trend chart, see below for supported variable substitutions +<2> subtitle of the Trend chart, see below for supported variable substitutions +<3> defines whether the chart is visible by default +<4> icon for the chart, see https://getbootstrap.com/docs/4.1/extend/icons/[Icons] for viable options +<5> options for inline chart, see http://omnipotent.net/jquery.sparkline/#common[jQuery Sparklines] for viable options +<6> the description link +<7> the description text, see below for supported variable substitutions +<8> the SQL statement for querying the chart's values + +IMPORTANT: Don't forget to limit the SQL query's return values! + +It is possible to use values or aggregated values in the title, subtitle and description fields. +The following table describes the available variable substitutions. + +.Variables usable in definition's title, subtitle and description fields +[options="header, autowidth" cols="1,3,1"] +|=== +| Name +| Description +| Type + +| $\{intmax} +| integer maximum value +| Integer + +| $\{doublemax} +| Double +| maximum value + +| $\{intmin} +| Integer +| integer minimum value + +| $\{doublemin} +| Double +| minimum value + +| $\{intavg} +| Integer +| integer average value + +| $\{doubleavg} +| Double +| average value + +| $\{intsum} +| Integer +| integer sum of values + +| $\{doublesum} +| Double +| sum of value + +| ${intValue[]} +| Integer +| array of integer result values for the given SQL query + +| {doubleValue[]} +| Double +| array of result values for the given SQL query + +| ${intValueChange[]} +| Integer +| array of integer value changes for the given SQL query + +| ${doubleValueChange[]} +| Double +| array of value changes for the given SQL query + +| $\{intlastvalue} +| Integer +| last integer value + +| $\{doublelastvalue} +| Double +| last value + +| $\{intlastvaluechange} +| Integer +| last integer value change + +| $\{doublelastvaluechange} +| Double +| last value change +|=== + +You can also display a single graph in your JSP files by including the file `/trend/single-trend-box.jsp` and specifying the `name` parameter. + +.Sample JSP snippet to include a single Trend chart with name 'example' +[source, xml] +---- + + + +---- diff --git a/docs/modules/operation/pages/ifttt/ifttt-integration.adoc b/docs/modules/operation/pages/alarms/ifttt-integration.adoc similarity index 97% rename from docs/modules/operation/pages/ifttt/ifttt-integration.adoc rename to docs/modules/operation/pages/alarms/ifttt-integration.adoc index 7ba7c9176625..fb71e0360d14 100644 --- a/docs/modules/operation/pages/ifttt/ifttt-integration.adoc +++ b/docs/modules/operation/pages/alarms/ifttt-integration.adoc @@ -17,16 +17,16 @@ With this account you can create applets that combine a trigger with an action. In our case, we use the Webhooks service as the trigger and define the event name `OpenNMS`. After this step you can combine this trigger with any of the possible supported services and their actions. -[[gu-ifttt-trigger-definition]] +[[ga-ifttt-trigger-definition]] .Webhooks service trigger definition -image:ifttt/trigger-definition-small.png[] +image:alarms/trigger-definition-small.png[] In your account service settings for the Webhooks service you find your key in the given service URL. In the following example this key is `X71dfUZsH4Wkl6cjsLjdV`. -[[gu-ifttt-webhooks-settings]] +[[ga-ifttt-webhooks-settings]] .Webhooks service settings -image:ifttt/webhooks-settings-small.png[] +image:alarms/webhooks-settings-small.png[] On the side of {page-component-title}, you need a configuration that defines which event names to send on an alarm count or severity change. The configuration file `ifttt-config.xml` contains trigger packages. diff --git a/docs/modules/operation/pages/database-reports/database.adoc b/docs/modules/operation/pages/database-reports/database.adoc index 025fe414bdba..6d498d53edd0 100644 --- a/docs/modules/operation/pages/database-reports/database.adoc +++ b/docs/modules/operation/pages/database-reports/database.adoc @@ -296,7 +296,7 @@ To get the appropriate interface descriptor depends on the input parameter. To establish a secure connection to the Measurements API, you must import the public certificate of the running {page-component-title} to the Java Truststore. In addition, you must configure {page-component-title} to use that Java Truststore. -Please follow the instructions in this <> to set up the Java Truststore correctly. +Please follow the instructions in this <> to set up the Java Truststore correctly. In addition, set the property `org.opennms.netmgt.jasper.measurement.ssl.enable` in `$OPENNMS_HOME\etc\opennms.properties` to "true" to ensure that only secure connections are established. diff --git a/docs/modules/operation/pages/elasticsearch/introduction.adoc b/docs/modules/operation/pages/elasticsearch/introduction.adoc index 4041aa7e7963..71ed2d380e63 100644 --- a/docs/modules/operation/pages/elasticsearch/introduction.adoc +++ b/docs/modules/operation/pages/elasticsearch/introduction.adoc @@ -98,6 +98,16 @@ Value must be >= 0. When bulk operations fail, only the failed items are retried. | 5 +| bulkSize +| The number of flow documents to collect into a bulk operation before committing. +This is per thread. Set to `0` to disable bulking. +| 1000 + +| bulkFlushMs +| Timeout to flush bulk even if `bulkSize` wasn't reached. +This is per thread. Set to `0` to disable flushing. +| 500 + | settings.index.number_of_shards | The number of primary shards that an index should have. Refer to link:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html#index-modules-setting[Elasticsearch Reference -> Index Modules] for more details. diff --git a/docs/modules/operation/pages/flows/aggregation.adoc b/docs/modules/operation/pages/flows/aggregation.adoc index 3e51dd94d3de..0a3bc3f9750a 100644 --- a/docs/modules/operation/pages/flows/aggregation.adoc +++ b/docs/modules/operation/pages/flows/aggregation.adoc @@ -1,13 +1,11 @@ [[ga-flow-support-aggregation]] -= Aggregation += Aggregated flows by REST API The flow query engine supports rendering Top-N metrics from pre-aggregated documents stored in Elasticsearch. Use these to help alleviate compute load on the Elasticsearch cluster, particularly for environments with large volumes of flows (>10,000 flows/sec). -To use this functionality you must enable the Kafka forwarder as described in <> and set up link:https://github.com/OpenNMS/nephron[Nephron] to process the flows. - -NOTE: Nephron currently requires an link:https://flink.apache.org/[Apache Flink] cluster to deploy the job. +To use this functionality you must enable the Kafka forwarder as described in <> and set up <> to process flows and persist aggregates in Elasticsearch. Set the following properties in `$OPENNMS_HOME/etc/org.opennms.features.flows.persistence.elastic.cfg` to control the query engine to use aggregated flows: diff --git a/docs/modules/operation/pages/flows/classification-engine.adoc b/docs/modules/operation/pages/flows/classification-engine.adoc index b118caba7d5c..ea6df409ce02 100644 --- a/docs/modules/operation/pages/flows/classification-engine.adoc +++ b/docs/modules/operation/pages/flows/classification-engine.adoc @@ -46,7 +46,7 @@ See `dstAddress` for more details. | exporterFilter | The exporter of the flow must match this criteria. -This parameter supports all capabilities of the https://wiki.opennms.org/wiki/Filters[{page-component-title} Filters API]. +This parameter supports all capabilities of the {page-component-title} xref:reference:configuration/filters/filters.adoc[Filters API]. | protocol | The IP protocol of the flow to match. diff --git a/docs/modules/operation/pages/flows/introduction.adoc b/docs/modules/operation/pages/flows/introduction.adoc index d02211450b9c..c12469fd879d 100644 --- a/docs/modules/operation/pages/flows/introduction.adoc +++ b/docs/modules/operation/pages/flows/introduction.adoc @@ -14,9 +14,13 @@ While flows offer a great breadth of information, the current focus of the suppo At a high level: * <> receives and decodes flows on both {page-component-title} and Minion. -* Telemetryd adapters convert the flows to a canonical flow model and dispatch these to the flow repository. -* The flow repository enriches the flows and persists them to Elasticsearch: +* Telemetryd adapters convert the flows to a canonical flow model. +* Flows are enriched: ** Flows are tagged with an application name via the <>. ** Metadata related to associated nodes (such as IDs and categories) are also added to the flows. -* The REST API supports generating both summaries and time series data from the flows stored in the flow repository. -* Use OpenNMS Helm to visualize the flow data using the flow datasource that interfaces with the {page-component-title} REST API. +* Enriched flows are persisted in Elasticsearch and/or forwarded to Kafka. +* You can use <> to aggregate flows and output aggregates to Elasticsearch, Cortex, or Kafka. +* The REST API supports generating both summaries and time series data from the flows or flow aggregates stored in Elasticsearch. +* Use OpenNMS Helm to visualize flows and/or flow aggregates: +** Use the "Flow Deep Dive" dashboard to visualize flows and flow aggregates that are stored in Elasticsearch using the flow datasource that interfaces with the {page-component-title} REST API. +** Use the "Cortex Flow Deep Dive" dashboard that uses a Prometheus datasource to access flow aggregates stored in Cortex. diff --git a/docs/modules/operation/pages/flows/nephron.adoc b/docs/modules/operation/pages/flows/nephron.adoc new file mode 100644 index 000000000000..7ce4aac0dde3 --- /dev/null +++ b/docs/modules/operation/pages/flows/nephron.adoc @@ -0,0 +1,162 @@ +[[ga-nephron]] += Nephron + +link:https://github.com/OpenNMS/nephron[Nephron] is a streaming application that reads flows from Kafka, calculates flow aggregates, and persists these aggregates in Elasticsearch, Cortex, or Kafka. + +NOTE: Nephron currently requires an link:https://flink.apache.org/[Apache Flink] cluster to deploy the job. + +== Flow input + +Flow input from Kafka is configured by the following command line arguments: + +[source, console] +---- +--bootstrapServers=... +--flowSourceTopic=... +---- + +The `flowSourceTopic` given here must match the topic configured for the <>. + +== Elasticsearch persistence + +Elasticsearch persistence is configured by the following command line argument: + +[source, console] +---- +--elasticUrl=http://:9200 +---- + +For additional options, see link:https://github.com/OpenNMS/nephron/blob/master/main/src/main/java/org/opennms/nephron/NephronOptions.java[NephronOptions]. + +If no Elasticsearch output is required, then set `--elasticUrl` as empty. + +== Cortex persistence + +Use the following command line argument to configure Cortex persistence: + +[source, console] +---- +--cortexWriteUrl=http://:9009/api/v1/push +---- + +For additional options, see link:https://github.com/OpenNMS/nephron/blob/master/main/src/main/java/org/opennms/nephron/CortexOptions.java[CortexOptions]. + +== Kafka persistence + +Use the following command line argument to configure Kafka persistence: + +[source, console] +---- +--flowDestTopc=... +---- + +== Monitoring + +Nephron provides a number of metrics that can be used to monitor its operation. +If you use Prometheus to monitor Nephron, you must enable the link:https://ci.apache.org/projects/flink/flink-docs-master/docs/deployment/metric_reporters/#prometheus[Prometheus metric reporter] by adding the following lines to `flink-conf.yaml`: + +[source, console] +---- +metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter +metrics.reporter.prom.port: 9250-9260 +---- + +You must add a corresponding scrape configuration to `prometheus.yml`: + +[source, console] +---- +scrape_configs: + # The job name is added as a label `job=` to any timeseries scraped from this config. + - job_name: 'flink' + static_configs: + - targets: ['localhost:9250', 'localhost:9251', 'localhost:9252', 'localhost:9253', 'localhost:9254', 'localhost:9255', 'localhost:9256', 'localhost:9257', 'localhost:9258', 'localhost:9259', 'localhost:9260'] + labels: + flinklabel: 'flink' +---- + +=== Metrics + +[options="header" cols="1,2,1,4"] +|=== +| Namespace +| Name +| Type +| Description + +| flows +| from_kafka +| Counter +| The number of flows read from Kafka. + +| flows +| from_kafka_drift +| Gauge +| The number of milliseconds between processing time and the `last_switched` of flows. + +| flows +| to_es +| Counter +| The number of flows written to Elasticsearch. + +| cortex +| write +| Counter +| The number of batches written to Cortex. + +| cortex +| sample +| Counter +| The number of Cortex samples. + +| cortex +| write_failure +| Counter +| The number of Cortex write failures (writes that completed with an exception). + +| cortex +| response_failure +| Counter +| The number of Cortex response failures (responses to Cortex writes that indicate a failure condition). + +| cortex +| response_failure_ +| Counter +| The number of Cortex response failures of certain kinds. +Cortex persistence analyses response failures and tries to derive corresponding failure kinds (e.g., "out of order sample" or "per-user series limit reached"). +|=== + +[options="header" cols="1,2,5"] +|=== +| Namespace +| Name +| Prometheus metric name + +| flows +| from_kafka +| `flink_taskmanager_job_task_operator_flows_from_kafka` + +| flows +| to_es +| `flink_taskmanager_job_task_operator_flows_to_es` + +| cortex +| write +| `flink_taskmanager_job_task_operator_cortex_write` + +| cortex +| sample +| `flink_taskmanager_job_task_operator_cortex_sample` + +| cortex +| write_failure +| `flink_taskmanager_job_task_operator_cortex_write_failure` + +| cortex +| response_failure +| `flink_taskmanager_job_task_operator_cortex_response_failure` + +| cortex +| response_failure_ +| `{__name__=~"flink_taskmanager_job_.\*response_failure_.*"}` + +|=== diff --git a/docs/modules/operation/pages/flows/setup.adoc b/docs/modules/operation/pages/flows/setup.adoc index bfdb6850ea62..8d9a0eae83d0 100644 --- a/docs/modules/operation/pages/flows/setup.adoc +++ b/docs/modules/operation/pages/flows/setup.adoc @@ -212,6 +212,7 @@ $ ssh -p 8101 admin@localhost ... admin@opennms()> config:edit org.opennms.features.flows.persistence.kafka admin@opennms()> config:property-set bootstrap.servers 127.0.0.1:9092 +admin@opennms()> config:property-set topic opennms-flows admin@opennms()> config:update ---- diff --git a/docs/modules/operation/pages/kafka-producer/configure-kafka.adoc b/docs/modules/operation/pages/kafka-producer/configure-kafka.adoc index 1821b558394d..fc68b871b299 100644 --- a/docs/modules/operation/pages/kafka-producer/configure-kafka.adoc +++ b/docs/modules/operation/pages/kafka-producer/configure-kafka.adoc @@ -62,12 +62,6 @@ Set this to an empty string to disable filtering, and forward all alarms. Decrease this value to improve accuracy at the cost of additional database lookups. | 300000 (5 minutes) -| alarmSyncIntervalMs -| Number of milliseconds at which the contents of the alarm topic will be synchronized with the local database. -Decrease this to improve accuracy at the cost of additional database lookups. -Set this value to 0 to disable alarm synchronization. -| 300000 (5 minutes) - | suppressIncrementalAlarms | Suppresses forwarding alarms that differ only by count or last event time. Set this to `false` to prevent suppressing these alarms. diff --git a/docs/modules/operation/pages/kafka-producer/kafka-producer.adoc b/docs/modules/operation/pages/kafka-producer/kafka-producer.adoc index 61da7288d015..ff2ec45f415b 100644 --- a/docs/modules/operation/pages/kafka-producer/kafka-producer.adoc +++ b/docs/modules/operation/pages/kafka-producer/kafka-producer.adoc @@ -46,7 +46,7 @@ If the node is not associated with both a foreign source and foreign ID, then th == Topologies The Kafka Producer listens for changes made to the current set of topologies and forwards the resulting messages to the topologyEdgeTopic Kafka topic. -The topologies are provided by the <> updaters via the OnmsTopology API. +The topologies are provided by the <> updaters via the OnmsTopology API. An updater sends OnmsTopologyMessage to the subscribers. The records are keyed by GPB-encoded key of the protocol and TopologyRef and contain a GPB-encoded model of the vertex or edge. When a vertex or an edge is deleted, a null value is sent with the corresponding encoded GPB key. diff --git a/docs/modules/operation/pages/notifications/strategies/mattermost.adoc b/docs/modules/operation/pages/notifications/strategies/mattermost.adoc index 1ccbe11d85ac..3450993dd0a0 100644 --- a/docs/modules/operation/pages/notifications/strategies/mattermost.adoc +++ b/docs/modules/operation/pages/notifications/strategies/mattermost.adoc @@ -67,7 +67,7 @@ IMPORTANT: To improve the layout, the property names have been shortened to thei | useSystemProxy | Should the system-wide proxy settings be used? -Configure the system proxy settings via <>. +Configure the system proxy settings via <>. | true | true |=== diff --git a/docs/modules/operation/pages/notifications/strategies/slack.adoc b/docs/modules/operation/pages/notifications/strategies/slack.adoc index 99b7e3181841..f973e63acba4 100644 --- a/docs/modules/operation/pages/notifications/strategies/slack.adoc +++ b/docs/modules/operation/pages/notifications/strategies/slack.adoc @@ -67,7 +67,7 @@ IMPORTANT: To improve the layout, the property names have been shortened to thei | \https://example.org/assets/icon.png | useSystemProxy -| Should the system-wide proxy settings be used? Configure the system proxy settings via <>. +| Should the system-wide proxy settings be used? Configure the system proxy settings via <>. | true | true |=== diff --git a/docs/modules/operation/pages/rmi.adoc b/docs/modules/operation/pages/rmi.adoc deleted file mode 100644 index e2e70a295814..000000000000 --- a/docs/modules/operation/pages/rmi.adoc +++ /dev/null @@ -1,82 +0,0 @@ - -= Enabling RMI - -By default, the RMI port in the {page-component-title} server is disabled, for security reasons. -To enable it so that you can access {page-component-title} through jconsole or remote-manage {page-component-title}, you will have to add some settings to the default {page-component-title} install. - -To enable the RMI port in {page-component-title}, add the following to the `$\{OPENNMS_HOME}/etc/opennms.conf` file. -If you do not have an `opennms.conf` file, you can create it. - -[source, properties, options="nowrap"] ----- -# Configure remote JMX -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Dcom.sun.management.jmxremote.port=18980" -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Dcom.sun.management.jmxremote.local.only=false" -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Dcom.sun.management.jmxremote.authenticate=true" -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Dcom.sun.management.jmxremote.ssl=false" - -# Listen on all interfaces -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Dopennms.poller.server.serverHost=0.0.0.0" -# Accept remote RMI connections on this interface -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Djava.rmi.server.hostname=" ----- - -This tells {page-component-title} to listen for RMI on port `18980`, and to listen on all interfaces. -(Originally, RMI was used only for the legacy Remote Poller, so despite the property name mentioning the "opennms poller server" it applies to RMI as a whole.) -Note that you _must_ include the `-Djava.rmi.server.hostname=` option or {page-component-title} will accept connections on the RMI port, but not be able to complete a valid connection. - -Authentication will be allowed only for users that are in the `admin` role (i.e., `ROLE_ADMIN`), or the `jmx` role (i.e., `ROLE_JMX`). -To make a user an admin, be sure to add only the `ROLE_ADMIN` role to the user in `users.xml`. -To add the `jmx` role to the user, add the `ROLE_JMX` role to the user in `users.xml`, and also the `ROLE_USER` role if it is required to provide access to the Web UI. -(Also see <>). - -Make sure `$\{OPENNMS_HOME}/etc/jmxremote.access` has the appropriate settings: - -[source, options="nowrap"] ----- -admin readwrite -jmx readonly ----- - -The possible types of access are: - -readwrite:: Lets you retrieve JMX metrics as well as executing MBeans. -readonly:: Lets you retrieve JMX metrics but does *not* allow executing MBeans, even if they just return simple values. - -== Enabling SSL - -To enable SSL on the RMI port, you will need to have an existing keystore for the {page-component-title} server. -For information on configuring a keystore, see link:https://opennms.discourse.group/t/how-to-setup-ssl-with-jetty/1084[How to setup SSL with Jetty]. - -You will need to change the `com.sun.management.jmxremote.ssl` option to `true`, and tell {page-component-title} where your keystore is. - -[source, properties, options="nowrap"] ----- -# Configure remote JMX -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Dcom.sun.management.jmxremote.port=18980" -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Dcom.sun.management.jmxremote.local.only=false" -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Dcom.sun.management.jmxremote.authenticate=true" -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Dcom.sun.management.jmxremote.ssl=true" - -# Configure SSL Keystore -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Djavax.net.ssl.keyStore=/opt/opennms/etc/opennms.keystore" -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Djavax.net.ssl.keyStorePassword=changeit" - -# Listen on all interfaces -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Dopennms.poller.server.serverHost=0.0.0.0" -# Accept remote RMI connections on this interface -ADDITIONAL_MANAGER_OPTIONS="$ADDITIONAL_MANAGER_OPTIONS -Djava.rmi.server.hostname=" ----- - -== Connecting to RMI over SSL - -Note that if you use a self-signed or otherwise untrusted certificate, you must configure a truststore on the client side when you attempt to connect over SSL-enabled RMI. -To create a truststore, follow the example in the <>. -You may then use the truststore to connect to your {page-component-title} RMI server. - -For example, when using `jconsole` to connect to the {page-component-title} RMI interface to get JVM statistics, you would run: - -[source, console, options="nowrap"] ----- -jconsole -J-Djavax.net.ssl.trustStore=/path/to/opennms.truststore -J-Djavax.net.ssl.trustStorePassword=changeit ----- diff --git a/docs/modules/operation/pages/search/search.adoc b/docs/modules/operation/pages/search/search.adoc deleted file mode 100644 index 422f20654dda..000000000000 --- a/docs/modules/operation/pages/search/search.adoc +++ /dev/null @@ -1,99 +0,0 @@ -[[search-functionality]] -= Search - -{page-component-title} provides two ways to search in the web UI: through the search bar and the *Search* view. - -== Search bar - -The search bar uses keywords to return both nodes that match the keyword(s) and a list of actions you can perform that relate to the keyword. -Press the btn:[Shift] key twice or click in the search bar to activate it for typing. - -image::search/search-sample.png[] - -Note that the search results for nodes also displays any nodes with xref:meta-data.adoc#metadata-overview[metadata] that match the keyword, such as a label, location, admin user, and so on. -For example, if you search for 'foo' and get a node match of 'foobar', the result displays no metadata. -However, if you search for 'foo' and a match is found in a node's metadata customkey='somefoo' (even if the node name does not contain 'foo'), the result displays the name of the node (for example, 'node1') and the 'foo' metadata associated with it. -See xref:search-customize[Customize search results] below for more information. - -Click on a node to navigate to the node's page. -Click on one of the actions to navigate to the screen that lets you complete the specified action. -For example, clicking on *Edit Requisition 'Test'* takes you to the screen where you can edit the requisition named 'Test'. - -== Search view - -The Search view provides a number of search options for nodes. -Click *Search* on the main menu to access the *Search* view. - -=== Quick search links - -Click on the following links to quickly search for the associated information: - -* All nodes -* All nodes and their interfaces -* All nodes with asset info - -=== Name containing search - -Search by name is a case-insensitive, inclusive search. -For example, searching on `serv` finds any of `serv, Service, Reserved, NTSERV, UserVortex`, and so on. -Use the underscore character as a single-character wildcard. -Use the percent character as a multiple-character wildcard. - -=== TCP/IP Address like search - -Searching by TCP/IP address uses a flexible search format that lets you separate the four or eight (in the case of IPv6) fields of a TCP/IP address into specific searches. -An asterisk (*) in place of any octet matches any value for that octet. -Separate two numbers by a dash (-) to indicate a range. -Use a comma for list demarcation. - -For example, the following search fields are all valid and each create the same result set: all TCP/IP addresses from 192.168.0.0 through 192.168.255.255: - -* 192.168.\*.* -* 192.168.0-255.0-255 -* 192.168.0,1,2,3-255.* -* 2001:6a8:3c80:8000-8fff:*:*:*:* -* fc00,fe80:*:*:*:*:*:*:* - -=== System or interface attribute search - -A System/Interface attribute search finds nodes with systems or interfaces that match a given search string. -The "contains" modifier provides a case-insensitive, inclusive search similar to the "name containing" search described above. -The "equals" modifier requires the search to find an exact match. - -=== Location or Providing service search - -Select the location or service to search for from the appropriate drop-down menu. - -=== MAC address like search -Case-insensitive, partial string match to find interfaces with hardware (MAC) addresses that match the search string. -For example, to find all interfaces with a specified manufacturer's code, enter the first six characters of the MAC address. -Octet separators (dash or colon) are optional. - -=== Foreign Service name like search -Case-insensitive, inclusive search on the foreign service name. -Use the underscore character as a single-character wildcard. -Use the percent character as a multiple-character wildcard. - -=== Flows search -Find nodes with or without flows data. - -=== Enhanced Linkd topology search - -Find nodes with CDP/LLDP data that match the given search string. - -=== Category or Field asset information search -Search for nodes that have assets associated with a particular category or field. -The field search includes a list of fields and a text box to match a value. -The field search is case-insensitive and inclusive. -Use the underscore character as a single-character wildcard. -Use the percent character as a multiple-character wildcard. - -[[search-customize]] -== Customize search results - -It is possible to customize the search results to show additional metadata in the search results pop up. -Create a new file in `$OPENNMS_HOME/etc/opennms.properties.d/` and specify a value for `org.opennms.netmgt.search.info`, to pick additional metadata fields to display. - -This example displays the node's sys-contact and the associated department: - -`org.opennms.netmgt.search.info=${node:sys-contact} (Department: ${asset:department})` \ No newline at end of file diff --git a/docs/modules/operation/pages/service-assurance/polling-packages.adoc b/docs/modules/operation/pages/service-assurance/polling-packages.adoc index 4ea1a0c588ce..92682f444d7c 100644 --- a/docs/modules/operation/pages/service-assurance/polling-packages.adoc +++ b/docs/modules/operation/pages/service-assurance/polling-packages.adoc @@ -4,7 +4,10 @@ To define more complex monitoring configuration it is possible to group service configurations into polling packages. They allow you to assign different service configurations to nodes. -To assign a polling package to nodes, use the the https://wiki.opennms.org/wiki/Filters[Rules/Filters] syntax. + +To assign a polling package to nodes, use the the xref:reference:configuration/filters/filters.adoc[filter] syntax. + + Each polling package can have its own <> configuration. You can configure multiple packages, and an interface can exist in more than one package. @@ -19,7 +22,7 @@ This gives great flexibility to how the service levels will be determined for a <3> ---- <1> Unique name of the polling package. -<2> Base filter on IP address, categories or asset attributes of nodes based on https://wiki.opennms.org/wiki/Filters[Rules/Filters]. +<2> Base filter on IP address, categories, or asset attributes of nodes based on xref:reference:configuration/filters/rule-formats.adoc[filter rules]. The filter is evaluated first and is *required*. This package is used for all IP interfaces that do not have 0.0.0.0 as an assigned IP address and is *required*. <3> Allow to specify if the configuration of services is applied on a range of IP interfaces_ (IPv4 or IPv6). @@ -75,6 +78,23 @@ WARNING: The RRD configuration and the service polling interval must be aligned. IMPORTANT: If you change the polling interval afterwards, you must recreate existing RRD files with the new definitions. +[[ga-pollerd-packages-service-status-persistence]] +== Service Status Persistence + +You can configure each service monitor to store the current status of the service in RRD files. +This allows you to query the current status and the status history. + +This feature is disabled by default. +You must enable it individually for each service. +To do so, add a service parameter to the appropriate services in `poller-configuration.xml`: + +[source, xml] +---- + + + +---- + [[ga-pollerd-packages-overlapping-service]] == Overlapping Services @@ -262,7 +282,7 @@ Service is Up on 192.168.31.100 using org.opennms.netmgt.poller.monitors.IcmpMon Filters are ubiquitous in opennms configurations with syntax. Use this Karaf shell to verify filters. -For more information, see https://wiki.opennms.org/wiki/Filters[Filters]. +For more information, see xref:reference:configuration/filters/filters.adoc[Filters]. [source, console] ---- @@ -296,7 +316,6 @@ nodeId=2 nodeLabel=00000000-0000-0000-0000-000000ddba11 location=MINION 127.0.0.1 ---- Another example: Run a filter that matches a node location and for a given IP address range. -Refer to https://wiki.opennms.org/wiki/IPLIKE[IPLIKE] for more info on using IPLIKE syntax. [source, console] ---- opennms:filter "location='Default' & (IPADDR IPLIKE 172.*.*.*)" diff --git a/docs/modules/operation/pages/system-properties/introduction.adoc b/docs/modules/operation/pages/system-properties/introduction.adoc deleted file mode 100644 index 0c94b231d862..000000000000 --- a/docs/modules/operation/pages/system-properties/introduction.adoc +++ /dev/null @@ -1,23 +0,0 @@ - -[[system-properties]] -= System Properties - -The global behavior of {page-component-title} is configured with properties files. -Configuration can also affect the Java virtual machine under which {page-component-title} runs. -Changes in these properties files require a restart of {page-component-title}. -The configuration files can be found in `$\{OPENNMS_HOME}/etc`. - -The priority for Java system properties is as follows: - -. Those set via the _Java_ command line i.e., in `opennms.conf` via `ADDITIONAL_MANAGER_OPTIONS` -. `opennms.properties.d/*.properties` -. `opennms.properties` -. `libraries.properties` -. `rrd-configuration.properties` -. `bootstrap.properties` - -Property files in `opennms.properties.d/` are sorted alphabetically. - -TIP: To avoid conflicts with customized configurations, all custom properties can be added to one or more files in `$\{OPENNMS_HOME}/etc/opennms.properties.d/`. - We recommend to not modify default OpenNMS properties. - Create dedicated files with your customized properties in `opennms.properties.d/`. diff --git a/docs/modules/operation/pages/enlinkd/introduction.adoc b/docs/modules/operation/pages/topology/enlinkd/introduction.adoc similarity index 100% rename from docs/modules/operation/pages/enlinkd/introduction.adoc rename to docs/modules/operation/pages/topology/enlinkd/introduction.adoc diff --git a/docs/modules/operation/pages/enlinkd/layer-2-discovery.adoc b/docs/modules/operation/pages/topology/enlinkd/layer-2-discovery.adoc similarity index 100% rename from docs/modules/operation/pages/enlinkd/layer-2-discovery.adoc rename to docs/modules/operation/pages/topology/enlinkd/layer-2-discovery.adoc diff --git a/docs/modules/operation/pages/enlinkd/layer-2/bridge-discovery.adoc b/docs/modules/operation/pages/topology/enlinkd/layer-2/bridge-discovery.adoc similarity index 100% rename from docs/modules/operation/pages/enlinkd/layer-2/bridge-discovery.adoc rename to docs/modules/operation/pages/topology/enlinkd/layer-2/bridge-discovery.adoc diff --git a/docs/modules/operation/pages/enlinkd/layer-2/cdp-discovery.adoc b/docs/modules/operation/pages/topology/enlinkd/layer-2/cdp-discovery.adoc similarity index 100% rename from docs/modules/operation/pages/enlinkd/layer-2/cdp-discovery.adoc rename to docs/modules/operation/pages/topology/enlinkd/layer-2/cdp-discovery.adoc diff --git a/docs/modules/operation/pages/enlinkd/layer-2/lldp-discovery.adoc b/docs/modules/operation/pages/topology/enlinkd/layer-2/lldp-discovery.adoc similarity index 100% rename from docs/modules/operation/pages/enlinkd/layer-2/lldp-discovery.adoc rename to docs/modules/operation/pages/topology/enlinkd/layer-2/lldp-discovery.adoc diff --git a/docs/modules/operation/pages/enlinkd/layer-3-discovery.adoc b/docs/modules/operation/pages/topology/enlinkd/layer-3-discovery.adoc similarity index 100% rename from docs/modules/operation/pages/enlinkd/layer-3-discovery.adoc rename to docs/modules/operation/pages/topology/enlinkd/layer-3-discovery.adoc diff --git a/docs/modules/operation/pages/enlinkd/layer-3/is-is-discovery.adoc b/docs/modules/operation/pages/topology/enlinkd/layer-3/is-is-discovery.adoc similarity index 100% rename from docs/modules/operation/pages/enlinkd/layer-3/is-is-discovery.adoc rename to docs/modules/operation/pages/topology/enlinkd/layer-3/is-is-discovery.adoc diff --git a/docs/modules/operation/pages/enlinkd/layer-3/ospf-discovery.adoc b/docs/modules/operation/pages/topology/enlinkd/layer-3/ospf-discovery.adoc similarity index 100% rename from docs/modules/operation/pages/enlinkd/layer-3/ospf-discovery.adoc rename to docs/modules/operation/pages/topology/enlinkd/layer-3/ospf-discovery.adoc diff --git a/docs/modules/operation/pages/asset-topology/graphml-asset-topology-provider.adoc b/docs/modules/operation/pages/topology/graphml-asset-topology-provider.adoc similarity index 99% rename from docs/modules/operation/pages/asset-topology/graphml-asset-topology-provider.adoc rename to docs/modules/operation/pages/topology/graphml-asset-topology-provider.adoc index 637e16fce343..8bfe5309042c 100644 --- a/docs/modules/operation/pages/asset-topology/graphml-asset-topology-provider.adoc +++ b/docs/modules/operation/pages/topology/graphml-asset-topology-provider.adoc @@ -1,4 +1,5 @@ +[[asset-topology]] = Asset Topology Provider {page-component-title} lets users define arbitrarily complex layered topologies using http://graphml.graphdrawing.org/[GraphML]. diff --git a/docs/modules/operation/pages/topology/introduction.adoc b/docs/modules/operation/pages/topology/introduction.adoc new file mode 100644 index 000000000000..c15ad8d0eabf --- /dev/null +++ b/docs/modules/operation/pages/topology/introduction.adoc @@ -0,0 +1,8 @@ + +[[topology]] += Topology + +A topology describes network elements (devices, services) and the connections between them. +OpenNMS can display a user-configured xref:operation:topology/topology.adoc#topology-map[topology map] to help visualize your network topology. +The OpenNMS xref:operation:topology/graphml-asset-topology-provider.adoc#asset-topology[Asset Topology Provider] lets you use http://graphml.graphdrawing.org/[GraphML] to define arbitrarily complex topologies. +Use xref:operation:topology/enlinkd/introduction.adoc#ga-enlinkd[Enhanced Linkd] (Enlinkd) to discover connections between nodes using data generated by various link discovery protocols and accessible via SNMP. diff --git a/docs/modules/operation/pages/topology/topology.adoc b/docs/modules/operation/pages/topology/topology.adoc index 247e4b51264e..5e527689715d 100644 --- a/docs/modules/operation/pages/topology/topology.adoc +++ b/docs/modules/operation/pages/topology/topology.adoc @@ -40,6 +40,22 @@ The resolution is enabled only if no longitude/latitude information is available |=== +=== Edge Status + +The choice of topology provider controls the status and color of an edge, or link between two vertices. +Each topology provider has different notions of what an edge represents and may provide different controls for managing the behavior. + +==== Linkd Topology Provider + +The Linkd Topology Provider uses the state and existence of alarms to determine the color of the edge. +An edge between two vertices on a topology map represents a link that has been discovered between two interfaces on distinct nodes. +If an alarm is present with a UEI `uei.opennms.org/internal/topology/linkDown`, and the alarm is associated with either of the interfaces on either node, then the edge is red. +If no such alarm is present, the edge is green. + +These alarms are not generated by default. +Enable them by changing the `logmsg` property on the `uei.opennms.org/internal/topology/linkDown` and `uei.opennms.org/internal/topology/linkUp` events from `donotpersist` to `logndisplay`. +These events are automatically generated by the default set of event translator rules that process incoming SNMP Link Up & Down traps. + == Icons Each Vertex on the topology map is represented by an icon. diff --git a/docs/modules/operation/pages/user-management/user-config.adoc b/docs/modules/operation/pages/user-management/user-config.adoc index 15d7d853f06e..2cffab0abb6c 100644 --- a/docs/modules/operation/pages/user-management/user-config.adoc +++ b/docs/modules/operation/pages/user-management/user-config.adoc @@ -8,7 +8,7 @@ We recommend creating a new user with admin privileges instead of using the defa Ideally, each user account corresponds to a person, to help track who performs tasks in your {page-component-title} system. Assigning different <> to each user helps restrict what tasks the user can perform. -In addition to local users, you can configure external authentication services including link:https://opennms.discourse.group/t/spring-security-and-ldap/1425[LDAP/LDAPS], link:https://opennms.discourse.group/t/spring-security-and-radius/1424[RADIUS], and link:https://wiki.opennms.org/wiki/Single_Sign_On[Single Sign On (SSO]). +In addition to local users, you can configure external authentication services including link:https://opennms.discourse.group/t/spring-security-and-ldap/1425[LDAP/LDAPS], link:https://opennms.discourse.group/t/spring-security-and-radius/1424[RADIUS], and link:https://opennms.discourse.group/t/single-sign-on-sso-using-spring-security-and-kerberos/[Single Sign On (SSO]). Configuration specifics for these services are outside the scope of this documentation. WARNING: Do not delete the default _admin_ and _rtc_ users. diff --git a/docs/modules/operation/pages/webui/introduction.adoc b/docs/modules/operation/pages/webui/introduction.adoc deleted file mode 100644 index 4fcb9a19710e..000000000000 --- a/docs/modules/operation/pages/webui/introduction.adoc +++ /dev/null @@ -1,4 +0,0 @@ - -= Administrative Web Interface - -This section describes the main sections of the {page-component-title} web UI. \ No newline at end of file diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/alarm-detail.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/alarm-detail.adoc deleted file mode 100644 index fa343551586d..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/alarm-detail.adoc +++ /dev/null @@ -1,24 +0,0 @@ - -= Alarm Details - -This Alarm-Details Dashlet shows a table with alarms and some detailed information. - -.Information of the alarms -[options="header, autowidth"] -|=== -| Field | Description -| Alarm ID | {page-component-title} ID for the alarm -| Severity | Alarm severity (Cleared, Indeterminate, Normal, Warning, Minor, Major, Critical) -| Node label | Node label of the node where the alarm occurred -| Alarm count | Alarm count based on reduction key for deduplication -| Last Event Time | Last time the alarm occurred -| Log Message | Reason and detailed log message of the alarm -|=== - -Configure the Alarm Details Dashlet with the following parameters. - -[options="autowidth"] -|=== -| Boost support | <> -| Configuration | <> -|=== diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/alarms.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/alarms.adoc deleted file mode 100644 index 516bb63d03ab..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/alarms.adoc +++ /dev/null @@ -1,21 +0,0 @@ - -= Alarms - -This Alarms dashlet shows a table with a short alarm description. - -.Information of the alarm -[options="header, autowidth"] -|=== -| Field | Description -| Time | Absolute time since the alarm appeared -| Node label | Node label of the node where the alarm occurred -| UEI | {page-component-title} Unique event identifier for this alarm -|=== - -Configure the Alarms dashlet with the following parameters. - -[options="autowidth"] -|=== -|Boost support | <> -| Configuration | <> -|=== diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/charts.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/charts.adoc deleted file mode 100644 index 5608cd326aa9..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/charts.adoc +++ /dev/null @@ -1,12 +0,0 @@ - -= Charts - -This dashlet displays an existing https://wiki.opennms.org/wiki/Chart-configuration.xml[Chart]. - -[options="autowidth"] -|=== -| Boost support | false -| `Chart` | Name of the existing chart to display -| `Maximize Width` | Rescale the image to fill display width -| `Maximize Height` | Rescale the image to fill display height -|=== diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/grafana.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/grafana.adoc deleted file mode 100644 index c704dbab8d44..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/grafana.adoc +++ /dev/null @@ -1,14 +0,0 @@ - -= Grafana - -This dashlet shows a Grafana dashboard for a given time range. -The <> configuration defined in the `opennms.properties` file is used to access the Grafana instance. - -[options="autowidth"] -|=== -| Boost support | false -| `title` | Title of the Grafana dashboard to be displayed -| `uri` | URI to the Grafana Dashboard to be displayed -| `from` | Start of time range -| `to` | End of time range -|=== diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/image.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/image.adoc deleted file mode 100644 index b8a50f46d5b7..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/image.adoc +++ /dev/null @@ -1,12 +0,0 @@ - -= Image - -This dashlet displays an image by a given URL. - -[options="autowidth"] -|=== -| Boost support | false -| `imageUrl` | URL with the location of the image to show in this dashlet -| `maximizeHeight` | Rescale the image to fill display width -| `maximizeWidth` | Rescale the image to fill display height -|=== diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/ksc.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/ksc.adoc deleted file mode 100644 index 098e3a1b0024..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/ksc.adoc +++ /dev/null @@ -1,11 +0,0 @@ - -= KSC - -This dashlet shows an existing https://wiki.opennms.org/wiki/KSC_Reports[KSC reports]. -The view is exactly the same as the KSC report is built regarding order, columns, and time spans. - -[options="autowidth"] -|=== -| Boost support | false -| `KSC-Report` | Name of the KSC report to show in this dashlet -|=== diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/map.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/map.adoc deleted file mode 100644 index 626791d60caa..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/map.adoc +++ /dev/null @@ -1,10 +0,0 @@ - -= Map - -This dashlet displays the https://wiki.opennms.org/wiki/Geographical_Maps[geographical map]. - -[options="autowidth"] -|=== -| Boost support | false -| `search` | Predefined http://wiki.opennms.org/wiki/Geographical_Maps#Searching[search] for a subset of nodes shown in the geographical map in this dashlet -|=== diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/rrd.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/rrd.adoc deleted file mode 100644 index a4ffd2702a6c..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/rrd.adoc +++ /dev/null @@ -1,18 +0,0 @@ - -= RRD - -This dashlet shows one or multiple RRD graphs. -It is possible to arrange and order the RRD graphs in multiple columns and rows. -All RRD graphs are normalized with a given width and height. - -[options="autowidth"] -|=== -| Boost support | false -| `Columns` | Number of columns within the dashlet -| `Rows` | Number of rows with the dashlet -| `KSC Report` | Import RRD graphs from an existing KSC report and re-arrange them. -| `Graph Width` | Generic width for all RRD graphs in this dashlet -| `Graph Height` | Generic height for all RRD graphs in this dashlet -| `Timeframe value` | Number of the given `Timeframe type` -| `Timeframe type` | Minute, hour, day, week, month, and year for all RRD graphs -|=== diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/rtc.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/rtc.adoc deleted file mode 100644 index a0e663df6fb5..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/rtc.adoc +++ /dev/null @@ -1,12 +0,0 @@ - -= RTC - -This dashlet shows the configured SLA categories from the {page-component-title} start page. - -[options="autowidth"] -|=== -| Boost support | false -| `-` | - -|=== - - diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/summary.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/summary.adoc deleted file mode 100644 index b0862c783be7..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/summary.adoc +++ /dev/null @@ -1,10 +0,0 @@ - -= Summary - -This dashlet shows a trend of incoming alarms in given time frame. - -[options="autowidth"] -|=== -| Boost support | <> -| `timeslot` | Time slot in seconds to evaluate the trend for alarms by severity and _UEI_. -|=== diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/surveillance.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/surveillance.adoc deleted file mode 100644 index f853d53d6f21..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/surveillance.adoc +++ /dev/null @@ -1,10 +0,0 @@ - -= Surveillance - -This dashlet shows a given https://wiki.opennms.org/wiki/Surveillance_View_%28af%29[Surveillance View]. - -[options="autowidth"] -|=== -| Boost support | false -| `viewName` | Name of the configured surveillance view -|=== diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/topology.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/topology.adoc deleted file mode 100644 index a207dc3f6024..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/topology.adoc +++ /dev/null @@ -1,13 +0,0 @@ - -= Topology - -This dashlet shows a https://wiki.opennms.org/wiki/Topology_Maps[Topology Map]. -Configure the topology map with the following parameters. - -[options="autowidth"] -|=== -| Boost support | false -| `focusNodes` | Which node(s) is in focus for the topology -| `provider` | Which topology should be displayed, e.g., Linkd, VMware -| `szl` | Set the zoom level for the topology -|=== diff --git a/docs/modules/operation/pages/webui/opsboard/dashlet/url.adoc b/docs/modules/operation/pages/webui/opsboard/dashlet/url.adoc deleted file mode 100644 index 51ca19a42651..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/dashlet/url.adoc +++ /dev/null @@ -1,12 +0,0 @@ - -= URL - -This dashlet shows the content of a web page or other web application, e.g., other monitoring systems by a given URL. - -[options="autowidth"] -|=== -| Boost support | false -| `password` | Optional password if a basic authentication is required -| `url` | URL to the web application or web page -| `username` | Optional username if a basic authentication is required -|=== diff --git a/docs/modules/operation/pages/webui/opsboard/introduction.adoc b/docs/modules/operation/pages/webui/opsboard/introduction.adoc deleted file mode 100644 index 55399e052735..000000000000 --- a/docs/modules/operation/pages/webui/opsboard/introduction.adoc +++ /dev/null @@ -1,57 +0,0 @@ - -[[ops-board]] -= Operator Board - -In a network operation center (NOC) you can use the ops board to visualize monitoring information. -The monitoring information for various use-cases are arranged in configurable dashlets. -To address different user groups it is possible to create multiple ops boards. - -There are two visualisation components to display dashlets: - - * Ops Panel: Shows multiple dashlets on one screen, e.g., on a NOC operators workstation - * Ops Board: Shows one dashlet at a time in rotation, e.g., for a screen wall in a NOC - -.Concept of dashlets displayed in ps panel -image::webui/opsboard/01_opspanel-concept.png[] - -.Concept to show dashlets in rotation on the ops board -image::webui/opsboard/02_opsboard-concept.png[] - -== Configuration - -To create and configure ops boards administration permissions are required. -The configuration section is in admin area of {page-component-title} and named ops board Config Web Ui. - -.Navigation to the Ops Board configuration -image::webui/opsboard/03_admin-configure-opsboard.png[] - -Create or modify ops boards is described in the following screenshot. - -.Adding a Dashlet to an existing Ops Board -image::webui/opsboard/04_add-dashlet.png[] - - . Create a new ops board to organize and arrange different dashlets - . The name to identify the ops board - . Add a dashlet to show {page-component-title} monitoring information - . Show a preview of the whole ops board - . List of available dashlets - . Priority for this dashlet in ops board rotation, lower priority means it will be displayed more often - . Duration in seconds for this dashlet in the ops board rotation - . Change Priority if the dashlet is in alert state, this is optional and maybe not available in all dashlets - . Change Duration if the dashlet is in alert state, it is optional and maybe not available in all dashlets - . Configuration properties for this dashlet - . Remove this dashlet from the ops board - . Order dashlets for the rotation on the ops board and the tile view in the Ops Panel - . Show a preview for the whole ops board - -Use the configured ops board by navigating in the main menu to *Dashboard -> Ops Board*. - -.Navigation to use the Ops Board -image::webui/opsboard/05_opsboard-user.png[] - -== Dashlets - -Visualization of information is implemented in dashlets. -The different dashlets are described in this section with all available configuration parameter. - -To allow filter information, configure the dashlet with a generic <>. diff --git a/docs/modules/operation/pages/webui/trend/introduction.adoc b/docs/modules/operation/pages/webui/trend/introduction.adoc deleted file mode 100644 index cccb4c2ef869..000000000000 --- a/docs/modules/operation/pages/webui/trend/introduction.adoc +++ /dev/null @@ -1,157 +0,0 @@ - -= Trend - -The Trend feature lets you display small inline charts of database-based statistics. -These chart are accessible in the Status menu of the OpenNMS web application. -Furthermore it is also possible to configure these charts to be displayed on the OpenNMS landing page. -To achieve this alter the `org.opennms.web.console.centerUrl` property to also include the entry `/trend/trend-box.htm`. - -.Trend chart structure -image:webui/trend/trend-chart.png[] - -These charts can be configured and defined in the `trend-configuration.xml` file in your OpenNMS `etc` directory. -The following sample defines a Trend chart for displaying nodes with ongoing outages. - -.Sample Trend chart XML definition for displaying nodes with outages -[source, xml] ----- - - Nodes <1> - w/ Outages <2> - true <3> - fa-fire <4> - <5> - - - - - - - - - - - - - - outage/list.htm?outtype=current <6> - ${intValue[23]} NODES WITH OUTAGE(S) <7> - <8> - E) - ) from ( - select - now() - interval '1 hour' * (O + 1) AS S, - now() - interval '1 hour' * O as E - from - generateseries(0, 23) as O - ) I order by S; - ]]> - - ----- - -<1> title of the Trend chart, see below for supported variable substitutions -<2> subtitle of the Trend chart, see below for supported variable substitutions -<3> defines whether the chart is visible by default -<4> icon for the chart, see https://getbootstrap.com/docs/4.1/extend/icons/[Icons] for viable options -<5> options for inline chart, see http://omnipotent.net/jquery.sparkline/#common[jQuery Sparklines] for viable options -<6> the description link -<7> the description text, see below for supported variable substitutions -<8> the SQL statement for querying the chart's values - -IMPORTANT: Don't forget to limit the SQL query's return values! - -It is possible to use values or aggregated values in the title, subtitle and description fields. -The following table describes the available variable substitutions. - -.Variables usable in definition's title, subtitle and description fields -[options="header, autowidth" cols="1,3,1"] -|=== -| Name -| Description -| Type - -| $\{intmax} -| integer maximum value -| Integer - -| $\{doublemax} -| Double -| maximum value - -| $\{intmin} -| Integer -| integer minimum value - -| $\{doublemin} -| Double -| minimum value - -| $\{intavg} -| Integer -| integer average value - -| $\{doubleavg} -| Double -| average value - -| $\{intsum} -| Integer -| integer sum of values - -| $\{doublesum} -| Double -| sum of value - -| ${intValue[]} -| Integer -| array of integer result values for the given SQL query - -| {doubleValue[]} -| Double -| array of result values for the given SQL query - -| ${intValueChange[]} -| Integer -| array of integer value changes for the given SQL query - -| ${doubleValueChange[]} -| Double -| array of value changes for the given SQL query - -| $\{intlastvalue} -| Integer -| last integer value - -| $\{doublelastvalue} -| Double -| last value - -| $\{intlastvaluechange} -| Integer -| last integer value change - -| $\{doublelastvaluechange} -| Double -| last value change -|=== - -You can also display a single graph in your JSP files by including the file `/trend/single-trend-box.jsp` and specifying the `name` parameter. - -.Sample JSP snippet to include a single Trend chart with name 'example' -[source,XML] ----- - - - ----- diff --git a/docs/modules/reference/nav.adoc b/docs/modules/reference/nav.adoc index c99cd919d719..88211fdc8968 100644 --- a/docs/modules/reference/nav.adoc +++ b/docs/modules/reference/nav.adoc @@ -1,13 +1,5 @@ .Reference * Configuration -** xref:configuration/daemon-config-files/introduction.adoc[] -*** xref:configuration/daemon-config-files/eventd.adoc[] -*** xref:configuration/daemon-config-files/notifd.adoc[] -*** xref:configuration/daemon-config-files/pollerd.adoc[] -*** xref:configuration/daemon-config-files/snmppoller.adoc[] -*** xref:configuration/daemon-config-files/syslogd.adoc[] -*** xref:configuration/daemon-config-files/trapd.adoc[] - ** xref:configuration/filters/filters.adoc[] *** xref:configuration/filters/components.adoc[] *** xref:configuration/filters/parameters.adoc[] @@ -21,7 +13,6 @@ ** xref:configuration/tuning-kafka.adoc[] ** xref:configuration/tuning-activemq.adoc[] ** xref:configuration/ttl-rpc.adoc[] -** xref:configuration/aws-sqs.adoc[] * xref:configuration/performance-data-collection/introduction.adoc[] ** xref:configuration/performance-data-collection/collectors/http.adoc[] ** xref:configuration/performance-data-collection/collectors/jdbc.adoc[] @@ -90,10 +81,6 @@ ** xref:service-assurance/monitors/Win32ServiceMonitor.adoc[] ** xref:service-assurance/monitors/WsManMonitor.adoc[] ** xref:service-assurance/monitors/XmpMonitor.adoc[] -** xref:configuration/ticketing/introduction.adoc[] -*** xref:configuration/ticketing/ticketer/jira.adoc[] -*** xref:configuration/ticketing/ticketer/remedy.adoc[] -*** xref:configuration/ticketing/ticketer/tsrm.adoc[] * xref:telemetryd/introduction.adoc[] ** xref:telemetryd/listeners/introduction.adoc[] *** xref:telemetryd/listeners/tcp.adoc[] @@ -108,9 +95,14 @@ *** xref:telemetryd/protocols/netflow9.adoc[] *** xref:telemetryd/protocols/openconfig.adoc[] *** xref:telemetryd/protocols/sflow.adoc[] +* xref:configuration/ticketing/introduction.adoc[] +** xref:configuration/ticketing/ticketer/jira.adoc[] +** xref:configuration/ticketing/ticketer/remedy.adoc[] +** xref:configuration/ticketing/ticketer/tsrm.adoc[] * Provisioning ** xref:provisioning/adapters/introduction.adoc[] *** xref:provisioning/adapters/ddns.adoc[] +*** xref:provisioning/adapters/geoip.adoc[] *** xref:provisioning/adapters/hardware-inventory.adoc[] *** xref:provisioning/adapters/rdns.adoc[] *** xref:provisioning/adapters/snmp-asset.adoc[] @@ -143,4 +135,14 @@ *** xref:configuration/provisioning/detectors/WmiDetector.adoc[WMI] *** xref:configuration/provisioning/detectors/WsmanDetector.adoc[WS-MAN] *** xref:configuration/provisioning/detectors/WsmanWqlDetector.adoc[WS-MAN WQL] +* xref:daemons/introduction.adoc[] +** xref:daemons/daemon-config-files/alarmd.adoc[] +** xref:daemons/daemon-config-files/collectd.adoc[] +** xref:daemons/daemon-config-files/discovery.adoc[] +** xref:daemons/daemon-config-files/eventd.adoc[] +** xref:daemons/daemon-config-files/notifd.adoc[] +** xref:daemons/daemon-config-files/pollerd.adoc[] +** xref:daemons/daemon-config-files/snmp-interface-poller.adoc[] +** xref:daemons/daemon-config-files/syslogd.adoc[] +** xref:daemons/daemon-config-files/trapd.adoc[] * xref:glossary.adoc[] diff --git a/docs/modules/reference/pages/configuration/aws-sqs.adoc b/docs/modules/reference/pages/configuration/aws-sqs.adoc deleted file mode 100644 index 7c232ea1a37e..000000000000 --- a/docs/modules/reference/pages/configuration/aws-sqs.adoc +++ /dev/null @@ -1,90 +0,0 @@ -= Amazon Simple Queue Service - -From the link:http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html[Amazon SQS Documentation], the following tables list parameters which can be added to either Minion (via `$\{MINION_HOME}/etc/org.opennms.core.ipc.aws.sqs.cfg`) or _{page-component-title}_ (via `$\{OPENNMS_HOME}/etc/opennms.properties.d/aws-sqs.properties`), along with the correct syntax for each environment. - -== Sink Settings - -Queues used for reception of unsolicited messages (e.g. SNMP traps, syslog messages) are configured by setting properties with `sink` prepended to the SQS parameter name: - -[options="header"] -|==== -| Parameter | Notes | _{page-component-title}_ | Minion -| `DelaySeconds` | Default: 0 seconds | `org.opennms.core.ipc.aws.sqs.sink.DelaySeconds` | `sink.DelaySeconds` -| `MaximumMessageSize` | Default: 262144 bytes | `org.opennms.core.ipc.aws.sqs.sink.MaximumMessageSize` | `sink.MaximumMessageSize` -| `MessageRetentionPeriod` | Default: 1209600 seconds | `org.opennms.core.ipc.aws.sqs.sink.MessageRetentionPeriod` | `sink.MessageRetentionPeriod` -| `ReceiveMessageWaitTimeSeconds`| Default: 10 seconds (for OpenNMS) | `org.opennms.core.ipc.aws.sqs.sink.ReceiveMessageWaitTimeSeconds` | `sink.ReceiveMessageWaitTimeSeconds` -| `VisibilityTimeout` | Default: 30 seconds | `org.opennms.core.ipc.aws.sqs.sink.VisibilityTimeout` | `sink.VisibilityTimeout` -| `Policy` | - | `org.opennms.core.ipc.aws.sqs.sink.Policy` | `sink.Policy` -| `RedrivePolicy` | - | `org.opennms.core.ipc.aws.sqs.sink.RedrivePolicy` | `sink.RedrivePolicy` -| `KmsMasterKeyId` | - | `org.opennms.core.ipc.aws.sqs.sink.KmsMasterKeyId` | `sink.KmsMasterKeyId` -| `KmsDataKeyReusePeriodSeconds` | - | `org.opennms.core.ipc.aws.sqs.sink.KmsDataKeyReusePeriodSeconds` | `sink.KmsDataKeyReusePeriodSeconds` -| `FifoQueue` | Default: false | `org.opennms.core.ipc.aws.sqs.sink.FifoQueue` | `sink.FifoQueue` -| `ContentBasedDeduplication` | Valid only when `sink.FifoQueue` is `true` | `org.opennms.core.ipc.aws.sqs.sink.ContentBasedDeduplication` |`sink.ContentBasedDeduplication` -|==== - -== RPC Settings - -Queues used for provisioning, service polling, data collection, and other concerns apart from unsolicited message reception are configured by setting properties with `rpc` prepended to the SQS parameter name: - -[options="header"] -|==== -| Parameter | Notes | _{page-component-title}_ | Minion -| `DelaySeconds` | Default: 0 seconds | `org.opennms.core.ipc.aws.sqs.rpc.DelaySeconds` | `rpc.DelaySeconds` -| `MaximumMessageSize` | Default: 262144 bytes | `org.opennms.core.ipc.aws.sqs.rpc.MaximumMessageSize` | `rpc.MaximumMessageSize` -| `MessageRetentionPeriod` | Default: 1209600 seconds | `org.opennms.core.ipc.aws.sqs.rpc.MessageRetentionPeriod` | `rpc.MessageRetentionPeriod` -| `ReceiveMessageWaitTimeSeconds` | Default: 10 seconds (for OpenNMS) | `org.opennms.core.ipc.aws.sqs.rpc.ReceiveMessageWaitTimeSeconds` | `rpc.ReceiveMessageWaitTimeSeconds` -| `VisibilityTimeout` | Default: 30 seconds | `org.opennms.core.ipc.aws.sqs.rpc.VisibilityTimeout` | `rpc.VisibilityTimeout` -| `Policy` | - | `org.opennms.core.ipc.aws.sqs.rpc.Policy` | `rpc.Policy` -| `RedrivePolicy` | - | `org.opennms.core.ipc.aws.sqs.rpc.RedrivePolicy` | `rpc.RedrivePolicy` -| `KmsMasterKeyId` | - | `org.opennms.core.ipc.aws.sqs.rpc.KmsMasterKeyId` | `rpc.KmsMasterKeyId` -| `KmsDataKeyReusePeriodSeconds` | - | `org.opennms.core.ipc.aws.sqs.rpc.KmsDataKeyReusePeriodSeconds` | `rpc.KmsDataKeyReusePeriodSeconds` -| `FifoQueue` | Default: false | `org.opennms.core.ipc.aws.sqs.rpc.FifoQueue` | `rpc.FifoQueue` -| `ContentBasedDeduplication` | Valid only when `rpc.FifoQueue` is `true` | `org.opennms.core.ipc.aws.sqs.rpc.ContentBasedDeduplication` |`rpc.ContentBasedDeduplication` -|==== - -NOTE: When FIFO queues are not required, there is no need to add `FifoQueue=false` to the configuration files, as this is the default behavior. - -== Managing Multiple Environments - -In order to support multiple _{page-component-title}_ environments in a single AWS region, the `aws_queue_name_prefix` property can be used to prefix the queue names. - -For example, if we set this property to be "PROD", the queue names will resemble `PROD-OpenNMS-Sink-Heartbeat`, instead of `OpenNMS-Sink-Heartbeat`. - -WARNING: This property must be properly configured at _{page-component-title}_ and Minion side. - -== AWS Credentials - -The credentials (a.k.a. the Access Key ID and the Secret Access Key) are required in both sides, OpenNMS and Minion. - -In order to create credentials just for accessing SQS resources, follow this procedure: - -* From the AWS Console, choose the appropriate region. -* Open the IAM Dashboard and click on "Add user". -* Choose a name for the user, for example `opennms-minion`. -* Check only `Programmatic access` for the Access type. -* On the permissions, click on `Attach existing policies directly`. -* On the search bar, write SQS, and then check on `AmazonSQSFullAccess`. -* Click on Create User - -image::configuration/aws-minion-user.png[] - -Finally, either click on Download .csv or click on "Show" to grab a copy of the Access key ID, and the Secret access key. - -== Limitations - -There are a number of limitations when using _AWS SQS_, in particular: - -* A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed: `#x9` | `#xA` | `#xD` | `#x20` to `#xD7FF` | `#xE000` to `#xFFFD` | `#x10000` to `#x10FFFF`. Any characters not included in this list are rejected. -* The minimum message size is 1 byte (1 character). The maximum is 262,144 bytes (256 KB). -* Without batching, FIFO queues can support up to 300 messages per second (300 send, receive, or delete operations per second). - -See link:http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html[Amazon SQS Limits] for further details. - -== Location names - -Queue names in _AWS SQS_ are limited to 80 characters. -When issuing remote procedure calls, the target location is used a part of the queue name. -For this reason, it is important that: - -* The length of the location name and queue name prefix (if used) must not exceed 32 characters in aggregate. -* Both the location name and queue name prefix (if used) may only contain alphanumeric characters, hyphens (-), and underscores (_). diff --git a/docs/modules/reference/pages/configuration/daemon-config-files/eventd.adoc b/docs/modules/reference/pages/configuration/daemon-config-files/eventd.adoc deleted file mode 100644 index ece2381d10d4..000000000000 --- a/docs/modules/reference/pages/configuration/daemon-config-files/eventd.adoc +++ /dev/null @@ -1,35 +0,0 @@ - -[[ga-opennms-operation-daemon-config-files-eventd]] -= Eventd - -[options="header"] -[cols="1,3"] -|=== -| Internal Daemon Name | Reload Event -| Eventd | `uei.opennms.org/internal/reloadDaemonConfig -p 'daemonName Eventd'` -|=== - -.Eventd configuration file overview -[options="header"] -[cols="2,3,1,1"] -|=== -| File -| Description -| Restart Required -| Reload Event - -| eventd-configuration.xml -| Configure generic behavior of Eventd; for example, TCP and UDP port numbers with IP addresses to listen for events and socket timeouts. -| yes -| no - -| eventconf.xml -| Main configuration file for Eventd. -| no -| yes - -| events/* -| Out-of-the-box, all files in this folder are included via `include` directives in `eventconf.xml`. -| no -| yes -|=== \ No newline at end of file diff --git a/docs/modules/reference/pages/configuration/daemon-config-files/introduction.adoc b/docs/modules/reference/pages/configuration/daemon-config-files/introduction.adoc deleted file mode 100644 index fb299a25fe58..000000000000 --- a/docs/modules/reference/pages/configuration/daemon-config-files/introduction.adoc +++ /dev/null @@ -1,6 +0,0 @@ - -= Daemon Configuration Files - -Configuration changes require a restart of OpenNMS. -Some daemons can reload configuration changes triggered by a daemon reload event. -This section provides an overview of all daemons, their related configuration files, and which daemons you can reload without restarting OpenNMS. \ No newline at end of file diff --git a/docs/modules/reference/pages/configuration/daemon-config-files/notifd.adoc b/docs/modules/reference/pages/configuration/daemon-config-files/notifd.adoc deleted file mode 100644 index 718c2387b121..000000000000 --- a/docs/modules/reference/pages/configuration/daemon-config-files/notifd.adoc +++ /dev/null @@ -1,55 +0,0 @@ - -[[ga-opennms-operation-daemon-config-files-notifd]] -= Notifd - -[options="header"] -[cols="1,3"] -|=== -| Internal Daemon Name | Reload Event -| Notifd | `uei.opennms.org/internal/reloadDaemonConfig -p 'daemonName Notifd'` -|=== - -.Notifd configuration file overview -[options="header"] -[cols="2,3,1,1"] -|=== -| File -| Description -| Restart Required -| Reload Event - -| notifd-configuration.xml -| Describes auto-acknowledge prefix; for example, prefix "RESOLVED: " for nodeUp/nodeDown events. -| no -| yes - -| notificationCommands.xml -| Configuration for notification media; for example, scripts, XMPP, or HTTP Post, immediately applied. -| no -| no - -| notifications.xml -| Event notification definitions and changes are immediately applied. -| no -| no - -| destinationPaths.xml -| Contains paths for notification targets; for example, JavaMail, XMPP, or external scripts. -| no -| no - -| users.xml -| Contains pager and address information for notification destination paths. -| no -| no - -| groups.xml -| Use groups as target for notifications. -| no -| no - -| javamail-configuration.properties -| Configuration to send notification mails via specific mail servers. -| no -| no -|=== diff --git a/docs/modules/reference/pages/configuration/daemon-config-files/pollerd.adoc b/docs/modules/reference/pages/configuration/daemon-config-files/pollerd.adoc deleted file mode 100644 index 24ae238c148f..000000000000 --- a/docs/modules/reference/pages/configuration/daemon-config-files/pollerd.adoc +++ /dev/null @@ -1,36 +0,0 @@ - -[[ga-opennms-operation-daemon-config-files-pollerd]] -= Pollerd - -[options="header"] -[cols="1,3"] -|=== -| Internal Daemon Name | Reload Event -| Pollerd | `uei.opennms.org/internal/reloadDaemonConfig -p 'daemonName Pollerd'` -|=== - -.Pollerd configuration file overview -[options="header"] -[cols="2,3,1,1"] -|=== -| File -| Description -| Restart Required -| Reload Event - -| poller-configuration.xml -| Restart is required in case new monitors are created or removed. -Reload event loads changed configuration parameters of existing monitors. -| yes -| yes - -| response-graph.properties -| Graph definition for response time graphs from monitors. -| no -| no - -| poll-outages.xml -| Can be reloaded with `uei.opennms.org/internal/schedOutagesChanged`. -| no -| yes -|=== diff --git a/docs/modules/reference/pages/configuration/daemon-config-files/snmppoller.adoc b/docs/modules/reference/pages/configuration/daemon-config-files/snmppoller.adoc deleted file mode 100644 index ea3cd94916f3..000000000000 --- a/docs/modules/reference/pages/configuration/daemon-config-files/snmppoller.adoc +++ /dev/null @@ -1,25 +0,0 @@ - -[[ga-opennms-operation-daemon-config-files-snmppoller]] -= SNMP Interface Poller - -[options="header"] -[cols="1,3"] -|=== -| Internal Daemon Name | Reload Event -| SnmpPoller | `uei.opennms.org/internal/reloadSnmpPollerConfig` -|=== - -.SNMP Interface Poller configuration file overview -[options="header"] -[cols="2,3,1,1"] -|=== -| File -| Description -| Restart Required -| Reload Event - -| snmp-interface-poller-configuration.xml -| Change how and when polling is performed globally or define fine-grained settings for specific packages. -| no -| yes -|=== diff --git a/docs/modules/reference/pages/configuration/daemon-config-files/syslogd.adoc b/docs/modules/reference/pages/configuration/daemon-config-files/syslogd.adoc deleted file mode 100644 index 03e9b219c009..000000000000 --- a/docs/modules/reference/pages/configuration/daemon-config-files/syslogd.adoc +++ /dev/null @@ -1,21 +0,0 @@ - - -[[ga-opennms-operation-daemon-config-files-syslogd]] -= Syslogd - -[options="header, autowidth"] -|=== -| Internal Daemon Name | Reload Event -| Syslogd | `uei.opennms.org/internal/reloadDaemonConfig -p 'daemonName Syslogd'` -|=== - -Syslogd reload event stops and starts daemon and loads all the syslogd configuration changes. - -Reload the Syslog daemon with following shell command on Karaf: - -[source] ----- -$ ssh -p 8101 admin@localhost -... -admin@opennms> opennms:reload-daemon syslogd ----- diff --git a/docs/modules/reference/pages/configuration/daemon-config-files/trapd.adoc b/docs/modules/reference/pages/configuration/daemon-config-files/trapd.adoc deleted file mode 100644 index 67b74eb29382..000000000000 --- a/docs/modules/reference/pages/configuration/daemon-config-files/trapd.adoc +++ /dev/null @@ -1,20 +0,0 @@ - -[[ga-opennms-operation-daemon-config-files-trapd]] -= Trapd - -[options="header, autowidth"] -|=== -| Internal Daemon Name | Reload Event -| Trapd | `uei.opennms.org/internal/reloadDaemonConfig -p 'daemonName Trapd'` -|=== - -Trapd reload event stops and starts daemon and loads all the trapd configuration changes. - -You can also reload the Trapd daemon with following shell command on Karaf: - -[source] ----- -$ ssh -p 8101 admin@localhost -... -admin@opennms> opennms:reload-daemon trapd ----- diff --git a/docs/modules/reference/pages/configuration/minion-confd/minion-confd.adoc b/docs/modules/reference/pages/configuration/minion-confd/minion-confd.adoc index aff3327fdf04..a8dafcd4e5fc 100644 --- a/docs/modules/reference/pages/configuration/minion-confd/minion-confd.adoc +++ b/docs/modules/reference/pages/configuration/minion-confd/minion-confd.adoc @@ -31,24 +31,6 @@ org.opennms.instance.id: "" ``` Writes specified configuration to `etc/instance-id.properties`. -=== AWS SQS -```yaml -aws: - aws_region: "us-east-1" - aws_access_key_id: "XXXXXXXXXXX" - aws_secret_access_key: "XXXXXXXXXXX" - -ipc: - sqs: - sink.DelaySeconds: 0 - sink.MaximumMessageSize: 262144 - sink.FifoQueue: true - rpc.DelaySeconds: 0 - rpc.MaximumMessagesize: 262144 - # Any other keys necessary can be specified here -``` -Writes specified configuration to `etc/org.opennms.core.ipc.aws.sqs.cfg`. - === Kafka RPC ```yaml ipc: diff --git a/docs/modules/reference/pages/configuration/performance-data-collection/collectors/http.adoc b/docs/modules/reference/pages/configuration/performance-data-collection/collectors/http.adoc index 96142281b441..60028b262cf2 100644 --- a/docs/modules/reference/pages/configuration/performance-data-collection/collectors/http.adoc +++ b/docs/modules/reference/pages/configuration/performance-data-collection/collectors/http.adoc @@ -50,7 +50,7 @@ Attributes are extracted from the HTTP responses using a regular expression. | use-system-proxy | Should the system-wide proxy settings be used? Configure system proxy settings -via <>. +via <>. | false |=== diff --git a/docs/modules/reference/pages/configuration/performance-data-collection/collectors/tca.adoc b/docs/modules/reference/pages/configuration/performance-data-collection/collectors/tca.adoc index 72bb98af0ce7..d9de8ad6e605 100644 --- a/docs/modules/reference/pages/configuration/performance-data-collection/collectors/tca.adoc +++ b/docs/modules/reference/pages/configuration/performance-data-collection/collectors/tca.adoc @@ -9,7 +9,7 @@ The TcaCollector collects special SNMP data from Juniper TCA devices. |=== | Class Name | `org.opennms.netmgt.collectd.tca.TcaCollector` | Package | opennms-plugin-collector-juniper-tca -| Supported on Minion | Yes +| Supported on Minion | `Yes` | Configuration Files | $OPENNMS_HOME/etc/tca-datacollection-config.xml |=== diff --git a/docs/modules/reference/pages/configuration/performance-data-collection/collectors/xml.adoc b/docs/modules/reference/pages/configuration/performance-data-collection/collectors/xml.adoc index a3eb7c04316c..96b57bd29b5a 100644 --- a/docs/modules/reference/pages/configuration/performance-data-collection/collectors/xml.adoc +++ b/docs/modules/reference/pages/configuration/performance-data-collection/collectors/xml.adoc @@ -99,8 +99,8 @@ The request element can have the following optional child elements: | 0 | use-system-proxy -| Should the system-wide proxy settings be used? -Configure the system proxy settings via <>. +| Should the system-wide proxy settings be used? +Configure the system proxy settings via <>. | false |=== diff --git a/docs/modules/reference/pages/configuration/sentinel-features.adoc b/docs/modules/reference/pages/configuration/sentinel-features.adoc index cf311418a15b..c52a4cb8b746 100644 --- a/docs/modules/reference/pages/configuration/sentinel-features.adoc +++ b/docs/modules/reference/pages/configuration/sentinel-features.adoc @@ -63,31 +63,31 @@ To automatically start features with the container, the file `$\{SENTINEL_HOME}/ featuresBoot = \ (aries-blueprint, \ deployer), \ - instance/4.2.2, \ - package/4.2.2, \ - log/4.2.2, \ - scv/28.1.1, \ - ssh/4.2.2, \ - framework/4.2.2, \ - system/4.2.2, \ - eventadmin/4.2.2, \ - feature/4.2.2, \ - shell/4.2.2, \ - management/4.2.2, \ - service/4.2.2, \ - system/4.2.2, \ - eventadmin/4.2.2, \ - feature/4.2.2, \ - shell/4.2.2, \ - management/4.2.2, \ - service/4.2.2, \ - jaas/4.2.2, \ - shell-compat/4.2.2, \ - diagnostic/4.2.2, \ + instance/4.3.2, \ + package/4.3.2, \ + log/4.3.2, \ + scv/{page-component-version}, \ + ssh/4.3.2, \ + framework/4.3.2, \ + system/4.3.2, \ + eventadmin/4.3.2, \ + feature/4.3.2, \ + shell/4.3.2, \ + management/4.3.2, \ + service/4.3.2, \ + system/4.3.2, \ + eventadmin/4.3.2, \ + feature/4.3.2, \ + shell/4.3.2, \ + management/4.3.2, \ + service/4.3.2, \ + jaas/4.3.2, \ + shell-compat/4.3.2, \ + diagnostic/4.3.2, \ wrap, \ - bundle/4.2.2, \ - config/4.2.2, \ - kar/4.2.2, \ + bundle/4.3.2, \ + config/4.3.2, \ + kar/4.3.2, \ sentinel-jms, \ <1> sentinel-flows <2> diff --git a/docs/modules/reference/pages/daemons/daemon-config-files/alarmd.adoc b/docs/modules/reference/pages/daemons/daemon-config-files/alarmd.adoc new file mode 100644 index 000000000000..5a928aa22914 --- /dev/null +++ b/docs/modules/reference/pages/daemons/daemon-config-files/alarmd.adoc @@ -0,0 +1,17 @@ +[[ref-daemon-config-files-alarmd]] += Alarmd + +.Alarmd configuration file overview +[options="header"] +[cols="2,1,1,3"] +|=== +| File +| Description +| Restart Required +| Reload Event + +| $\{OPENNMS_HOME}/etc/alarmd/drools-rules.d +| Configure specific Drools rules. +| no +| yes +|=== diff --git a/docs/modules/reference/pages/daemons/daemon-config-files/collectd.adoc b/docs/modules/reference/pages/daemons/daemon-config-files/collectd.adoc new file mode 100644 index 000000000000..a0223aa552a6 --- /dev/null +++ b/docs/modules/reference/pages/daemons/daemon-config-files/collectd.adoc @@ -0,0 +1,33 @@ +[[ref-daemon-config-files-collectd]] += Collectd + +.Collectd configuration file overview +[options="header"] +[cols="2,1,1,3"] +|=== +| File +| Description +| Reload Event +| Restart Required + +| collectd-configuration.xml +| This file defines which collections are being collected and assigned to which nodes. + A reload command changed configuration parameters of existing monitors. +| yes +| yes + +| jdbc-datacollection-config.xml +| Defines JDBC data collections. Attributes are retrieved using SQL queries. +| no +| yes + +| http-datacollection-config.xml +| Defines HTTP data collections. Attributes are extracted from the HTTP responses using a regular expression. +| no +| yes + +| xml-datacollection-config.xml +| Defines data collections that can be extracted from XML or JSON documents. +| no +| yes +|=== diff --git a/docs/modules/reference/pages/daemons/daemon-config-files/discovery.adoc b/docs/modules/reference/pages/daemons/daemon-config-files/discovery.adoc new file mode 100644 index 000000000000..8de4e4000b75 --- /dev/null +++ b/docs/modules/reference/pages/daemons/daemon-config-files/discovery.adoc @@ -0,0 +1,17 @@ +[[ref-daemon-config-files-discovery]] += Discovery + +.Discovery configuration file overview +[options="header"] +[cols="2,1,1,3"] +|=== +| File +| Description +| Reload Event +| Restart Required + +| discovery-configuration.xml +| Configure generic behavior of Discovery; for example, scan ranges, retry or timeouts, SNMP communities. +| yes +| no +|=== diff --git a/docs/modules/reference/pages/daemons/daemon-config-files/eventd.adoc b/docs/modules/reference/pages/daemons/daemon-config-files/eventd.adoc new file mode 100644 index 000000000000..01dbcd7ca127 --- /dev/null +++ b/docs/modules/reference/pages/daemons/daemon-config-files/eventd.adoc @@ -0,0 +1,27 @@ +[[ref-daemon-config-files-eventd]] += Eventd + +.Eventd configuration file overview +[options="header"] +[cols="2,1,1,3"] +|=== +| File +| Description +| Reload Event +| Restart Required + +| eventd-configuration.xml +| Configure generic behavior of Eventd; for example, TCP and UDP port numbers with IP addresses to listen for events and socket timeouts. +| no +| yes + +| eventconf.xml +| Main configuration file for Eventd. +| yes +| no + +| events/* +| Out-of-the-box, all files in this folder are included via `include` directives in `eventconf.xml`. +| yes +| no +|=== diff --git a/docs/modules/reference/pages/daemons/daemon-config-files/notifd.adoc b/docs/modules/reference/pages/daemons/daemon-config-files/notifd.adoc new file mode 100644 index 000000000000..03f71e7c4ffd --- /dev/null +++ b/docs/modules/reference/pages/daemons/daemon-config-files/notifd.adoc @@ -0,0 +1,47 @@ +[[ref-daemon-config-files-notifd]] += Notifd + +.Notifd configuration file overview +[options="header"] +[cols="2,1,1,3"] +|=== +| File +| Description +| Reload Event +| Restart Required + +| notifd-configuration.xml +| Describes auto-acknowledge prefix; for example, prefix "RESOLVED: " for nodeUp/nodeDown events. +| yes +| no + +| notificationCommands.xml +| Configuration for notification media; for example, scripts, XMPP, or HTTP Post, immediately applied. +| no +| no + +| notifications.xml +| Event notification definitions and changes are immediately applied. +| no +| no + +| destinationPaths.xml +| Contains paths for notification targets; for example, JavaMail, XMPP, or external scripts. +| no +| no + +| users.xml +| Contain pager and address information for notification destination paths. +| no +| no + +| groups.xml +| Groups can be used as target for notifications. +| no +| no + +| javamail-configuration.properties +| Configuration to send notification mails via specific mail servers. +| no +| no +|=== diff --git a/docs/modules/reference/pages/daemons/daemon-config-files/pollerd.adoc b/docs/modules/reference/pages/daemons/daemon-config-files/pollerd.adoc new file mode 100644 index 000000000000..9bb8101fe59b --- /dev/null +++ b/docs/modules/reference/pages/daemons/daemon-config-files/pollerd.adoc @@ -0,0 +1,28 @@ +[[ref-daemon-config-files-pollerd]] += Pollerd + +.Pollerd configuration file overview +[options="header"] +[cols="2,1,1,3"] +|=== +| File +| Description +| Reload Event +| Restart Required + +| poller-configuration.xml +| Contains service monitor configurations that are used for service availability checks. Restart is required in case new monitors are created or removed. +Reload event loads changed configuration parameters of existing monitors. +| yes +| yes + +| response-graph.properties +| Graph definition for response time graphs from monitors +| no +| no + +| poll-outages.xm +| Can reload with `uei.opennms.org/internal/schedOutagesChanged`. +| yes +| no +|=== diff --git a/docs/modules/reference/pages/daemons/daemon-config-files/snmp-interface-poller.adoc b/docs/modules/reference/pages/daemons/daemon-config-files/snmp-interface-poller.adoc new file mode 100644 index 000000000000..1816d5319217 --- /dev/null +++ b/docs/modules/reference/pages/daemons/daemon-config-files/snmp-interface-poller.adoc @@ -0,0 +1,34 @@ +[[ref-daemon-config-files-snmppoller]] += SNMP Interface Poller + +[options="header"] +[cols="1,3"] +|=== +| Internal Daemon Name +| Reload Event + +| SnmpPoller +| `uei.opennms.org/internal/reloadSnmpPollerConfig` +|=== + +.SNMP Interface Poller configuration file overview +[options="header"] +[cols="2,1,1,3"] +|=== +| File +| Restart Required +| Reload Event +| Description + +| snmp-interface-poller-configuration.xml +| Change how and when polling is performed globally or define fine-grained settings for specific packages. +| yes +| no +|=== + +.Example reload command +[source, console] +---- +cd $\{OPENNMS_HOME}/bin +./send-event.pl uei.opennms.org/internal/reloadSnmpPollerConfig +---- \ No newline at end of file diff --git a/docs/modules/reference/pages/daemons/daemon-config-files/syslogd.adoc b/docs/modules/reference/pages/daemons/daemon-config-files/syslogd.adoc new file mode 100644 index 000000000000..bf0afb56fd39 --- /dev/null +++ b/docs/modules/reference/pages/daemons/daemon-config-files/syslogd.adoc @@ -0,0 +1,18 @@ + +[[ref-daemon-config-files-syslogd]] += Syslogd + +.Syslogd configuration file overview +[options="header"] +[cols="2,1,1,3"] +|=== +| File +| Description +| Reload Event +| Restart Required + +| syslogd-configuration.xml +| Configure generic behavior of Syslogd; for example, port numbers or matching behavior. +| yes +| no +|=== diff --git a/docs/modules/reference/pages/daemons/daemon-config-files/trapd.adoc b/docs/modules/reference/pages/daemons/daemon-config-files/trapd.adoc new file mode 100644 index 000000000000..523b96d23b28 --- /dev/null +++ b/docs/modules/reference/pages/daemons/daemon-config-files/trapd.adoc @@ -0,0 +1,18 @@ + +[[ref-daemon-config-files-trapd]] += Trapd + +.Trapd configuration file overview +[options="header"] +[cols="2,1,1,3"] +|=== +| File +| Description +| Reload Event +| Restart Required + +| trapd-configuration.xml +| Configure generic behavior of Trapd; for example, port numbers with IP addresses to listen for traps. +| yes +| no +|=== diff --git a/docs/modules/reference/pages/daemons/introduction.adoc b/docs/modules/reference/pages/daemons/introduction.adoc new file mode 100644 index 000000000000..b300fe7f1bbd --- /dev/null +++ b/docs/modules/reference/pages/daemons/introduction.adoc @@ -0,0 +1,41 @@ +[[ref-daemons]] += Daemons + +[options="header"] +[cols="1,3"] +|=== +| Name | Description +| Ackd | Acknowledge daemon is responsible for alarm acknowledgment. +| Actiond | +| Alarmd | Alarm daemon handles the alarm workflows. +| AsteriskGateway | +| Bsmd | +| Collectd | Collect daemon is responsible for collecting data from nodes. +| Correlator | +| Discovery | The Discovery daemon provides network discovery functions to scan once or regularly for nodes that should be added into the OpenNMS database. +| EnhancedLinkd | Enhanced link daemon (Enlinkd) discovers connections between nodes using data generated by various link discovery protocols and accessible via SNMP. +| EventTranslator | The Event Translator (ET) can transform and enhance the data from OpenNMS events that other daemons generate. +| Eventd | +| JettyServer | The Jetty server provides the web user interface of OpenNMS. +| KarafStartupMonitor | +| Manager | +| Notifd | Notification daemon can send notifications to other systems based on event UEIs. +| PassiveStatusd | +| Pollerd | Poller daemon is responsible for the service availability monitoring. +| Provisiond | The provision daemon handles the node import and service detection processes. +| Queued | +| Reportd | Report daemon is used to generate reports. +| Rtcd | +| Scriptd | Scriptd allows the user to configure Bean Shell script to run in response to events. +| SnmpPoller | +| Statsd | +| Syslogd | A syslog daemon that allows retrieval and parsing of syslog messages to generate events. +| Telemetryd | The Telemetry daemon collects sensor data sent from nodes to {page-component-title}. +| TestLoadLibraries | +| Ticketer | The ticketing integration lets Horizon create trouble tickets in external systems. +| Tl1d | +| Trapd | Trap daemon provides an SNMP server that accepts SNMP traps that can be converted to events. +| Vacuumd | Vacuum daemon takes care of cleaning processes in the PostgreSQL database. +|=== + + diff --git a/docs/modules/reference/pages/glossary.adoc b/docs/modules/reference/pages/glossary.adoc index 308c8a023dc1..eebb4b715ac2 100644 --- a/docs/modules/reference/pages/glossary.adoc +++ b/docs/modules/reference/pages/glossary.adoc @@ -1,11 +1,88 @@ [[glossary]] +[glossary] = Glossary -[options="header,footer"] -[cols="15h,~"] -|=== -| Term | Definition -| Discovery | A process to find network devices and services in your network and add them to monitoring automatically. - To identify a device the protocol ICMP is used. -| Provisioning | The process of getting your devices, applications and services into monitoring. -|=== \ No newline at end of file +[glossary] +ActiveMQ:: Java-based open-source message broker supported by the Apache community. +(See xref:deployment:core/setup-message-broker.adoc#setup-message-broker[Set Up Message Broker].) + +ALEC:: The Architecture for Learning Enabled Correlation (ALEC) is an OpenNMS framework that uses artificial intelligence and machine learning to provide alarm triage. +ALEC groups related alarms so you can better manage the more complex situations they might represent. + +Application Perspective Monitoring (APM):: A method that uses the Minion infrastructure to monitor a service’s availability from different perspectives to help identify if nodes are down for everyone or if an outage affects only certain sites. When a service is not responsive an outage will be generated with the corresponding perspective that sees the outage. +(See xref:operation:application-perspective-monitoring/application-perspective-monitoring.adoc#application-perspective[Application Perspective Monitoring].) + +Cassandra:: Open-source distributed/scale-out NoSQL database designed to hold large amounts of structured or unstructured data across many servers. +(See xref:deployment:time-series-storage/newts/introduction.adoc#ga-opennms-operation-newts[Newts].) + +Discovery:: A process that uses ICMP to find network devices and services in your network and then automatically adds them to monitoring. +(See xref:operation:provisioning/introduction.adoc#discovery-auto[Provisioning].) + +Dominion:: The service on an OpenNMS core that controls the operation of Minions. +(See xref:reference:configuration/minion-confd/minion-confd.adoc#dominion [Configuring Minion via Confd].) + +Elasticsearch:: Elasticsearch is a search engine based on the Lucene library. OpenNMS persists/forwards certain data to Elasticsearch to store flow records and warehouse events and alarm history for long-term storage of this data. +(See xref:operation:elasticsearch/introduction.adoc#elasticsearch[Elasticsearch Integration].) + +Helm:: Helm is an an OpenNMS application for creating flexible dashboards to display and customize fault management and performance management data from Horizon and Meridian. +Helm works with the Grafana analytics program to customize the data you can view. + +Horizon:: Open-source solution from OpenNMS that helps users visualize and monitor everything on their local and remote networks. +Free, community-driven project includes the latest technology and features delivered through a rapid release cycle. + +IFTTT:: If This Then That (https://ifttt.com/[IFTTT]) service integrates apps, devices, and services. Horizon and Meridian can integrate with IFTTT to trigger actions on other services based on customized alarms. +(See xref:operation:alarms/ifttt-integration.adoc#ifttt[IFTTT Integration].) + +JRobin:: JRobin is a clone of RRDTool (see below) written in Java. +Default time series database for new {page-component-title} instances. + +Kafka:: Clusterable, open-source message broker designed for high-throughput/low-latency event streaming originally developed at LinkedIn, now supported by the Apache community. +(See xref:deployment:core/setup-message-broker.adoc#setup-message-broker[Set Up Message Broker].) + +KSC Reports:: Key SNMP customized (KSC) reports provide a way to generate prefabricated graphical views of collected data. They let you display data from different devices and sources (SNMP, ICMP, HTTP) on one page. +(See xref:operation:admin/webui/opsboard/dashlet/ksc.adoc#ksc[KSC Reports].) + +Meridian:: Subscription-based, optimized, and stable version of the OpenNMS Horizon platform. +Annual release with monthly security patches that includes only the most stable and secure Horizon features. + +Message broker:: When using Minions and Sentinels, a message broker is required for communication between servers. +{page-component-title} has an embedded ActiveMQ server available for smaller deployments. +You can swap the broker with a dedicated ActiveMQ, gRPC, or Kafaka cluster to provide scalability and load balancing. + +Minion:: Instance of the Karaf OSGi service that enables OpenNMS to monitor devices and services in locations that OpenNMS cannot reach. +Minions communicate with these remote devices while OpenNMS performs coordination and task delegation. +(See xref:development:minion/introduction.adoc#minion[Minion].) + +Nephron:: OpenNMS component that enables horizontal scaling of flow processing. +Not required for flow processing, but can improve performance for deployments with a very high volume of flow documents. + +Newts:: Newts (New-Fangled Time Series Datastore) is an OpenNMS time series data store based on Apache Cassandra. +Use it as an alternative persistence strategy instead of JRobin or RRDtool. +(See xref:deployment:time-series-storage/newts/introduction.adoc#ga-opennms-operation-newts[Newts].) + + +Operator board:: Customizable dashboard to visualize monitoring information. (See xref:operation:admin/webui/opsboard/introduction.adoc#ops-board[Operator Board].) + +PostgreSQL:: Commonly used open-source relational database known for its stability. +PostgreSQL scales up but not out. +(See xref:deployment:core/getting-started.adoc#setup-postgresql[Set up PostgreSQL].) + +PRIS:: PRovisioning Integration Server, an optional service to gather node inventory information from an external source. +Use to generate requisition XML files for creating/updating/removing nodes for monitoring. + +Provisioning:: The process of getting your devices, applications, and services into monitoring. +(See xref:operation:provisioning/introduction.adoc#discovery-auto[Provisioning].) + +Remote Method Invocation (RMI):: Java API that lets one Java Virtual Machine (JVM) running object to invoke methods on an object running in another JVM. RMI integration lets you access Horizon/Meridian through jconsole or remote manage them. +(See xref:operation:admin/rmi.adoc#rmi[Enabling RMI].) + +Round Robin Database (RRD):: Special type of database designed for collection, visualization, and analysis of time-series data. +Data is maintained as a fixed-size circular-buffer that overwrites the oldest data with new data. + +Sentinel:: Karaf container that provides scalability for data processing, including flows, SNMP traps, syslog messages, and streaming telemetry in OpenNMS. +It also supports thresholding for streaming telemetry if you are using OpenNMS Newts. +(See xref:deployment:sentinel/introduction.adoc#sentinel[Sentinel].) + +Time series, time-series database (TSDB):: Time series is a sequence of data points that occur in successive order over a period of time. +A time series database (TSDB) is designed to store and serve time series data. +(See xref:deployment:time-series-storage/timeseries/time-series-storage.adoc#time-series[Time Series Storage] and https://en.wikipedia.org/wiki/Time_series_database[time series database].) diff --git a/docs/modules/reference/pages/provisioning/adapters/geoip.adoc b/docs/modules/reference/pages/provisioning/adapters/geoip.adoc new file mode 100644 index 000000000000..c3d282e79f1e --- /dev/null +++ b/docs/modules/reference/pages/provisioning/adapters/geoip.adoc @@ -0,0 +1,75 @@ +[[adapter-geoip]] += GeoIP + +Use the GeoIP Provisioning Adapter to enrich a node's asset data with location information. +It uses the GeoIP2 Databases from MaxMind to look up longitude/latitude values for a given IP address. +To use this adapter you must register and download the `GeoLite2-City.mmdb` file from https://dev.maxmind.com/geoip/geolite2-free-geolocation-data?lang=en[MaxMind]. +This adapter is disabled by default and can be enabled by setting `enabled="true"` in the configuration file `geoip-adapter-configuration.xml`. + +[source, xml] +---- + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + +---- + +The sample configuration shows that the database file `GeoLite2-City.mmdb` is located in the directory `/opt/opennms`. +By specifying `overwrite="true"` the adapter will overwrite existing asset values. + +The attribute `resolve` has four possible values: + +[options="header", cols="1,3"] +|=== +| Option +| Description + +| primary +| Always use the node's primary interface address to resolve geographical location. + +| public-ipv4 +| Use a public IPv4 address to resolve geographical location; use primary interface address if no public IPv4 address exists. + +| public-ipv6 +| Use a public IPv6 address to resolve geographical location; use primary interface address if no public IPv6 address exists. + +| public +| Use any public address to resolve geographical location; use primary interface address if no public address exists. +|=== + +By defining `location` entries, a user can add different predefined locations for given subnets. +This also allows private IP addresses to be handled that cannot be resolved by the database. +In the sample configuration, the `Default` location maps two private networks to an office building in Pittsboro, NC. +The second entry for the location `Office-Apex` maps two private networks to an office building in Apex, NC. +The definition given in the configuration takes precedence, so it is possible to even overwrite locations for public IP subnets. diff --git a/docs/modules/reference/pages/service-assurance/monitors/AvailabilityMonitor.adoc b/docs/modules/reference/pages/service-assurance/monitors/AvailabilityMonitor.adoc index 3c5c09937606..3504d7f2f6a2 100644 --- a/docs/modules/reference/pages/service-assurance/monitors/AvailabilityMonitor.adoc +++ b/docs/modules/reference/pages/service-assurance/monitors/AvailabilityMonitor.adoc @@ -8,7 +8,7 @@ The service is considered available if isReachable returns true. See link:https://docs.w3cub.com/openjdk~11/java.base/java/net/inetaddress.html#isReachable(int)[Oracle's documentation] for more details. Note that under most configurations the <> supersedes the AvailabilityMonitor. -The AvailabilityMonitor was developed when the ImpMonitor was not remote enabled, to circumvent this limitation. +The AvailabilityMonitor was developed when the IcmpMonitor was not remote enabled, to circumvent this limitation. Now, with the JNA ICMP implementation, the IcmpMonitor is remote-enabled under most configurations, so you should not need the AvailabilityMonitor. == Monitor facts diff --git a/docs/modules/reference/pages/service-assurance/monitors/PageSequenceMonitor.adoc b/docs/modules/reference/pages/service-assurance/monitors/PageSequenceMonitor.adoc index 7393762f9ba9..d45d686d0c45 100644 --- a/docs/modules/reference/pages/service-assurance/monitors/PageSequenceMonitor.adoc +++ b/docs/modules/reference/pages/service-assurance/monitors/PageSequenceMonitor.adoc @@ -69,8 +69,8 @@ With `strict-timeout = false` the next attempt starts right after a failure. | 0 | use-system-proxy -| Should the system-wide proxy settings be used? -Configure the system proxy settings via <>. +| Should the system-wide proxy settings be used? +Configure the system proxy settings via <>. | false |=== diff --git a/docs/modules/releasenotes/pages/changelog.adoc b/docs/modules/releasenotes/pages/changelog.adoc index b1e00ecc5e21..66da2fd8485c 100644 --- a/docs/modules/releasenotes/pages/changelog.adoc +++ b/docs/modules/releasenotes/pages/changelog.adoc @@ -1,240 +1,107 @@ -[[release-28-changelog]] +[[release-29-changelog]] = Changelog -[[releasenotes-changelog-28.1.1]] +[[releasenotes-changelog-29.0.0]] -== Release 28.1.1 +== Release 29.0.0 -Release 28.1.1 contains a number of bug fixes and enhancements, including web UI, -Minion, Docker, and documentation improvements. +Release 29.0.0 is the first in the Horizon 29 series, introducing running as non-root by default, +optimizations to Minion communication, time-series improvements, support for Cortex for storing +flow data, and more. -The codename for Horizon 28.1.1 is https://transformers.fandom.com/wiki/Mikaela_Banes[_Mikaela Banes_]. +The codename for Horizon 29.0.0 is https://wikipedia.org/wiki/$$Turkey_(bird)$$[_Turkey_]. === Bug -* Fix example configuration for Scriptd (Issue http://issues.opennms.org/browse/NMS-13271[NMS-13271]) -* Strings with URL arguments are truncated in the eventdescr field (Issue http://issues.opennms.org/browse/NMS-13428[NMS-13428]) -* SNMPv3 traps are not counted correctly in JMX metrics (Issue http://issues.opennms.org/browse/NMS-13489[NMS-13489]) -* missing fields in search autocomplete (Issue http://issues.opennms.org/browse/NMS-13518[NMS-13518]) -* Some of the tests of ClassificationRulePageIT are flaky (Issue http://issues.opennms.org/browse/NMS-13566[NMS-13566]) -* Signed Minion container bleeding image shows revision as meridian-foundation-2021.1.4-1-487 (Issue http://issues.opennms.org/browse/NMS-13587[NMS-13587]) -* Meridian Minion images do not include release (Issue http://issues.opennms.org/browse/NMS-13591[NMS-13591]) -* Horizon release-28.x builds fail with a certificate error (Issue http://issues.opennms.org/browse/NMS-13609[NMS-13609]) - -=== Enhancement - -* Document data types in collectd (Issue http://issues.opennms.org/browse/NMS-10476[NMS-10476]) -* Update adapters documentation (Issue http://issues.opennms.org/browse/NMS-12999[NMS-12999]) -* Move monitors docs to the Reference section (Issue http://issues.opennms.org/browse/NMS-13524[NMS-13524]) -* Move detectors to reference section (Issue http://issues.opennms.org/browse/NMS-13525[NMS-13525]) -* Move collectors to reference section (Issue http://issues.opennms.org/browse/NMS-13526[NMS-13526]) -* Move telemetryd (streaming telemetry) to reference section (Issue http://issues.opennms.org/browse/NMS-13527[NMS-13527]) -* Move ticketing docs to reference section (Issue http://issues.opennms.org/browse/NMS-13529[NMS-13529]) -* Add search term highlight functionality in documentation (Issue http://issues.opennms.org/browse/NMS-13540[NMS-13540]) -* Minion: Health ReST API: Lightweight/passive health check for broker/OpenNMS (Issue http://issues.opennms.org/browse/NMS-13547[NMS-13547]) -* Move provisioning policies to the reference section (Issue http://issues.opennms.org/browse/NMS-13562[NMS-13562]) -* Implement HW inventory Provisioning adapter API to support Juniper HW (Issue http://issues.opennms.org/browse/NMS-13575[NMS-13575]) -* Add full trapoid for Snmp V1 (Issue http://issues.opennms.org/browse/NMS-13586[NMS-13586]) -* Geolocator Doc Clarification (Issue http://issues.opennms.org/browse/NMS-13611[NMS-13611]) - -[[releasenotes-changelog-28.1.0]] - -== Release 28.1.0 - -Release 28.1.0 contains a bunch of bug fixes and enhancements, including a dependency update -related to a CVE. - -Note that we bumped the minor version on the release because of the changes made in -http://issues.opennms.org/browse/NMS-13479[NMS-13479] -- in order to optimize the flow classification -processing, some significant changes were made behind the scenes. There _shouldn't_ be any change -from a user perspective, but we bumped the version just in case. - -The codename for Horizon 28.1.0 is https://wikipedia.org/wiki/$$Bumblebee_(Transformers)$$[_Bumblebee_] - -=== Bug - -* OpenNMS Admin Guide HostResourceSwRunMonitor service-name not exact match string (Issue http://issues.opennms.org/browse/NMS-8968[NMS-8968]) -* Trailing whitespace breaks flow listener config (Issue http://issues.opennms.org/browse/NMS-13477[NMS-13477]) -* Syslog messages missing nodelabel, location, and interface (Issue http://issues.opennms.org/browse/NMS-13485[NMS-13485]) -* Minions > v27.0.0 stop processing flows after apprx 5 minutes (Issue http://issues.opennms.org/browse/NMS-13486[NMS-13486]) -* IFTTT integration not working anymore (Issue http://issues.opennms.org/browse/NMS-13501[NMS-13501]) -* Bump Apache Ant version to 1.10.11 (CVE-2021-36373, CVE-2021-36374) (Issue http://issues.opennms.org/browse/NMS-13509[NMS-13509]) -* Service Parameters box misses Poller Patterns (Issue http://issues.opennms.org/browse/NMS-13517[NMS-13517]) - -=== Enhancement - -* Add the full trap oid for v2 snmp event (Issue http://issues.opennms.org/browse/NMS-13422[NMS-13422]) -* Update Provisiond Docs (Issue http://issues.opennms.org/browse/NMS-13446[NMS-13446]) -* Update table formatting in docs. (Issue http://issues.opennms.org/browse/NMS-13472[NMS-13472]) -* Migrate VMware config from wiki to docs (Issue http://issues.opennms.org/browse/NMS-13473[NMS-13473]) -* Review classification rules in the flow pipeline (Issue http://issues.opennms.org/browse/NMS-13479[NMS-13479]) -* Use Karaf shell commands to secure Minion SSH Karaf access (Issue http://issues.opennms.org/browse/NMS-13511[NMS-13511]) -* Reformat tables (again) (Issue http://issues.opennms.org/browse/NMS-13515[NMS-13515]) - -[[releasenotes-changelog-28.0.2]] - -== Release 28.0.2 - -Release 28.0.2 contains a bunch of bug fixes and enhancements, as well as some fixes for -XSS issues and a Jetty CVE. - -The codename for Horizon 28.0.2 is https://wikipedia.org/wiki/$$Soundwave_(Transformers)$$[_Soundwave_]. - -=== Bug - -* The Dev Documentation doesn't have information about the Hardware Inventory (Issue http://issues.opennms.org/browse/NMS-11730[NMS-11730]) -* Admin guide still uses deprecated term "provisioning group" in places (Issue http://issues.opennms.org/browse/NMS-12373[NMS-12373]) -* Swagger UI hard coded to server via HTTP (Issue http://issues.opennms.org/browse/NMS-13353[NMS-13353]) -* OpenAPI spec fails validation (Issue http://issues.opennms.org/browse/NMS-13354[NMS-13354]) -* OutOfMemory issue on Minion (corner case related to Offheap) (Issue http://issues.opennms.org/browse/NMS-13405[NMS-13405]) -* vmwareconfigbuilder and vmwarecimquery not working anymore (Issue http://issues.opennms.org/browse/NMS-13444[NMS-13444]) -* Jetty 9.4.38 security issues CVE-2021-28164, CVE-2021-34428 and CVE-2021-28169 (Issue http://issues.opennms.org/browse/NMS-13449[NMS-13449]) +* Add Validation for Metadata in Thresholds (Issue http://issues.opennms.org/browse/NMS-12689[NMS-12689]) +* Prometheus collector won't process untyped metrics (Issue http://issues.opennms.org/browse/NMS-12717[NMS-12717]) +* Confd doesn't replace telemetryd config in etc (Issue http://issues.opennms.org/browse/NMS-13265[NMS-13265]) +* The node and interface counters of the Evaluation Layer are incorrect (Issue http://issues.opennms.org/browse/NMS-13283[NMS-13283]) +* EvaluationMetrics.log is contaminated with non-related metrics. (Issue http://issues.opennms.org/browse/NMS-13284[NMS-13284]) +* Meta-Data cannot be deleted using UI (Issue http://issues.opennms.org/browse/NMS-13314[NMS-13314]) +* Maven: external HTTP insecure URLs are blocked (Issue http://issues.opennms.org/browse/NMS-13323[NMS-13323]) +* Installation with non-root user failes on CentOS 8 (Issue http://issues.opennms.org/browse/NMS-13415[NMS-13415]) +* Starting opennms with systemd as non-root fails with access denied for pid (Issue http://issues.opennms.org/browse/NMS-13417[NMS-13417]) +* Fresh install requires to run fix-permissions script for iplike.so (Issue http://issues.opennms.org/browse/NMS-13418[NMS-13418]) +* Docker not able to access etc overlay as non-root (Issue http://issues.opennms.org/browse/NMS-13436[NMS-13436]) +* The Info ReST endpoint is not showing the services status (Issue http://issues.opennms.org/browse/NMS-13437[NMS-13437]) +* Fix ipInterface PrimaryType Hibernate mapping (Issue http://issues.opennms.org/browse/NMS-13469[NMS-13469]) +* Relaunch of bin/opennms script as opennms user fails due to missing arguments (Issue http://issues.opennms.org/browse/NMS-13470[NMS-13470]) * Reflected XSS in webapp notice wizard (Issue http://issues.opennms.org/browse/NMS-13496[NMS-13496]) -* Reflected XSS in scheduled outage editor (Issue http://issues.opennms.org/browse/NMS-13498[NMS-13498]) - -=== Enhancement - -* Add missing Prometheus collectd example in our documenation (Issue http://issues.opennms.org/browse/NMS-12978[NMS-12978]) -* Nephron: Consider interfaces for unaligned windows (Issue http://issues.opennms.org/browse/NMS-13352[NMS-13352]) -* Table formatting issue in new docs (Issue http://issues.opennms.org/browse/NMS-13364[NMS-13364]) -* Hardware Inventory Plugin needs docs (Issue http://issues.opennms.org/browse/NMS-13370[NMS-13370]) -* Document search panel (Issue http://issues.opennms.org/browse/NMS-13408[NMS-13408]) -* The PageSequenceMonitor keys host and virtual-host are confusing (Issue http://issues.opennms.org/browse/NMS-13412[NMS-13412]) -* Only publish Docker images when system tests are green (Issue http://issues.opennms.org/browse/NMS-13433[NMS-13433]) -* Doc typos - improper character escaping (Issue http://issues.opennms.org/browse/NMS-13448[NMS-13448]) -* Update table formatting in collectors section of docs (Issue http://issues.opennms.org/browse/NMS-13456[NMS-13456]) -* Optimize node cache refresh to be non-blocking to flow data (Issue http://issues.opennms.org/browse/NMS-13481[NMS-13481]) - -[[releasenotes-changelog-28.0.1]] -== Release 28.0.1 - -Release 28.0.1 contains a bunch of bug fixes and enhancements, plus a few security updates. - -The codename for Horizon 28.0.1 is https://wikipedia.org/wiki/$$Optimus_Prime$$[_Optimus Prime_]. - -=== Bug - -* SNMP collection failing for "interface label is null or blank" (Issue http://issues.opennms.org/browse/NMS-11764[NMS-11764]) -* Typo in Graphs: "File Descritors" (Issue http://issues.opennms.org/browse/NMS-12876[NMS-12876]) -* Problems in Helm documentation (Issue http://issues.opennms.org/browse/NMS-12900[NMS-12900]) -* minion-config-schema.yml java agent example as a string (Issue http://issues.opennms.org/browse/NMS-13272[NMS-13272]) -* Minion container v28.0.0 refuse to start (Issue http://issues.opennms.org/browse/NMS-13347[NMS-13347]) -* Release notes display issues (Issue http://issues.opennms.org/browse/NMS-13351[NMS-13351]) -* Default Debian instructions don't work on a minimal install (Issue http://issues.opennms.org/browse/NMS-13355[NMS-13355]) -* CVE-2020-13956: Update commons-httpclient to 4.5.13 (Issue http://issues.opennms.org/browse/NMS-13360[NMS-13360]) -* CVE-2017-5929: bump logback-classic version to latest (Issue http://issues.opennms.org/browse/NMS-13361[NMS-13361]) -* Update images chapter in docs remove two chapters (Issue http://issues.opennms.org/browse/NMS-13371[NMS-13371]) -* Package diffutils is missing in Docker image (Issue http://issues.opennms.org/browse/NMS-13429[NMS-13429]) +* IFTTT integration not working anymore (Issue http://issues.opennms.org/browse/NMS-13501[NMS-13501]) +* Minion stops processing flows with "Invalid packet: null" until restart (Issue http://issues.opennms.org/browse/NMS-13539[NMS-13539]) +* Components that use JavaMail unable to use TLS 1.2+ (Issue http://issues.opennms.org/browse/NMS-13636[NMS-13636]) +* Hardware information not displayed for some devices (SnmpMetadataProvisioningAdapter) (Issue http://issues.opennms.org/browse/NMS-13648[NMS-13648]) +* Lock contention when processing large volume of REST API requests (Issue http://issues.opennms.org/browse/NMS-13655[NMS-13655]) +* Clean unused data in srv001.txt and srv002.txt (Issue http://issues.opennms.org/browse/NMS-13657[NMS-13657]) +* Nodes with complex hardware configuration are not correctly rendered (Issue http://issues.opennms.org/browse/NMS-13660[NMS-13660]) +* automation cleanUpRpStatusChanges that references removed action with same name remains in default vacuumd-configuration.xml configuration (Issue http://issues.opennms.org/browse/NMS-13661[NMS-13661]) +* ALEC in distributed mode doesn't start on Sentinel (Issue http://issues.opennms.org/browse/NMS-13664[NMS-13664]) +* property name importer.adapter.dns.reverse.level is incorrect in commented out example (Issue http://issues.opennms.org/browse/NMS-13670[NMS-13670]) +* Fix JtiTelemetryIT smoke test (Issue http://issues.opennms.org/browse/NMS-13687[NMS-13687]) +* START_TIMEOUT ignored when run from systemd (Issue http://issues.opennms.org/browse/NMS-13702[NMS-13702]) +* macOS Monterey: older OpenNMS branches do not start anymore (Issue http://issues.opennms.org/browse/NMS-13703[NMS-13703]) +* related events box in alarm detail shows all events when alarm has no node / interface / service / ifindex (Issue http://issues.opennms.org/browse/NMS-13705[NMS-13705]) +* SNMP Metadata Provisioning Adapter: wrong line in debian/rules (Issue http://issues.opennms.org/browse/NMS-13717[NMS-13717]) +* invalid permissions in /var/opennms on fresh install (Issue http://issues.opennms.org/browse/NMS-13725[NMS-13725]) +* JMS Twin doesn't work with minion user (Issue http://issues.opennms.org/browse/NMS-13726[NMS-13726]) +* Remove reference to DHCP plugin from docs (Issue http://issues.opennms.org/browse/NMS-13727[NMS-13727]) +* GeoIP Provisioning Adapter: SubnetUtils does not support IPv6 (Issue http://issues.opennms.org/browse/NMS-13728[NMS-13728]) === Enhancement -* Add Node ID reference to noticeWizard (Issue http://issues.opennms.org/browse/NMS-11790[NMS-11790]) +* Change the webUI so it runs as a non-root user easily and reliably (Issue http://issues.opennms.org/browse/NMS-1231[NMS-1231]) +* Create opennms user on install (Issue http://issues.opennms.org/browse/NMS-11970[NMS-11970]) +* syslogd as non-root user (Issue http://issues.opennms.org/browse/NMS-11982[NMS-11982]) +* opennms.service in non-root environment (Issue http://issues.opennms.org/browse/NMS-12005[NMS-12005]) +* opennms init script "runas" setting (Issue http://issues.opennms.org/browse/NMS-12007[NMS-12007]) +* TrapD won't run as non-root user (Issue http://issues.opennms.org/browse/NMS-12026[NMS-12026]) +* non-root user:group file permissions (Issue http://issues.opennms.org/browse/NMS-12034[NMS-12034]) +* Documentation for reloadable daemons (Issue http://issues.opennms.org/browse/NMS-12611[NMS-12611]) * Incorporate node related information to events and alarms topic in opennms-kafka-producer feature (Issue http://issues.opennms.org/browse/NMS-12778[NMS-12778]) -* Create BSFDetector documenation (Issue http://issues.opennms.org/browse/NMS-13073[NMS-13073]) -* Add operator instructions for graphInvalidated (Issue http://issues.opennms.org/browse/NMS-13173[NMS-13173]) -* Nephron: add benchmark launcher (Issue http://issues.opennms.org/browse/NMS-13176[NMS-13176]) -* Enhance Availability (RTC) data via REST with current service status (Issue http://issues.opennms.org/browse/NMS-13238[NMS-13238]) -* PageSequenceMonitor not accepting metadata in element (Issue http://issues.opennms.org/browse/NMS-13257[NMS-13257]) -* Expand PageSequenceMonitor Documentation (Issue http://issues.opennms.org/browse/NMS-13260[NMS-13260]) -* Publish minion config schema (Issue http://issues.opennms.org/browse/NMS-13285[NMS-13285]) -* Health-check: provide restful api to query health for different tags (Issue http://issues.opennms.org/browse/NMS-13312[NMS-13312]) -* Check if Docker Content Trust and Docker Registry Proxies play together nicely (Issue http://issues.opennms.org/browse/NMS-13315[NMS-13315]) -* Use DCT to secure the Minion image (Issue http://issues.opennms.org/browse/NMS-13318[NMS-13318]) -* Provide OpenAPI doc to health-check REST API (Issue http://issues.opennms.org/browse/NMS-13319[NMS-13319]) -* update WMI dependencies (Issue http://issues.opennms.org/browse/NMS-13320[NMS-13320]) -* Add out-of-band monitoring content to main user documentation (Issue http://issues.opennms.org/browse/NMS-13330[NMS-13330]) -* Create DnsDetector docs (Issue http://issues.opennms.org/browse/NMS-13338[NMS-13338]) -* Create FtpDetector docs (Issue http://issues.opennms.org/browse/NMS-13339[NMS-13339]) -* Create HostResourceSWRunDetector docs (Issue http://issues.opennms.org/browse/NMS-13340[NMS-13340]) -* Documentation Typos (Issue http://issues.opennms.org/browse/NMS-13344[NMS-13344]) -* Setup DCT keys for the OpenNMS and OpenNMS-Forge organizations (Issue http://issues.opennms.org/browse/NMS-13345[NMS-13345]) -* Implement Kafka Consumer for events (protobuf) (Issue http://issues.opennms.org/browse/NMS-13362[NMS-13362]) -* Add info icon with a tooltip for effective meta-data values (Issue http://issues.opennms.org/browse/NMS-13365[NMS-13365]) -* Allow setting java heap minimum and maximum values in opennms.conf (Issue http://issues.opennms.org/browse/NMS-13367[NMS-13367]) -* Add tags as query params to /health/probe Rest API (Issue http://issues.opennms.org/browse/NMS-13369[NMS-13369]) -* Add custom Meta-data in search results (Issue http://issues.opennms.org/browse/NMS-13378[NMS-13378]) -* Misc documentation fixes (Issue http://issues.opennms.org/browse/NMS-13426[NMS-13426]) - - -[[releasenotes-changelog-28.0.0]] - -== Release 28.0.0 - -Release 28.0.0 is the first in the Horizon 28 series, introducing a requirement of Java 11, -enhancements to flow aggregation to support DSCP ToS/QoS, and more. - -The codename for Horizon 28.0.0 is https://wikipedia.org/wiki/$$Jazz_(Transformers)$$[_Jazz_]. - -=== Bug - -* Quick Search Typing anything but numbers in the Node list gets 404 (Issue http://issues.opennms.org/browse/NMS-8012[NMS-8012]) -* "Search/Filter Resources" on "Resource Graphs" not functioning as expected (Issue http://issues.opennms.org/browse/NMS-11752[NMS-11752]) -* Race condition on ALEC's config bundle after installation (Issue http://issues.opennms.org/browse/NMS-12766[NMS-12766]) -* Race condition when enabling the Situations Feedback feature (Issue http://issues.opennms.org/browse/NMS-12767[NMS-12767]) -* Add a warning when enabling forwarding metrics through the Kafka Producer (Issue http://issues.opennms.org/browse/NMS-13039[NMS-13039]) -* Nephron: optimize aggregation calculation (Issue http://issues.opennms.org/browse/NMS-13100[NMS-13100]) -* Setting Instance ID via minon-config.yaml doesn't work (Issue http://issues.opennms.org/browse/NMS-13101[NMS-13101]) -* Shipped minion flow listener config does not create a working listener (Issue http://issues.opennms.org/browse/NMS-13110[NMS-13110]) -* BouncyCastle breaks SSL support in OpenNMS (Issue http://issues.opennms.org/browse/NMS-13111[NMS-13111]) -* Wrong UEI is picked when threshold alarms are generated (Issue http://issues.opennms.org/browse/NMS-13120[NMS-13120]) -* IP interface link in Response Time graph page is broken (Issue http://issues.opennms.org/browse/NMS-13158[NMS-13158]) -* Use perl from env (Issue http://issues.opennms.org/browse/NMS-13174[NMS-13174]) -* The behavior of the Ticketing API differs from older versions. (Issue http://issues.opennms.org/browse/NMS-13189[NMS-13189]) -* The %dpname% breaks the alarm life-cycle when having multiple minions per location (Issue http://issues.opennms.org/browse/NMS-13210[NMS-13210]) -* Fix nephron/catheter build interaction (Issue http://issues.opennms.org/browse/NMS-13198[NMS-13198]) -* System settings for Minion in custom.system.properties are ignored (Issue http://issues.opennms.org/browse/NMS-13222[NMS-13222]) -* Change Jetty default settings to exclude vulnerable cipher suites, expose client-initiated renegotiation (Issue http://issues.opennms.org/browse/NMS-13227[NMS-13227]) -* LLDP REST api miss local port info (Issue http://issues.opennms.org/browse/NMS-13258[NMS-13258]) -* Notifications received despite Schedule Outage applies (Issue http://issues.opennms.org/browse/NMS-13266[NMS-13266]) -* Mark OIA Implementation for Timeseries as experimental (Issue http://issues.opennms.org/browse/NMS-13281[NMS-13281]) -* Favicon of OpenAPI page need to be updated (Issue http://issues.opennms.org/browse/NMS-13292[NMS-13292]) -* Validate query parameters in snmpInterfaces.jsp (Issue http://issues.opennms.org/browse/NMS-13308[NMS-13308]) -* Validate name parameter in DestinationWizardServlet (Issue http://issues.opennms.org/browse/NMS-13309[NMS-13309]) -* CLONE - DOC Branding: Icon in tab is still the old one (Issue http://issues.opennms.org/browse/NMS-13329[NMS-13329]) -* Enumeration of DSCP values returns only 10 values (Issue http://issues.opennms.org/browse/NMS-13333[NMS-13333]) - -=== Enhancement +* Update Provisioning chapter (Issue http://issues.opennms.org/browse/NMS-12810[NMS-12810]) +* Create docs about Newts confd parameters (Issue http://issues.opennms.org/browse/NMS-13005[NMS-13005]) +* Allow OpenNMS Core service to run as non-root (Issue http://issues.opennms.org/browse/NMS-13016[NMS-13016]) +* Improve usability and self-contained features of the Kafka Producer payload for metrics (Issue http://issues.opennms.org/browse/NMS-13191[NMS-13191]) +* Upgrade Kafka components to 2.8.0 (Issue http://issues.opennms.org/browse/NMS-13264[NMS-13264]) +* Monitor localhost in a fresh install (Issue http://issues.opennms.org/browse/NMS-13313[NMS-13313]) +* Location dropdown on Add Node does not sort/filter (Issue http://issues.opennms.org/browse/NMS-13316[NMS-13316]) +* Persist monitor status in RRD (Issue http://issues.opennms.org/browse/NMS-13324[NMS-13324]) +* TSS 2.0: Improved Tag handling (Issue http://issues.opennms.org/browse/NMS-13356[NMS-13356]) +* Provide ability to store aggregated flow data from Nephron in Cortex (Issue http://issues.opennms.org/browse/NMS-13372[NMS-13372]) +* Investigate the Conversations related performance with Cortex & large amount of data (Issue http://issues.opennms.org/browse/NMS-13375[NMS-13375]) +* Nephron: Get rid of convo_key and grouped_by_key (Issue http://issues.opennms.org/browse/NMS-13377[NMS-13377]) +* Define Minion/OpenNMS Object replication Interfaces (Issue http://issues.opennms.org/browse/NMS-13401[NMS-13401]) +* Integrate Object replication with Trapd (for SNMPV3 Users) (Issue http://issues.opennms.org/browse/NMS-13402[NMS-13402]) +* Limit CollectionSet size in Kafka Producer to less than 1MB. (Issue http://issues.opennms.org/browse/NMS-13407[NMS-13407]) +* Remove remote repository dependencies during Minion OCI build (Issue http://issues.opennms.org/browse/NMS-13432[NMS-13432]) +* Implement gRPC broker for Object replication (Twin) (Issue http://issues.opennms.org/browse/NMS-13460[NMS-13460]) +* Implement ActiveMQ broker for Object replication ( Twin) (Issue http://issues.opennms.org/browse/NMS-13461[NMS-13461]) +* Implement In-memory broker for Object replication ( Twin) (Issue http://issues.opennms.org/browse/NMS-13462[NMS-13462]) +* Implement Kafka broker for Object replication ( Twin) (Issue http://issues.opennms.org/browse/NMS-13463[NMS-13463]) +* Changes to review bulk indexing with raw flow data (Issue http://issues.opennms.org/browse/NMS-13478[NMS-13478]) +* Grpc IPC and Twin should be able to run from the same port (Issue http://issues.opennms.org/browse/NMS-13487[NMS-13487]) +* Add Karaf Command to add query and publish Twin Objects (Issue http://issues.opennms.org/browse/NMS-13488[NMS-13488]) +* delete the opennms-tools directory (Issue http://issues.opennms.org/browse/NMS-13563[NMS-13563]) +* Upgrade Karaf to v4.3.2 (Issue http://issues.opennms.org/browse/NMS-13565[NMS-13565]) +* Support partial updates to Twin API (Issue http://issues.opennms.org/browse/NMS-13576[NMS-13576]) +* Optimize ip address handling in flow classification engine (Issue http://issues.opennms.org/browse/NMS-13577[NMS-13577]) +* optimize repeated reloads of the flow classification engine (Issue http://issues.opennms.org/browse/NMS-13580[NMS-13580]) +* The implementation of HealthCheck.performAsyncHealthCheck is not async (Issue http://issues.opennms.org/browse/NMS-13590[NMS-13590]) +* Add 'tag' argument to health-check command (Issue http://issues.opennms.org/browse/NMS-13592[NMS-13592]) +* Provide basic implementation for patch support for Twin (Issue http://issues.opennms.org/browse/NMS-13594[NMS-13594]) +* Show Link State when viewing links on the Enlinkd topology maps (Issue http://issues.opennms.org/browse/NMS-13619[NMS-13619]) +* Topologies menu (Issue http://issues.opennms.org/browse/NMS-13622[NMS-13622]) +* Documentation for the new feature persisting flows in Cortex (Issue http://issues.opennms.org/browse/NMS-13635[NMS-13635]) +* Discover LLDP topology on devices running MikroTik RouterOS (Issue http://issues.opennms.org/browse/NMS-13637[NMS-13637]) +* Drop SQS support (Issue http://issues.opennms.org/browse/NMS-13640[NMS-13640]) +* Remove Rest Client / OpenNMS Rest Health Checks on Minion (Issue http://issues.opennms.org/browse/NMS-13641[NMS-13641]) +* Update docs with Twin implementation (Issue http://issues.opennms.org/browse/NMS-13642[NMS-13642]) +* Check doc source for wiki links (Issue http://issues.opennms.org/browse/NMS-13688[NMS-13688]) +* Create Release Notes for Horizon 29 (Issue http://issues.opennms.org/browse/NMS-13700[NMS-13700]) +* Add Twin feature/strategy to conf.d/smoke test (Issue http://issues.opennms.org/browse/NMS-13701[NMS-13701]) +* GeoIP Provisioning Adapter (Issue http://issues.opennms.org/browse/NMS-13704[NMS-13704]) +* Allow PostgreSQL 14 (Issue http://issues.opennms.org/browse/NMS-13714[NMS-13714]) +* Add hint for time sync on OpenNMS components (Issue http://issues.opennms.org/browse/NMS-13724[NMS-13724]) -* Migrate OpenNMS core docs to Antora (Issue http://issues.opennms.org/browse/NMS-12497[NMS-12497]) -* Overview chapter (Issue http://issues.opennms.org/browse/NMS-12670[NMS-12670]) -* Raw Link Details via REST API (Issue http://issues.opennms.org/browse/NMS-12941[NMS-12941]) -* Nephron: add additional aggregations to support QoS filtering in Helm (Issue http://issues.opennms.org/browse/NMS-12945[NMS-12945]) -* Nephron: examine what additional compute and storage load is implied by the new QoS-based aggregations (Issue http://issues.opennms.org/browse/NMS-12946[NMS-12946]) -* Elastic Flow Repository: modify ReST API to support queries including QoS (aggregated and raw queries) (Issue http://issues.opennms.org/browse/NMS-12947[NMS-12947]) -* Upgrade Karaf to version 4.2.10 (Issue http://issues.opennms.org/browse/NMS-12977[NMS-12977]) -* Add out of band management capabilities (Issue http://issues.opennms.org/browse/NMS-13072[NMS-13072]) -* Create Win32ServiceDetector documentation (Issue http://issues.opennms.org/browse/NMS-13074[NMS-13074]) -* Create WmiDetector documenation (Issue http://issues.opennms.org/browse/NMS-13075[NMS-13075]) -* Create BgpSessionDetector documentation (Issue http://issues.opennms.org/browse/NMS-13076[NMS-13076]) -* Nephron: Use discarding accumulation (Issue http://issues.opennms.org/browse/NMS-13085[NMS-13085]) -* Optimize flow queries in case no DSCP or ECN filter exists (Issue http://issues.opennms.org/browse/NMS-13086[NMS-13086]) -* Centralize the OpenNMS Configuration (Issue http://issues.opennms.org/browse/NMS-13089[NMS-13089]) -* Build prototype of configuration system for vacuumd config (Issue http://issues.opennms.org/browse/NMS-13090[NMS-13090]) -* Enhancement to Topology ReST Endpoint (Issue http://issues.opennms.org/browse/NMS-13091[NMS-13091]) -* Nephron: Add additional aggregations for backwards compatibilty and optimized access (Issue http://issues.opennms.org/browse/NMS-13099[NMS-13099]) -* Enable Single topic by default for Kafka RPC (Issue http://issues.opennms.org/browse/NMS-13104[NMS-13104]) -* Intergate support for OSGI into configuration system (Issue http://issues.opennms.org/browse/NMS-13122[NMS-13122]) -* Nephron: Use unaligned windows for different exporters (Issue http://issues.opennms.org/browse/NMS-13131[NMS-13131]) -* Nephron: derive aggregations for hosts and applications from the conversation aggregation (Issue http://issues.opennms.org/browse/NMS-13132[NMS-13132]) -* Drift (ES): Upgrade to ES 7.10.2 (Issue http://issues.opennms.org/browse/NMS-13134[NMS-13134]) -* Investigate using openAPI&Swagger to document v2 RESTful API (Issue http://issues.opennms.org/browse/NMS-13187[NMS-13187]) -* Upgrade Karaf from 4.2.6 to 4.2.10 (Issue http://issues.opennms.org/browse/NMS-13193[NMS-13193]) -* Compile OpenNMS with JDK11 (and remove support for JDK8) (Issue http://issues.opennms.org/browse/NMS-13197[NMS-13197]) -* Nephron should support Kafka over TLS (Issue http://issues.opennms.org/browse/NMS-13203[NMS-13203]) -* Add Antora Xref validation in Horizon/Meridian repository (Issue http://issues.opennms.org/browse/NMS-13209[NMS-13209]) -* Flows: Fallback config for flow timeouts (Issue http://issues.opennms.org/browse/NMS-13215[NMS-13215]) -* Upgrade Karaf to 4.2.11 (Issue http://issues.opennms.org/browse/NMS-13220[NMS-13220]) -* Incorrect reference to org.opennms.netmgt.syslog.cfg (Issue http://issues.opennms.org/browse/NMS-13223[NMS-13223]) -* Update Help page with doc links in the Web UI (Issue http://issues.opennms.org/browse/NMS-13225[NMS-13225]) -* Admin Guide Newts Instructions Incomplete (Issue http://issues.opennms.org/browse/NMS-13242[NMS-13242]) -* Minion - Meridian Installation Documents Incorrect (Issue http://issues.opennms.org/browse/NMS-13247[NMS-13247]) -* Provide documentation for context-sensitive help in UI form (Issue http://issues.opennms.org/browse/NMS-13255[NMS-13255]) -* Change Horizon to new brand icon and update navbar theme color (Issue http://issues.opennms.org/browse/NMS-13263[NMS-13263]) -* Doc update for PrometheusCollector parameters (Issue http://issues.opennms.org/browse/NMS-13267[NMS-13267]) -* Update Horizon log in page to the new design (Issue http://issues.opennms.org/browse/NMS-13270[NMS-13270]) -* Minion: A programmatic means of obtaining health (alternate to 'opennms:health-check') (Issue http://issues.opennms.org/browse/NMS-13274[NMS-13274]) -* PoC for Docker Content Trust (Issue http://issues.opennms.org/browse/NMS-13277[NMS-13277]) -* Location aware Requisitions from DNS (Issue http://issues.opennms.org/browse/NMS-13278[NMS-13278]) -* Support Rest API on Minion & Enable health-check REST feature (Issue http://issues.opennms.org/browse/NMS-13311[NMS-13311]) -* Update conventions for text formatting (Issue http://issues.opennms.org/browse/NMS-13336[NMS-13336]) diff --git a/docs/modules/releasenotes/pages/whatsnew.adoc b/docs/modules/releasenotes/pages/whatsnew.adoc index 079fe0c5a10b..05ff94d5372e 100644 --- a/docs/modules/releasenotes/pages/whatsnew.adoc +++ b/docs/modules/releasenotes/pages/whatsnew.adoc @@ -1,51 +1,102 @@ -[[releasenotes-28]] -= What's New in OpenNMS Horizon 28 +[[releasenotes-29]] + += What's New in OpenNMS Horizon 29 == System Requirements -* *Java 11*: OpenNMS Horizon 28 runs on JDK 11. -* *PostgreSQL 10 or higher*: Horizon 28 requires any supported version of PostgreSQL from 10 up to (and including) 13. +* *Java 11*: OpenNMS Horizon 29 runs on JDK 11. +* *PostgreSQL 10 or higher*: Horizon 29 requires any supported version of PostgreSQL from 10 up to (and including) 14. == Breaking Changes -=== Kafka RPC Single Topic +=== Running as Non-Root + +By default, OpenNMS now runs as the `opennms` user rather than `root`. + +WARNING: If you are upgrading from a version of OpenNMS Horizon older than 29, you will have to fix the ownership of your files. + +Since many OpenNMS instances are very large with thousands or even millions of RRD and similar data files in `$OPENNMS_HOME/share`, +we decided _not_ to change ownership automatically upon package upgrade. + +The OpenNMS installer will detect if you need to fix the ownership of your files and warn you to run the script to fix permissions +(`$OPENNMS_HOME/bin/fix-permissions`) in this case. + +If you wish to revert to the previous behavior, create an `$OPENNMS_HOME/etc/opennms.conf` file if it doesn't already exist, and set `RUNAS`. + +[source, shell] +---- +RUNAS=root +---- + +=== Additional configuration needed when using Kafka/gRPC for Minion communication. + +The Twin API has replaced the OpenNMS REST API for synchronizing Trapd configuration updates. +Additional settings are needed on both Minion and {page-component-title} to enable Twin when not using the ActiveMQ message broker. -This release changes the Kafka RPC default configuration to publish on a single target. If you are using Minions, both the Minion _and_ OpenNMS need to be updated to OpenNMS Horizon 28. +Refer to the deployment section in the documentation for details. -Make sure that Kafka lag on Sink topics is minimal before upgrading, or there may be loss of those sink messages. -=== Situation Feedback Persistence Configuration +=== SQS Minion IPC Support Dropped -The configuration file `etc/org.opennms.features.situation-feedback.persistence.elastic.cfg` has been renamed to `etc/org.opennms.features.situationfeedback.persistence.elastic.cfg` (i.e. the minus sign is removed from the filename). -This fixes a race condition on startup when using ALEC. +Support for Amazon SQS for Minion communication has been removed. +We recommend to instead use Kafka for use cases that require horizontal scaling of Minion communication. + +=== Time Series Integration Layer Changes + +The Time Series integration layer has gone through link:https://issues.opennms.org/browse/NMS-13356[a number of big improvements] to reduce the complexity and cardinality of metadata and tags. + +* Time series plugins need to be compatible with OIA 0.6.x. +* Resource level string attributes are now also stored via the plugin in the respective time series database. + The `timeseries_meta` table which previously stored this metadata has been removed. + There is no migration; string values are generally updated on the next poll. == New Features and Improvements -=== New Look +=== Flows and Nephron + +Nephron and flow processing have gone through a number of major enhancements. + +* Flow metadata has been tuned and redundancy has been removed, resulting in less + data being stored per update. +* Elasticsearch persistence has been improved to support batching updates. +* The flow classification engine has been almost entirely rewritten to be + considerably more performant when processing large rulesets. +* Support has been added for persisting flows to Cortex. + +=== Minion + +The Minion continues to receive improvements in performance and features, most notably the addition of a new API (the "Twin API"), which pushes configuration to Minion over RPC, reducing the amount of data that needs to be passed over the wire. + +The first subsystem to adopt this new API is SNMPv3 auth data, so the Minion no longer needs to make a REST call to the OpenNMS core. +Over time, all configuration information will be migrated to this new API. -Horizon 28 has been updated to use the new OpenNMS branding, with a refreshed logo and fonts. +=== Polling and Metadata -=== Nephron Improvements +* Threshold metadata link:https://issues.opennms.org/browse/NMS-12689[is now validated]. +* Kafka producer payloads now contain link:https://issues.opennms.org/browse/NMS-13191[additional useful resource metadata]. +* Monitor status can now link:https://issues.opennms.org/browse/NMS-13324[optionally be persisted to RRD] so that it can be retrieved using the Measurements API. +* The `wsman-config.xml` link:https://issues.opennms.org/browse/NMS-13468[is now validated]. -If you are using Nephron for flow processing, a huge number of performance improvements have been made. -Additionally, flow aggregation now supports DSCP ToS/QoS fields. +=== Provisioning -=== New Documentation +* A link:https://issues.opennms.org/browse/NMS-13313[`localhost` node is now monitored] and enumerates some useful OpenNMS metrics by default. +* LLDP scanning in Enlinkd has link:https://issues.opennms.org/browse/NMS-13593[added support for `TIMETRA-LLDP-MIB`]. -The documentation has been completely revamped and contains numerous cleanups, and improvements, in addition to the new layout and integration at https://docs.opennms.com/[docs.opennms.com]. +=== GeoIP Provisioning Adapter +You can use the GeoIP Provisioning Adapter to enrich a node's asset data with location information. +It uses the GeoIP2 Databases from MaxMind to look up longitude/latitude values for a given IP address. -=== ReST API Improvements +=== REST API -* Initial support for enumerating ReST API endpoints has been added, using Swagger. A link is available in the "help" section of the web UI. -* Elastic flow queries return additional data for DSCP QoS/ToS data. +* RTC data now includes link:https://issues.opennms.org/browse/NMS-13238[an additional boolean field] for service up/down status. -=== The Minion +=== Documentation -* The Minion confd file has been updated with a bunch of documentation describing various options. -* Support has been added for exporting a number of JMX metrics through Prometheus for out-of-band monitoring of the Minion. -* The Minion now has support for querying its health through ReST. +* A ton of work has gone into cleaning up, rearranging, and standardizing terms in the documentation. +* A bunch of additional REST APIs are now documented through OpenAPI. == Important Internal Changes -* Our embedded Karaf has been updated to version 4.2.11 +* Kafka components have been updated to version 2.8.0 +* Our embedded Karaf has been updated to version 4.3.2 diff --git a/features/activemq/broker-api/pom.xml b/features/activemq/broker-api/pom.xml index c75c878d3128..a8e1fe85bb87 100644 --- a/features/activemq/broker-api/pom.xml +++ b/features/activemq/broker-api/pom.xml @@ -5,7 +5,7 @@ org.opennms.features org.opennms.features.activemq - 28.1.1 + 29.0.0-SNAPSHOT bundle org.opennms.features.activemq diff --git a/features/activemq/broker/pom.xml b/features/activemq/broker/pom.xml index a17c5b1dbbf6..c88b67a4d464 100644 --- a/features/activemq/broker/pom.xml +++ b/features/activemq/broker/pom.xml @@ -8,7 +8,7 @@ org.opennms.features org.opennms.features.activemq - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/activemq/component/pom.xml b/features/activemq/component/pom.xml index 3cc123adf26e..67949abdafbf 100644 --- a/features/activemq/component/pom.xml +++ b/features/activemq/component/pom.xml @@ -5,7 +5,7 @@ org.opennms.features org.opennms.features.activemq - 28.1.1 + 29.0.0-SNAPSHOT bundle org.opennms.features.activemq diff --git a/features/activemq/pom.xml b/features/activemq/pom.xml index 9a781b087d94..d9413cf687e1 100644 --- a/features/activemq/pom.xml +++ b/features/activemq/pom.xml @@ -7,7 +7,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/activemq/pool/pom.xml b/features/activemq/pool/pom.xml index 0acec7440edf..37ba51da379b 100644 --- a/features/activemq/pool/pom.xml +++ b/features/activemq/pool/pom.xml @@ -5,7 +5,7 @@ org.opennms.features org.opennms.features.activemq - 28.1.1 + 29.0.0-SNAPSHOT bundle org.opennms.features.activemq diff --git a/features/activemq/shell/pom.xml b/features/activemq/shell/pom.xml index a3e09b72bd37..108a18f6dd6d 100644 --- a/features/activemq/shell/pom.xml +++ b/features/activemq/shell/pom.xml @@ -5,7 +5,7 @@ org.opennms.features org.opennms.features.activemq - 28.1.1 + 29.0.0-SNAPSHOT bundle org.opennms.features.activemq diff --git a/features/alarm-change-notifier/feature/pom.xml b/features/alarm-change-notifier/feature/pom.xml index 3aa897590839..72e4ddbc8fa7 100644 --- a/features/alarm-change-notifier/feature/pom.xml +++ b/features/alarm-change-notifier/feature/pom.xml @@ -3,7 +3,7 @@ org.opennms.plugins alarm-change-notifier.parent - 28.1.1 + 29.0.0-SNAPSHOT @@ -88,7 +88,7 @@ opennms-repo OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/features/alarms/history/api/pom.xml b/features/alarms/history/api/pom.xml index e0e0505d4266..98a28eac2066 100644 --- a/features/alarms/history/api/pom.xml +++ b/features/alarms/history/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.alarms org.opennms.features.alarms.history - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.alarms.history diff --git a/features/alarms/history/elastic/pom.xml b/features/alarms/history/elastic/pom.xml index 903a7b09d52a..4e83832097f6 100644 --- a/features/alarms/history/elastic/pom.xml +++ b/features/alarms/history/elastic/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.alarms org.opennms.features.alarms.history - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.alarms.history @@ -87,7 +87,7 @@
org.osgi - org.osgi.core + osgi.core provided diff --git a/features/alarms/history/pom.xml b/features/alarms/history/pom.xml index bc46c3a2ae74..ff23ca4d7b5f 100644 --- a/features/alarms/history/pom.xml +++ b/features/alarms/history/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.alarms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.alarms diff --git a/features/alarms/history/rest/api/pom.xml b/features/alarms/history/rest/api/pom.xml index da4f713e5596..2f4bcba068a9 100644 --- a/features/alarms/history/rest/api/pom.xml +++ b/features/alarms/history/rest/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.alarms.history org.opennms.features.alarms.history.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.alarms.history.rest diff --git a/features/alarms/history/rest/impl/pom.xml b/features/alarms/history/rest/impl/pom.xml index d2d1911124f3..5f40841938da 100644 --- a/features/alarms/history/rest/impl/pom.xml +++ b/features/alarms/history/rest/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.alarms.history org.opennms.features.alarms.history.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.alarms.history.rest diff --git a/features/alarms/history/rest/pom.xml b/features/alarms/history/rest/pom.xml index 64ce7aa32019..2987c8b25743 100644 --- a/features/alarms/history/rest/pom.xml +++ b/features/alarms/history/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.alarms org.opennms.features.alarms.history - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.alarms.history diff --git a/features/alarms/pom.xml b/features/alarms/pom.xml index 4b8b87536598..2cda1614e9f0 100644 --- a/features/alarms/pom.xml +++ b/features/alarms/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/amqp/alarm-northbounder/pom.xml b/features/amqp/alarm-northbounder/pom.xml index 37a52036cb2e..5a3b9971d1b4 100644 --- a/features/amqp/alarm-northbounder/pom.xml +++ b/features/amqp/alarm-northbounder/pom.xml @@ -9,7 +9,7 @@ org.opennms.features org.opennms.features.amqp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -60,12 +60,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/amqp/common/pom.xml b/features/amqp/common/pom.xml index eb9c71cc8d9d..b655435e4b23 100644 --- a/features/amqp/common/pom.xml +++ b/features/amqp/common/pom.xml @@ -9,7 +9,7 @@ org.opennms.features org.opennms.features.amqp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -52,12 +52,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/amqp/event-forwarder/pom.xml b/features/amqp/event-forwarder/pom.xml index 0fd825b966a2..098e95d55381 100644 --- a/features/amqp/event-forwarder/pom.xml +++ b/features/amqp/event-forwarder/pom.xml @@ -9,7 +9,7 @@ org.opennms.features org.opennms.features.amqp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -60,12 +60,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/amqp/event-receiver/pom.xml b/features/amqp/event-receiver/pom.xml index f260e02bacf4..8f289f5d500a 100644 --- a/features/amqp/event-receiver/pom.xml +++ b/features/amqp/event-receiver/pom.xml @@ -9,7 +9,7 @@ org.opennms.features org.opennms.features.amqp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -60,12 +60,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/amqp/pom.xml b/features/amqp/pom.xml index 67a8e9865b86..fd4ca38bbad4 100644 --- a/features/amqp/pom.xml +++ b/features/amqp/pom.xml @@ -7,7 +7,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/api-layer/pom.xml b/features/api-layer/pom.xml index 73650bc5e832..7b95b88be962 100644 --- a/features/api-layer/pom.xml +++ b/features/api-layer/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features @@ -53,7 +53,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/bsm/daemon/pom.xml b/features/bsm/daemon/pom.xml index 6b5a9c0ffed4..eaba81c00af9 100644 --- a/features/bsm/daemon/pom.xml +++ b/features/bsm/daemon/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.bsm - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.bsm @@ -30,7 +30,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/bsm/persistence/api/pom.xml b/features/bsm/persistence/api/pom.xml index 72eebe68b6f6..e213f1d475e9 100644 --- a/features/bsm/persistence/api/pom.xml +++ b/features/bsm/persistence/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.bsm org.opennms.features.bsm.persistence - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.bsm.persistence.api diff --git a/features/bsm/persistence/impl/pom.xml b/features/bsm/persistence/impl/pom.xml index 709d93921e3e..669fbb42425b 100644 --- a/features/bsm/persistence/impl/pom.xml +++ b/features/bsm/persistence/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.bsm org.opennms.features.bsm.persistence - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.bsm.persistence.impl diff --git a/features/bsm/persistence/pom.xml b/features/bsm/persistence/pom.xml index 6ccf32cd4eba..4545a39105d1 100644 --- a/features/bsm/persistence/pom.xml +++ b/features/bsm/persistence/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.bsm - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.bsm diff --git a/features/bsm/pom.xml b/features/bsm/pom.xml index 5ddb9b811f0d..3ff1814b1fdb 100644 --- a/features/bsm/pom.xml +++ b/features/bsm/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/bsm/rest/api/pom.xml b/features/bsm/rest/api/pom.xml index 1e4a4a2ce60c..8c16d818d3f5 100644 --- a/features/bsm/rest/api/pom.xml +++ b/features/bsm/rest/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.bsm org.opennms.features.bsm.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.bsm.rest.api diff --git a/features/bsm/rest/impl/pom.xml b/features/bsm/rest/impl/pom.xml index 19dc0dadbeb6..fc9999fdd194 100644 --- a/features/bsm/rest/impl/pom.xml +++ b/features/bsm/rest/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.bsm org.opennms.features.bsm.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.bsm.rest.impl diff --git a/features/bsm/rest/pom.xml b/features/bsm/rest/pom.xml index c8def9eb4226..dbca72a578ca 100644 --- a/features/bsm/rest/pom.xml +++ b/features/bsm/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.bsm - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.bsm diff --git a/features/bsm/service/api/pom.xml b/features/bsm/service/api/pom.xml index 0f3f26cb02ad..6e82942d8445 100644 --- a/features/bsm/service/api/pom.xml +++ b/features/bsm/service/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.bsm org.opennms.features.bsm.service - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.bsm.service.api diff --git a/features/bsm/service/impl/pom.xml b/features/bsm/service/impl/pom.xml index 92276d1de240..a97e38196714 100644 --- a/features/bsm/service/impl/pom.xml +++ b/features/bsm/service/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.bsm org.opennms.features.bsm.service - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.bsm.service.impl diff --git a/features/bsm/service/pom.xml b/features/bsm/service/pom.xml index 9c1823d5da57..5b8d7ae1faa9 100644 --- a/features/bsm/service/pom.xml +++ b/features/bsm/service/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.bsm - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.bsm diff --git a/features/bsm/shell-commands/pom.xml b/features/bsm/shell-commands/pom.xml index 326b1a107ff4..9f38f08c1e86 100644 --- a/features/bsm/shell-commands/pom.xml +++ b/features/bsm/shell-commands/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.bsm - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.bsm @@ -35,7 +35,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/bsm/test-util/pom.xml b/features/bsm/test-util/pom.xml index 1b8c023d8710..56243ac6389a 100644 --- a/features/bsm/test-util/pom.xml +++ b/features/bsm/test-util/pom.xml @@ -5,7 +5,7 @@ org.opennms.features org.opennms.features.bsm - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.bsm test-util diff --git a/features/bsm/vaadin-adminpage/pom.xml b/features/bsm/vaadin-adminpage/pom.xml index 1d0d11e2d628..8a4434e9aed2 100644 --- a/features/bsm/vaadin-adminpage/pom.xml +++ b/features/bsm/vaadin-adminpage/pom.xml @@ -5,7 +5,7 @@ org.opennms.features org.opennms.features.bsm - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.bsm vaadin-adminpage @@ -60,12 +60,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/collection/api/pom.xml b/features/collection/api/pom.xml index 4b80729a9846..3c2ae50607f0 100644 --- a/features/collection/api/pom.xml +++ b/features/collection/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection diff --git a/features/collection/api/src/test/java/org/opennms/netmgt/collection/support/GenericTypeResourceTest.java b/features/collection/api/src/test/java/org/opennms/netmgt/collection/support/GenericTypeResourceTest.java index 5410b173e1ed..67f7538e0bcc 100644 --- a/features/collection/api/src/test/java/org/opennms/netmgt/collection/support/GenericTypeResourceTest.java +++ b/features/collection/api/src/test/java/org/opennms/netmgt/collection/support/GenericTypeResourceTest.java @@ -69,7 +69,6 @@ public void canSanitizeResourcePath() { assertEquals("instance_", getInstanceInResourcePath("instance]")); assertEquals("instance__", getInstanceInResourcePath("instance]]")); // Other characters that may be illegal in Windows paths are NOT currently filtered - assertEquals("instance/", getInstanceInResourcePath("instance/")); assertEquals("instance*", getInstanceInResourcePath("instance*")); assertEquals("instance|", getInstanceInResourcePath("instance|")); assertEquals("instance<", getInstanceInResourcePath("instance<")); diff --git a/features/collection/client-rpc/pom.xml b/features/collection/client-rpc/pom.xml index a9a80bbc0142..812687189966 100644 --- a/features/collection/client-rpc/pom.xml +++ b/features/collection/client-rpc/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection diff --git a/features/collection/collectors/pom.xml b/features/collection/collectors/pom.xml index ed4a720de261..68ad4b58c23b 100644 --- a/features/collection/collectors/pom.xml +++ b/features/collection/collectors/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection diff --git a/features/collection/core/pom.xml b/features/collection/core/pom.xml index 4557cf5dbf70..c2ae21c0546c 100644 --- a/features/collection/core/pom.xml +++ b/features/collection/core/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection diff --git a/features/collection/persistence-osgi/pom.xml b/features/collection/persistence-osgi/pom.xml index a5f0641b7e3c..0d20dd6e3195 100644 --- a/features/collection/persistence-osgi/pom.xml +++ b/features/collection/persistence-osgi/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection diff --git a/features/collection/persistence-rrd/pom.xml b/features/collection/persistence-rrd/pom.xml index 5cd3de002be0..11d7b0deb8f0 100644 --- a/features/collection/persistence-rrd/pom.xml +++ b/features/collection/persistence-rrd/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection diff --git a/features/collection/persistence-tcp/pom.xml b/features/collection/persistence-tcp/pom.xml index 9e6c8ae3daa1..f7bcde904351 100644 --- a/features/collection/persistence-tcp/pom.xml +++ b/features/collection/persistence-tcp/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection diff --git a/features/collection/pom.xml b/features/collection/pom.xml index 7e23ab6e2872..ee6a05c302dd 100644 --- a/features/collection/pom.xml +++ b/features/collection/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/collection/sampler/pom.xml b/features/collection/sampler/pom.xml index 3f55c6471200..100f22217ebf 100644 --- a/features/collection/sampler/pom.xml +++ b/features/collection/sampler/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection diff --git a/features/collection/shell-commands/pom.xml b/features/collection/shell-commands/pom.xml index 8a8d987033b7..641069ed4d00 100644 --- a/features/collection/shell-commands/pom.xml +++ b/features/collection/shell-commands/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection @@ -56,7 +56,7 @@ org.osgi - org.osgi.enterprise + osgi.enterprise provided diff --git a/features/collection/snmp-collector/pom.xml b/features/collection/snmp-collector/pom.xml index f43f8999f172..b5357db65bca 100644 --- a/features/collection/snmp-collector/pom.xml +++ b/features/collection/snmp-collector/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection diff --git a/features/collection/test-api/pom.xml b/features/collection/test-api/pom.xml index e61f543f9485..21a9affd1a63 100644 --- a/features/collection/test-api/pom.xml +++ b/features/collection/test-api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection diff --git a/features/collection/thresholding/api/pom.xml b/features/collection/thresholding/api/pom.xml index 808923cd4719..02a0df018199 100644 --- a/features/collection/thresholding/api/pom.xml +++ b/features/collection/thresholding/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.collection org.opennms.features.collection.thresholding - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection.thresholding.api diff --git a/features/collection/thresholding/impl/pom.xml b/features/collection/thresholding/impl/pom.xml index 3683d464b967..759d51dedb24 100644 --- a/features/collection/thresholding/impl/pom.xml +++ b/features/collection/thresholding/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.collection org.opennms.features.collection.thresholding - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection diff --git a/features/collection/thresholding/itests/pom.xml b/features/collection/thresholding/itests/pom.xml index 1bf0f98865f7..b021342eb437 100644 --- a/features/collection/thresholding/itests/pom.xml +++ b/features/collection/thresholding/itests/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.collection.thresholding org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection.thresholding.itests diff --git a/features/collection/thresholding/pom.xml b/features/collection/thresholding/pom.xml index e0c31ff3a8a7..804ccbb1d703 100644 --- a/features/collection/thresholding/pom.xml +++ b/features/collection/thresholding/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection diff --git a/features/collection/thresholding/thresholding-shell/pom.xml b/features/collection/thresholding/thresholding-shell/pom.xml index a5532db84461..11e0cdebe595 100644 --- a/features/collection/thresholding/thresholding-shell/pom.xml +++ b/features/collection/thresholding/thresholding-shell/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.collection.thresholding org.opennms.features.collection - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.collection.thresholding.shell diff --git a/features/container/minion/pom.xml b/features/container/minion/pom.xml index b9c1e4e85b10..f292f9a4cdbf 100644 --- a/features/container/minion/pom.xml +++ b/features/container/minion/pom.xml @@ -4,7 +4,7 @@ org.opennms.features container-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.container diff --git a/features/container/pom.xml b/features/container/pom.xml index 1e18fbae246f..b95ad74086b5 100644 --- a/features/container/pom.xml +++ b/features/container/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/container/sentinel/pom.xml b/features/container/sentinel/pom.xml index 68fe193e2581..8c07cada5314 100644 --- a/features/container/sentinel/pom.xml +++ b/features/container/sentinel/pom.xml @@ -4,7 +4,7 @@ org.opennms.features container-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.container diff --git a/features/container/sentinel/src/main/filtered-resources/etc/org.apache.karaf.features.cfg b/features/container/sentinel/src/main/filtered-resources/etc/org.apache.karaf.features.cfg index e1567ef21e54..e49aedb1ef7c 100644 --- a/features/container/sentinel/src/main/filtered-resources/etc/org.apache.karaf.features.cfg +++ b/features/container/sentinel/src/main/filtered-resources/etc/org.apache.karaf.features.cfg @@ -22,11 +22,11 @@ # featuresRepositories = \ mvn:org.apache.karaf.features/framework/${karafVersion}/xml/features, \ - mvn:org.apache.karaf.features/spring/${karafVersion}/xml/features, \ + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring, \ + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring-legacy, \ mvn:org.opennms.karaf/opennms/${project.version}/xml/karaf-extensions, \ mvn:org.opennms.karaf/opennms/${project.version}/xml/sentinel, \ - mvn:org.apache.karaf.features/standard/${karafVersion}/xml/features, \ - mvn:org.apache.karaf.features/spring-legacy/${karafVersion}/xml/features + mvn:org.apache.karaf.features/standard/${karafVersion}/xml/features # # Comma separated list of features to install at startup diff --git a/features/datachoices/pom.xml b/features/datachoices/pom.xml index de5750907971..6a9a6208dc51 100644 --- a/features/datachoices/pom.xml +++ b/features/datachoices/pom.xml @@ -5,7 +5,7 @@ org.opennms.features org.opennms - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features datachoices diff --git a/features/dhcpd/pom.xml b/features/dhcpd/pom.xml index f75512af0335..e31b49948a88 100644 --- a/features/dhcpd/pom.xml +++ b/features/dhcpd/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/discovery/pom.xml b/features/discovery/pom.xml index 6d60f0b5df4f..ea050490b7d9 100644 --- a/features/discovery/pom.xml +++ b/features/discovery/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/discovery/src/test/java/org/opennms/netmgt/discovery/DiscoveryIntegrationIT.java b/features/discovery/src/test/java/org/opennms/netmgt/discovery/DiscoveryIntegrationIT.java index 38526cbe192e..97c37cb0c650 100644 --- a/features/discovery/src/test/java/org/opennms/netmgt/discovery/DiscoveryIntegrationIT.java +++ b/features/discovery/src/test/java/org/opennms/netmgt/discovery/DiscoveryIntegrationIT.java @@ -30,6 +30,7 @@ import static org.junit.Assert.assertTrue; import static org.opennms.core.utils.InetAddressUtils.str; +import static org.opennms.core.utils.LocationUtils.DEFAULT_LOCATION_NAME; import java.util.Date; import java.util.stream.StreamSupport; @@ -145,8 +146,13 @@ public void testDiscovery() throws Exception { anticipator.waitForAnticipated(120000); anticipator.verifyAnticipated(); anticipator.getAnticipatedEventsReceived().stream().forEach(eachEvent -> { + String location = CUSTOM_LOCATION; + if ("127.0.0.1".equals(eachEvent.getInterface().toString())) { + // the default foreign source has 127.0.0.1 for JVM monitoring + location = DEFAULT_LOCATION_NAME; + } Assert.assertNotNull(eachEvent.getParm("location")); - Assert.assertEquals(CUSTOM_LOCATION, eachEvent.getParm("location").getValue().getContent()); + Assert.assertEquals(location, eachEvent.getParm("location").getValue().getContent()); }); m_discovery.stop(); diff --git a/features/distributed/collection/pom.xml b/features/distributed/collection/pom.xml index 6df568b9fd13..2de9fc6037e3 100644 --- a/features/distributed/collection/pom.xml +++ b/features/distributed/collection/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.distributed distributed-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed diff --git a/features/distributed/coordination/api/pom.xml b/features/distributed/coordination/api/pom.xml index d35c60086a4b..78c7a8830e92 100644 --- a/features/distributed/coordination/api/pom.xml +++ b/features/distributed/coordination/api/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed coordination-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 coordination-api diff --git a/features/distributed/coordination/common/pom.xml b/features/distributed/coordination/common/pom.xml index 7d9c8171fca8..4f2071120bd2 100644 --- a/features/distributed/coordination/common/pom.xml +++ b/features/distributed/coordination/common/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed coordination-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 coordination-common diff --git a/features/distributed/coordination/pom.xml b/features/distributed/coordination/pom.xml index a93df1c56633..8dcd28bd5152 100644 --- a/features/distributed/coordination/pom.xml +++ b/features/distributed/coordination/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed distributed-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 coordination-parent diff --git a/features/distributed/coordination/shell/pom.xml b/features/distributed/coordination/shell/pom.xml index 756013980be0..eb458321b15c 100644 --- a/features/distributed/coordination/shell/pom.xml +++ b/features/distributed/coordination/shell/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed coordination-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 coordination-shell diff --git a/features/distributed/coordination/zookeeper/pom.xml b/features/distributed/coordination/zookeeper/pom.xml index f4fa3a92f78d..42af826b076b 100644 --- a/features/distributed/coordination/zookeeper/pom.xml +++ b/features/distributed/coordination/zookeeper/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed coordination-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 coordination-zookeeper diff --git a/features/distributed/core/api/pom.xml b/features/distributed/core/api/pom.xml index f1bfbe358ef8..1050bf9681ae 100644 --- a/features/distributed/core/api/pom.xml +++ b/features/distributed/core/api/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.distributed core-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 core-api diff --git a/features/distributed/core/impl/pom.xml b/features/distributed/core/impl/pom.xml index 30d85423d4a2..db2f205082d5 100644 --- a/features/distributed/core/impl/pom.xml +++ b/features/distributed/core/impl/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.distributed core-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 core-impl @@ -42,7 +42,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/distributed/core/jms/pom.xml b/features/distributed/core/jms/pom.xml index fcb7a8be15de..2087e6bcdcba 100644 --- a/features/distributed/core/jms/pom.xml +++ b/features/distributed/core/jms/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.distributed core-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 jms diff --git a/features/distributed/core/pom.xml b/features/distributed/core/pom.xml index 297b07adc324..9620ca6170ac 100644 --- a/features/distributed/core/pom.xml +++ b/features/distributed/core/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.distributed distributed-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 core-parent diff --git a/features/distributed/core/shell/pom.xml b/features/distributed/core/shell/pom.xml index fe0ef68e9209..7690f4c88fa3 100644 --- a/features/distributed/core/shell/pom.xml +++ b/features/distributed/core/shell/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.distributed core-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 shell @@ -39,7 +39,7 @@ org.osgi - org.osgi.core + osgi.core provided
diff --git a/features/distributed/dao/api/pom.xml b/features/distributed/dao/api/pom.xml index ac991e636a6f..394edb2d8dcd 100644 --- a/features/distributed/dao/api/pom.xml +++ b/features/distributed/dao/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.distributed org.opennms.features.distributed.dao - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed diff --git a/features/distributed/dao/distributed/pom.xml b/features/distributed/dao/distributed/pom.xml index 8d6f6bc78c0d..b8385233704f 100644 --- a/features/distributed/dao/distributed/pom.xml +++ b/features/distributed/dao/distributed/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.distributed org.opennms.features.distributed.dao - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed diff --git a/features/distributed/dao/healthcheck/pom.xml b/features/distributed/dao/healthcheck/pom.xml index e483d578a6dd..845f2a6e8808 100644 --- a/features/distributed/dao/healthcheck/pom.xml +++ b/features/distributed/dao/healthcheck/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.distributed org.opennms.features.distributed.dao - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed diff --git a/features/distributed/dao/impl/pom.xml b/features/distributed/dao/impl/pom.xml index 4d12ecde61d4..ef1b7f5cfb32 100644 --- a/features/distributed/dao/impl/pom.xml +++ b/features/distributed/dao/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.distributed org.opennms.features.distributed.dao - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed diff --git a/features/distributed/dao/pom.xml b/features/distributed/dao/pom.xml index d3b07e9b1814..13f5d29446be 100644 --- a/features/distributed/dao/pom.xml +++ b/features/distributed/dao/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.distributed distributed-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.dao diff --git a/features/distributed/dao/shell/pom.xml b/features/distributed/dao/shell/pom.xml index 60e4174fd57c..d24656444461 100644 --- a/features/distributed/dao/shell/pom.xml +++ b/features/distributed/dao/shell/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.distributed org.opennms.features.distributed.dao - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed diff --git a/features/distributed/dao/test/pom.xml b/features/distributed/dao/test/pom.xml index 1e733c4bdedc..9188a21a93da 100644 --- a/features/distributed/dao/test/pom.xml +++ b/features/distributed/dao/test/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.distributed org.opennms.features.distributed.dao - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed @@ -32,7 +32,7 @@
org.osgi - org.osgi.core + osgi.core ${osgiVersion}
diff --git a/features/distributed/datasource/pom.xml b/features/distributed/datasource/pom.xml index 1a4ee074ca41..13ba0c6920a6 100644 --- a/features/distributed/datasource/pom.xml +++ b/features/distributed/datasource/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.distributed distributed-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed @@ -31,7 +31,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/distributed/distributed-cassandra/cassandra-api/pom.xml b/features/distributed/distributed-cassandra/cassandra-api/pom.xml index 575b7502e46c..a37f8b00d71e 100644 --- a/features/distributed/distributed-cassandra/cassandra-api/pom.xml +++ b/features/distributed/distributed-cassandra/cassandra-api/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.cassandra org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.cassandra.api diff --git a/features/distributed/distributed-cassandra/newts-impl/pom.xml b/features/distributed/distributed-cassandra/newts-impl/pom.xml index 97cff2de92e8..bf0e0914f5e0 100644 --- a/features/distributed/distributed-cassandra/newts-impl/pom.xml +++ b/features/distributed/distributed-cassandra/newts-impl/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.cassandra org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.cassandra.newts-impl diff --git a/features/distributed/distributed-cassandra/pom.xml b/features/distributed/distributed-cassandra/pom.xml index f4399ff4ece5..14916daa005c 100644 --- a/features/distributed/distributed-cassandra/pom.xml +++ b/features/distributed/distributed-cassandra/pom.xml @@ -5,7 +5,7 @@ distributed-parent org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.cassandra diff --git a/features/distributed/kv-store/api/pom.xml b/features/distributed/kv-store/api/pom.xml index f392724f8ca6..67cad1651d87 100644 --- a/features/distributed/kv-store/api/pom.xml +++ b/features/distributed/kv-store/api/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.kv-store.api diff --git a/features/distributed/kv-store/blob/blob-itests/pom.xml b/features/distributed/kv-store/blob/blob-itests/pom.xml index d00baea8fc63..a2ae8c86df63 100644 --- a/features/distributed/kv-store/blob/blob-itests/pom.xml +++ b/features/distributed/kv-store/blob/blob-itests/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store.blob org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.kv-store.blob.itests diff --git a/features/distributed/kv-store/blob/blob-shell/pom.xml b/features/distributed/kv-store/blob/blob-shell/pom.xml index f0e84034bd60..a147ef0433b2 100644 --- a/features/distributed/kv-store/blob/blob-shell/pom.xml +++ b/features/distributed/kv-store/blob/blob-shell/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store.blob org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.kv-store.blob.shell diff --git a/features/distributed/kv-store/blob/cassandra/pom.xml b/features/distributed/kv-store/blob/cassandra/pom.xml index 61dcda9b25c1..55b38260c896 100644 --- a/features/distributed/kv-store/blob/cassandra/pom.xml +++ b/features/distributed/kv-store/blob/cassandra/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store.blob org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.kv-store.blob.cassandra diff --git a/features/distributed/kv-store/blob/in-memory/pom.xml b/features/distributed/kv-store/blob/in-memory/pom.xml index eb6c4e67a16f..8ea64ee6d272 100644 --- a/features/distributed/kv-store/blob/in-memory/pom.xml +++ b/features/distributed/kv-store/blob/in-memory/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store.blob org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.kv-store.blob.in-memory diff --git a/features/distributed/kv-store/blob/no-op/pom.xml b/features/distributed/kv-store/blob/no-op/pom.xml index 866dc046fc77..f88404949e96 100644 --- a/features/distributed/kv-store/blob/no-op/pom.xml +++ b/features/distributed/kv-store/blob/no-op/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store.blob org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.kv-store.blob.no-op diff --git a/features/distributed/kv-store/blob/pom.xml b/features/distributed/kv-store/blob/pom.xml index 97e234542bf8..e4dedae602b9 100644 --- a/features/distributed/kv-store/blob/pom.xml +++ b/features/distributed/kv-store/blob/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.kv-store.blob diff --git a/features/distributed/kv-store/blob/postgres-impl/pom.xml b/features/distributed/kv-store/blob/postgres-impl/pom.xml index 149f9c3c7494..73a83deb92b0 100644 --- a/features/distributed/kv-store/blob/postgres-impl/pom.xml +++ b/features/distributed/kv-store/blob/postgres-impl/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store.blob org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 bundle diff --git a/features/distributed/kv-store/json/json-shell/pom.xml b/features/distributed/kv-store/json/json-shell/pom.xml index 1d4610213b07..0e4b9a499be3 100644 --- a/features/distributed/kv-store/json/json-shell/pom.xml +++ b/features/distributed/kv-store/json/json-shell/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store.json org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.kv-store.json.shell diff --git a/features/distributed/kv-store/json/noop/pom.xml b/features/distributed/kv-store/json/noop/pom.xml index 7c0e1a3c336d..44e229827626 100644 --- a/features/distributed/kv-store/json/noop/pom.xml +++ b/features/distributed/kv-store/json/noop/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store.json org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.kv-store.json.noop diff --git a/features/distributed/kv-store/json/pom.xml b/features/distributed/kv-store/json/pom.xml index 8150da8e5132..c130c0e75dc5 100644 --- a/features/distributed/kv-store/json/pom.xml +++ b/features/distributed/kv-store/json/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.kv-store.json diff --git a/features/distributed/kv-store/json/postgres/pom.xml b/features/distributed/kv-store/json/postgres/pom.xml index ae370dbbfd3f..fd1a538bbf4c 100644 --- a/features/distributed/kv-store/json/postgres/pom.xml +++ b/features/distributed/kv-store/json/postgres/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store.json org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.distributed.kv-store.json.postgres 4.0.0 diff --git a/features/distributed/kv-store/pom.xml b/features/distributed/kv-store/pom.xml index f4d24fed86ca..66dd6fc2b340 100644 --- a/features/distributed/kv-store/pom.xml +++ b/features/distributed/kv-store/pom.xml @@ -5,7 +5,7 @@ distributed-parent org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/distributed/kv-store/postgres-shared/pom.xml b/features/distributed/kv-store/postgres-shared/pom.xml index 71c368bb6f78..f0395e713c93 100644 --- a/features/distributed/kv-store/postgres-shared/pom.xml +++ b/features/distributed/kv-store/postgres-shared/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed.kv-store org.opennms.features.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed.kv-store.postgres-shared diff --git a/features/distributed/opennms-identity/pom.xml b/features/distributed/opennms-identity/pom.xml index 2b1afd6cd0ce..2233354cb359 100644 --- a/features/distributed/opennms-identity/pom.xml +++ b/features/distributed/opennms-identity/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.distributed distributed-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/distributed/pom.xml b/features/distributed/pom.xml index 72e6a254864c..1ed2d80a4eaa 100644 --- a/features/distributed/pom.xml +++ b/features/distributed/pom.xml @@ -8,7 +8,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed diff --git a/features/distributed/service-registry/pom.xml b/features/distributed/service-registry/pom.xml index 81ea937ecc57..16807deb32c1 100644 --- a/features/distributed/service-registry/pom.xml +++ b/features/distributed/service-registry/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.distributed distributed-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.distributed diff --git a/features/dnsresolver/api/pom.xml b/features/dnsresolver/api/pom.xml index 48542b8f1017..2b92ea928bbe 100644 --- a/features/dnsresolver/api/pom.xml +++ b/features/dnsresolver/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.dnsresolver - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.dnsresolver diff --git a/features/dnsresolver/netty/pom.xml b/features/dnsresolver/netty/pom.xml index 1d02aa1da470..af1058ce6e42 100644 --- a/features/dnsresolver/netty/pom.xml +++ b/features/dnsresolver/netty/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.dnsresolver - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.dnsresolver @@ -45,7 +45,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/dnsresolver/pom.xml b/features/dnsresolver/pom.xml index c663c8dfbd2b..90790f9ea0de 100644 --- a/features/dnsresolver/pom.xml +++ b/features/dnsresolver/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/dnsresolver/shell/pom.xml b/features/dnsresolver/shell/pom.xml index b4ee69cdbfe2..5d1449803f43 100644 --- a/features/dnsresolver/shell/pom.xml +++ b/features/dnsresolver/shell/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.dnsresolver - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.dnsresolver @@ -40,7 +40,7 @@ org.osgi - org.osgi.enterprise + osgi.enterprise provided diff --git a/features/eif-adapter/pom.xml b/features/eif-adapter/pom.xml index 365ab52db7c5..bfa9068dfd91 100644 --- a/features/eif-adapter/pom.xml +++ b/features/eif-adapter/pom.xml @@ -9,7 +9,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -59,7 +59,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/eif-adapter/src/test/java/org/opennms/features/eifadapter/EifTranslatorTest.java b/features/eif-adapter/src/test/java/org/opennms/features/eifadapter/EifTranslatorTest.java index 646104c0de3e..1a6034a22a54 100644 --- a/features/eif-adapter/src/test/java/org/opennms/features/eifadapter/EifTranslatorTest.java +++ b/features/eif-adapter/src/test/java/org/opennms/features/eifadapter/EifTranslatorTest.java @@ -43,6 +43,7 @@ import org.junit.runner.RunWith; import org.opennms.core.test.MockLogAppender; import org.opennms.core.test.OpenNMSJUnit4ClassRunner; +import org.opennms.core.utils.InetAddressUtils; import org.opennms.netmgt.dao.mock.MockMonitoringLocationDao; import org.opennms.netmgt.dao.mock.MockNodeDao; import org.opennms.netmgt.model.OnmsNode; @@ -74,7 +75,14 @@ public void setUp() throws UnknownHostException { OnmsNode fqhostnameNode = new OnmsNode(m_locationDao.getDefaultLocation(), "localhost.localdomain"); OnmsNode shortnameNode = new OnmsNode(m_locationDao.getDefaultLocation(), "localhost"); OnmsNode originNode = new OnmsNode(m_locationDao.getDefaultLocation(), "10.0.0.7"); - OnmsNode localhostIpNode = new OnmsNode(m_locationDao.getDefaultLocation(), Address.getHostName(InetAddress.getLocalHost())); + OnmsNode localhostIpNode = null; + try { + final InetAddress localAddr = Address.getByName("localhost"); + System.err.println("localAddr=" + localAddr); + localhostIpNode = new OnmsNode(m_locationDao.getDefaultLocation(), InetAddressUtils.str(localAddr)); + } catch (final Exception e) { + localhostIpNode = new OnmsNode(m_locationDao.getDefaultLocation(), "127.0.0.1"); + } fqhostnameNode.setForeignSource("eifTestSource"); fqhostnameNode.setForeignId("eifTestId"); diff --git a/features/endpoints/grafana/api/pom.xml b/features/endpoints/grafana/api/pom.xml index 3f37ec18021d..a65ed4e466b4 100644 --- a/features/endpoints/grafana/api/pom.xml +++ b/features/endpoints/grafana/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.endpoints org.opennms.features.endpoints.grafana - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.endpoints.grafana diff --git a/features/endpoints/grafana/client/pom.xml b/features/endpoints/grafana/client/pom.xml index e033bbf38bfe..1f69bdc40cec 100644 --- a/features/endpoints/grafana/client/pom.xml +++ b/features/endpoints/grafana/client/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.endpoints org.opennms.features.endpoints.grafana - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.endpoints.grafana diff --git a/features/endpoints/grafana/persistence/api/pom.xml b/features/endpoints/grafana/persistence/api/pom.xml index 2768be3b8065..07d4c95be345 100644 --- a/features/endpoints/grafana/persistence/api/pom.xml +++ b/features/endpoints/grafana/persistence/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.endpoints.grafana org.opennms.features.endpoints.grafana.persistence - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.endpoints.grafana.persistence diff --git a/features/endpoints/grafana/persistence/impl/pom.xml b/features/endpoints/grafana/persistence/impl/pom.xml index 4d540d0f0bff..663c750ccfec 100644 --- a/features/endpoints/grafana/persistence/impl/pom.xml +++ b/features/endpoints/grafana/persistence/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.endpoints.grafana org.opennms.features.endpoints.grafana.persistence - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.endpoints.grafana.persistence diff --git a/features/endpoints/grafana/persistence/pom.xml b/features/endpoints/grafana/persistence/pom.xml index 4717c6d9f368..1760c0ac8fc4 100644 --- a/features/endpoints/grafana/persistence/pom.xml +++ b/features/endpoints/grafana/persistence/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.endpoints org.opennms.features.endpoints.grafana - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.endpoints.grafana diff --git a/features/endpoints/grafana/pom.xml b/features/endpoints/grafana/pom.xml index 8da03bc26f25..4e1442e3c16c 100644 --- a/features/endpoints/grafana/pom.xml +++ b/features/endpoints/grafana/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.endpoints - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.endpoints diff --git a/features/endpoints/grafana/rest/pom.xml b/features/endpoints/grafana/rest/pom.xml index ab9a20dba6dc..4cb3bbb31988 100644 --- a/features/endpoints/grafana/rest/pom.xml +++ b/features/endpoints/grafana/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.endpoints org.opennms.features.endpoints.grafana - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.endpoints.grafana diff --git a/features/endpoints/grafana/service/pom.xml b/features/endpoints/grafana/service/pom.xml index 96f1eac0f52b..26bed39c57a0 100644 --- a/features/endpoints/grafana/service/pom.xml +++ b/features/endpoints/grafana/service/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.endpoints org.opennms.features.endpoints.grafana - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.endpoints.grafana diff --git a/features/endpoints/pom.xml b/features/endpoints/pom.xml index c564107122f8..9c578cdea4e4 100644 --- a/features/endpoints/pom.xml +++ b/features/endpoints/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/enlinkd/adapters/collectors/bridge/pom.xml b/features/enlinkd/adapters/collectors/bridge/pom.xml index 373a68c59270..13465fa621c9 100644 --- a/features/enlinkd/adapters/collectors/bridge/pom.xml +++ b/features/enlinkd/adapters/collectors/bridge/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters.collectors - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.collectors.bridge diff --git a/features/enlinkd/adapters/collectors/bridge/src/main/java/org/opennms/netmgt/enlinkd/snmp/Dot1dBasePortIfIndexGetter.java b/features/enlinkd/adapters/collectors/bridge/src/main/java/org/opennms/netmgt/enlinkd/snmp/Dot1dBasePortIfIndexGetter.java index 1bb5baab70c6..ed49cdf664b7 100644 --- a/features/enlinkd/adapters/collectors/bridge/src/main/java/org/opennms/netmgt/enlinkd/snmp/Dot1dBasePortIfIndexGetter.java +++ b/features/enlinkd/adapters/collectors/bridge/src/main/java/org/opennms/netmgt/enlinkd/snmp/Dot1dBasePortIfIndexGetter.java @@ -37,8 +37,8 @@ public class Dot1dBasePortIfIndexGetter extends SnmpGetter { public final static SnmpObjId DOT1DBASE_PORT_IFINDEX = SnmpObjId.get(".1.3.6.1.2.1.17.1.4.1.2"); - public Dot1dBasePortIfIndexGetter(SnmpAgentConfig peer,LocationAwareSnmpClient client, String location,Integer nodeid) { - super(peer, client,location,nodeid); + public Dot1dBasePortIfIndexGetter(SnmpAgentConfig peer,LocationAwareSnmpClient client, String location) { + super(peer, client, location); } public SnmpValue get(Integer bridgeport) { diff --git a/features/enlinkd/adapters/collectors/cdp/pom.xml b/features/enlinkd/adapters/collectors/cdp/pom.xml index 41d7eb6fd572..3e7757f2dc75 100644 --- a/features/enlinkd/adapters/collectors/cdp/pom.xml +++ b/features/enlinkd/adapters/collectors/cdp/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters.collectors - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.collectors.cdp diff --git a/features/enlinkd/adapters/collectors/cdp/src/main/java/org/opennms/netmgt/enlinkd/NodeDiscoveryCdp.java b/features/enlinkd/adapters/collectors/cdp/src/main/java/org/opennms/netmgt/enlinkd/NodeDiscoveryCdp.java index babb2fba797d..9f6053cbf6b6 100644 --- a/features/enlinkd/adapters/collectors/cdp/src/main/java/org/opennms/netmgt/enlinkd/NodeDiscoveryCdp.java +++ b/features/enlinkd/adapters/collectors/cdp/src/main/java/org/opennms/netmgt/enlinkd/NodeDiscoveryCdp.java @@ -132,8 +132,7 @@ public void processCdpCacheRow(final CdpCacheRow row) { } final CdpInterfacePortNameGetter cdpInterfacePortNameGetter = new CdpInterfacePortNameGetter(peer, getLocationAwareSnmpClient(), - getLocation(), - getNodeId()); + getLocation()); for (CdpLink link: links) m_cdpTopologyService.store(getNodeId(),cdpInterfacePortNameGetter.get(link)); diff --git a/features/enlinkd/adapters/collectors/cdp/src/main/java/org/opennms/netmgt/enlinkd/snmp/CdpInterfacePortNameGetter.java b/features/enlinkd/adapters/collectors/cdp/src/main/java/org/opennms/netmgt/enlinkd/snmp/CdpInterfacePortNameGetter.java index 7ca3fc4cd762..36a7e8d72b43 100644 --- a/features/enlinkd/adapters/collectors/cdp/src/main/java/org/opennms/netmgt/enlinkd/snmp/CdpInterfacePortNameGetter.java +++ b/features/enlinkd/adapters/collectors/cdp/src/main/java/org/opennms/netmgt/enlinkd/snmp/CdpInterfacePortNameGetter.java @@ -42,8 +42,8 @@ public class CdpInterfacePortNameGetter extends SnmpGetter { /** * The SnmpPeer object used to communicate via SNMP with the remote host. */ - public CdpInterfacePortNameGetter(SnmpAgentConfig peer, LocationAwareSnmpClient client, String location, Integer nodeid) { - super(peer, client,location,nodeid); + public CdpInterfacePortNameGetter(SnmpAgentConfig peer, LocationAwareSnmpClient client, String location) { + super(peer, client,location); } public CdpLink get(CdpLink link) { diff --git a/features/enlinkd/adapters/collectors/ipnettomedia/pom.xml b/features/enlinkd/adapters/collectors/ipnettomedia/pom.xml index 8236932e79cc..2e4fb38ea32c 100644 --- a/features/enlinkd/adapters/collectors/ipnettomedia/pom.xml +++ b/features/enlinkd/adapters/collectors/ipnettomedia/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters.collectors - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.collectors.ipnettomedia diff --git a/features/enlinkd/adapters/collectors/isis/pom.xml b/features/enlinkd/adapters/collectors/isis/pom.xml index 8c3802d8c488..ba8691d28ef6 100644 --- a/features/enlinkd/adapters/collectors/isis/pom.xml +++ b/features/enlinkd/adapters/collectors/isis/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters.collectors - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.collectors.isis diff --git a/features/enlinkd/adapters/collectors/lldp/pom.xml b/features/enlinkd/adapters/collectors/lldp/pom.xml index 5a33c4a73016..a60cd6c8f805 100644 --- a/features/enlinkd/adapters/collectors/lldp/pom.xml +++ b/features/enlinkd/adapters/collectors/lldp/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters.collectors - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.collectors.lldp diff --git a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/NodeDiscoveryLldp.java b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/NodeDiscoveryLldp.java index dd5f1d6adc25..58d38cc86791 100644 --- a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/NodeDiscoveryLldp.java +++ b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/NodeDiscoveryLldp.java @@ -28,24 +28,29 @@ package org.opennms.netmgt.enlinkd; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.concurrent.ExecutionException; - import org.opennms.core.utils.LldpUtils.LldpChassisIdSubType; import org.opennms.netmgt.enlinkd.common.NodeCollector; -import org.opennms.netmgt.enlinkd.model.LldpLink; import org.opennms.netmgt.enlinkd.service.api.LldpTopologyService; import org.opennms.netmgt.enlinkd.service.api.Node; import org.opennms.netmgt.enlinkd.snmp.LldpLocPortGetter; import org.opennms.netmgt.enlinkd.snmp.LldpLocalGroupTracker; import org.opennms.netmgt.enlinkd.snmp.LldpRemTableTracker; +import org.opennms.netmgt.enlinkd.snmp.MtxrLldpRemTableTracker; +import org.opennms.netmgt.enlinkd.snmp.MtxrLldpLocalTableTracker; +import org.opennms.netmgt.enlinkd.snmp.MtxrNeighborTableTracker; +import org.opennms.netmgt.enlinkd.snmp.TimeTetraLldpLocPortGetter; +import org.opennms.netmgt.enlinkd.snmp.TimeTetraLldpRemTableTracker; + import org.opennms.netmgt.snmp.SnmpAgentConfig; import org.opennms.netmgt.snmp.proxy.LocationAwareSnmpClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.concurrent.ExecutionException; + /** * This class is designed to collect the necessary SNMP information from the * target address and store the collected information. When the class is @@ -60,16 +65,17 @@ public final class NodeDiscoveryLldp extends NodeCollector { private static final String DW_NULL_CHASSIS_ID="cf"; private static final String DW_NULL_SYSOID_ID="NuDesign"; + private static final String TIMETETRA_SYSOID=".1.3.6.1.4.1.6527"; + + private static final String MTXR_SYSOID=".1.3.6.1.4.1.14988"; + private final LldpTopologyService m_lldpTopologyService; /** * Constructs a new SNMP collector for Lldp Node Discovery. * The collection does not occur until the - * run method is invoked. - * - * @param EnhancedLinkd linkd - * - * @param LinkableNode node + * collect method is invoked. * + * */ public NodeDiscoveryLldp( final LldpTopologyService lldpTopologyService, @@ -105,72 +111,192 @@ public void collect() { } if (lldpLocalGroup.getLldpLocChassisid() == null ) { - LOG.info( "run: node[{}]: LLDP_MIB not supported", - getNodeId()); + if (walkMtrx(peer,lldpLocalGroup.getLldpLocSysname())) { + m_lldpTopologyService.reconcile(getNodeId(), now); + return; + } + LOG.info("run: node[{}]: LLDP_MIB not supported", + getNodeId()); return; - } else { - LOG.debug( "run: node[{}]: lldp identifier : {}", + } + LOG.debug( "run: node[{}]: lldp identifier : {}", getNodeId(), lldpLocalGroup.getLldpElement().getLldpChassisId()); - } m_lldpTopologyService.store(getNodeId(), lldpLocalGroup.getLldpElement()); + if (isInactiveDragonWave(lldpLocalGroup)) { + m_lldpTopologyService.reconcile(getNodeId(),now); + return; + } + + if (!walkLldpRemTable(peer)) { + if (getSysoid() != null && getSysoid().startsWith(TIMETETRA_SYSOID)) { + walkTimeTetra(peer); + } + } + m_lldpTopologyService.reconcile(getNodeId(), now); + } + + private boolean isInactiveDragonWave(LldpLocalGroupTracker lldpLocalGroup) { if (getSysoid() == null || getSysoid().equals(DW_SYSOID) ) { if (lldpLocalGroup.getLldpLocChassisid().toHexString().equals(DW_NULL_CHASSIS_ID) && - lldpLocalGroup.getLldpLocChassisidSubType() == LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_CHASSISCOMPONENT.getValue()) { - LOG.info( "run: node[{}]: address {}. lldp identifier : {}. lldp not active for Dragon Wave Device.", - getNodeId(), - getPrimaryIpAddressString(), - lldpLocalGroup.getLldpElement()); - return; + lldpLocalGroup.getLldpLocChassisidSubType().intValue() == LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_CHASSISCOMPONENT.getValue()) { + LOG.info( "run: node[{}]: address {}. lldp identifier : {}. lldp not active for Dragon Wave Device.", + getNodeId(), + getPrimaryIpAddressString(), + lldpLocalGroup.getLldpElement()); + return true; } - + if (lldpLocalGroup.getLldpLocSysname().equals(DW_NULL_SYSOID_ID) ) { - LOG.info( "run: node[{}]: lldp identifier : {}. lldp not active for Dragon Wave Device.", - getNodeId(), - lldpLocalGroup.getLldpElement()); - return; + LOG.info( "run: node[{}]: lldp identifier : {}. lldp not active for Dragon Wave Device.", + getNodeId(), + lldpLocalGroup.getLldpElement()); + return true; } } - List links = new ArrayList<>(); + return false; + } + + private boolean walkLldpRemTable(SnmpAgentConfig peer) { + List links = new ArrayList<>(); LldpRemTableTracker lldpRemTable = new LldpRemTableTracker() { - public void processLldpRemRow(final LldpRemRow row) { - links.add(row.getLldpLink()); - } + public void processLldpRemRow(final LldpRemRow row) { + links.add(row); + } }; try { getLocationAwareSnmpClient().walk(peer, - lldpRemTable) - .withDescription("lldpRemTable") - .withLocation(getLocation()) - .execute() - .get(); + lldpRemTable) + .withDescription("lldpRemTable") + .withLocation(getLocation()) + .execute() + .get(); } catch (ExecutionException e) { - LOG.debug("run: node [{}]: ExecutionException: {}", - getNodeId(), e.getMessage()); + LOG.debug("run: node [{}]: ExecutionException: {}", + getNodeId(), e.getMessage()); + return false; + } catch (final InterruptedException e) { + LOG.debug("run: node [{}]: InterruptedException: {}", + getNodeId(), e.getMessage()); + return false; + } + if (links.isEmpty()) { + LOG.info("run: no remote table entry found walking LLDP-MIB"); + return false; + } + LOG.info("run: {} remote table entry found walking LLDP-MIB", links.size()); + storeLldpLinks(links, + new LldpLocPortGetter(peer, + getLocationAwareSnmpClient(), + getLocation())); + return true; + } + + private boolean walkMtrx(SnmpAgentConfig peer, String sysname) { + if (getSysoid() == null || !getSysoid().startsWith(MTXR_SYSOID)) { + return false; + } + + final List mtxrlldprowss = new ArrayList<>(); + + MtxrLldpLocalTableTracker mtxrLldpLocalTable = new MtxrLldpLocalTableTracker(); + MtxrNeighborTableTracker mtxrNeighborTable = new MtxrNeighborTableTracker(); + MtxrLldpRemTableTracker mtxrLldpRemTable = new MtxrLldpRemTableTracker() { + + public void processMtxrLldpRemRow(final MtxrLldpRemRow row) { + mtxrlldprowss.add(row); + } + }; + + try { + getLocationAwareSnmpClient().walk(peer, + mtxrLldpRemTable) + .withDescription("mtxrLldpRemTable") + .withLocation(getLocation()) + .execute() + .get(); + getLocationAwareSnmpClient().walk(peer, + mtxrLldpLocalTable) + .withDescription("mtxrLldpLocalTable") + .withLocation(getLocation()) + .execute() + .get(); + getLocationAwareSnmpClient().walk(peer, + mtxrNeighborTable) + .withDescription("mtxrNeighborTable") + .withLocation(getLocation()) + .execute() + .get(); + } catch (ExecutionException e) { + LOG.debug("run: node [{}]: ExecutionException: {}", + getNodeId(), e.getMessage()); + return false; + } catch (final InterruptedException e) { + LOG.debug("run: node [{}]: InterruptedException: {}", + getNodeId(), e.getMessage()); + return false; + } + + m_lldpTopologyService.store(getNodeId(), mtxrLldpLocalTable.getLldpElement(sysname)); + + for (MtxrLldpRemTableTracker.MtxrLldpRemRow mtxrLldpRemRow : mtxrlldprowss) { + m_lldpTopologyService.store(getNodeId(), + mtxrLldpLocalTable.getLldpLink(mtxrLldpRemRow, + mtxrNeighborTable.getMtxrinterfaceId(mtxrLldpRemRow) + ) + ); + } + return true; + } + + private void walkTimeTetra(SnmpAgentConfig peer) { + LOG.info("run: no remote table entry found. Try to walk TimeTetra-LLDP-MIB"); + List ttlinks = new ArrayList<>(); + TimeTetraLldpRemTableTracker timeTetraLldpRemTableTracker = new TimeTetraLldpRemTableTracker() { + @Override + public void processLldpRemRow(TimeTetraLldpRemRow row) { + ttlinks.add(row); + } + }; + + try { + getLocationAwareSnmpClient().walk(peer, + timeTetraLldpRemTableTracker) + .withDescription("timeTetraLldpRemTable") + .withLocation(getLocation()) + .execute() + .get(); + } catch (ExecutionException e) { + LOG.debug("run: node [{}]: ExecutionException: {}", + getNodeId(), e.getMessage()); return; } catch (final InterruptedException e) { - LOG.debug("run: node [{}]: InterruptedException: {}", - getNodeId(), e.getMessage()); + LOG.debug("run: node [{}]: InterruptedException: {}", + getNodeId(), e.getMessage()); return; } - - - final LldpLocPortGetter lldpLocPort = - new LldpLocPortGetter(peer, - getLocationAwareSnmpClient(), - getLocation(),getNodeId()); - for (LldpLink link: links) { - m_lldpTopologyService.store(getNodeId(),lldpLocPort.getLldpLink(link)); + LOG.info("run: {} remote table entry found walking TIMETETRA-LLDP-MIB", ttlinks.size()); + storeTimeTetraLldpLinks(ttlinks, new TimeTetraLldpLocPortGetter(peer, + getLocationAwareSnmpClient(), + getLocation())); + } + + private void storeTimeTetraLldpLinks(List rows, final TimeTetraLldpLocPortGetter timeTetraLldpLocPortGetter) { + for (TimeTetraLldpRemTableTracker.TimeTetraLldpRemRow row : rows) { + m_lldpTopologyService.store(getNodeId(), timeTetraLldpLocPortGetter.getLldpLink(row)); } - - m_lldpTopologyService.reconcile(getNodeId(),now); } + private void storeLldpLinks(List links, final LldpLocPortGetter lldpLocPortGetter) { + for (LldpRemTableTracker.LldpRemRow row : links) { + m_lldpTopologyService.store(getNodeId(), lldpLocPortGetter.getLldpLink(row)); + } + } @Override public String getName() { return "NodeDiscoveryLldp"; diff --git a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/LldpLocPortGetter.java b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/LldpLocPortGetter.java index 4430d3026aa8..c7c8bbb4a81f 100644 --- a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/LldpLocPortGetter.java +++ b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/LldpLocPortGetter.java @@ -28,9 +28,6 @@ package org.opennms.netmgt.enlinkd.snmp; -import java.util.ArrayList; -import java.util.List; - import org.opennms.core.utils.LldpUtils.LldpPortIdSubType; import org.opennms.netmgt.enlinkd.model.LldpLink; import org.opennms.netmgt.snmp.SnmpAgentConfig; @@ -40,6 +37,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Arrays; +import java.util.List; + public class LldpLocPortGetter extends SnmpGetter { private final static Logger LOG = LoggerFactory.getLogger(LldpLocPortGetter.class); @@ -48,28 +48,24 @@ public class LldpLocPortGetter extends SnmpGetter { public final static SnmpObjId LLDP_LOC_PORTID = SnmpObjId.get(".1.0.8802.1.1.2.1.3.7.1.3"); public final static SnmpObjId LLDP_LOC_DESCR = SnmpObjId.get(".1.0.8802.1.1.2.1.3.7.1.4"); - public LldpLocPortGetter(SnmpAgentConfig peer, LocationAwareSnmpClient client, String location, Integer nodeid) { - super(peer, client, location,nodeid); + public LldpLocPortGetter(SnmpAgentConfig peer, LocationAwareSnmpClient client, String location) { + super(peer, client, location); } public List get(Integer lldpRemLocalPortNum) { - List oids = new ArrayList(3); - oids.add(SnmpObjId.get(LLDP_LOC_PORTID_SUBTYPE)); - oids.add(SnmpObjId.get(LLDP_LOC_PORTID)); - oids.add(SnmpObjId.get(LLDP_LOC_DESCR)) ; - return get(oids,lldpRemLocalPortNum); + return get(Arrays.asList(SnmpObjId.get(LLDP_LOC_PORTID_SUBTYPE), SnmpObjId.get(LLDP_LOC_PORTID), SnmpObjId.get(LLDP_LOC_DESCR)), lldpRemLocalPortNum); } - public LldpLink getLldpLink(LldpLink lldplink) { + public LldpLink getLldpLink(LldpRemTableTracker.LldpRemRow row) { - List val = get(lldplink.getLldpLocalPortNum()); + List val = get(row.getLldpRemLocalPortNum()); - if (val == null ) { - LOG.debug("get: [{}], cannot find local instance for lldp local port number {}", - getNodeId(), + LldpLink lldplink = row.getLldpLink(); + if (val == null) { + LOG.debug("getLldpLink: cannot find local instance for lldp local port number {}", lldplink.getLldpLocalPortNum()); - LOG.debug("get: [{}], setting default not found Values: portidtype \"InterfaceAlias\", portid=\"Not Found On lldpLocPortTable\"",getNodeId()); + LOG.debug("getLldpLink: setting default not found Values: portidtype \"InterfaceAlias\", portid=\"Not Found On lldpLocPortTable\""); lldplink.setLldpPortIdSubType(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACEALIAS); lldplink.setLldpPortId("\"Not Found On lldpLocPortTable\""); lldplink.setLldpPortDescr(""); @@ -77,19 +73,17 @@ public LldpLink getLldpLink(LldpLink lldplink) { } if (val.get(0) == null || val.get(0).isError() || !val.get(0).isNumeric()) { - LOG.debug("get: [{}], port id subtype is null or invalid for lldp local port number {}", - getNodeId(), + LOG.debug("getLldpLink: port id subtype is null or invalid for lldp local port number {}", lldplink.getLldpLocalPortNum()); - LOG.debug("get: [{}], setting default not found Values: portidtype \"InterfaceAlias\"",getNodeId()); + LOG.debug("getLldpLink: setting default not found Values: portidtype \"InterfaceAlias\""); lldplink.setLldpPortIdSubType(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACEALIAS); } else { lldplink.setLldpPortIdSubType(LldpPortIdSubType.get(val.get(0).toInt())); } if (val.get(1) == null || val.get(1).isError()) { - LOG.debug("get: [{}], port id is null for lldp local port number {}", - getNodeId(), + LOG.debug("getLldpLink: port id is null for lldp local port number {}", lldplink.getLldpLocalPortNum()); - LOG.debug("get: [{}], setting default not found Values: portid=\"Not Found On lldpLocPortTable\"",getNodeId()); + LOG.debug("get: setting default not found Values: portid=\"Not Found On lldpLocPortTable\""); lldplink.setLldpPortId("\"Not Found On lldpLocPortTable\""); } else { lldplink.setLldpPortId(LldpRemTableTracker.decodeLldpPortId(lldplink.getLldpPortIdSubType().getValue(), @@ -100,12 +94,11 @@ public LldpLink getLldpLink(LldpLink lldplink) { else lldplink.setLldpPortDescr(""); if (val.get(0).isNumeric() - && val.get(0).toInt() == LldpPortIdSubType.LLDP_PORTID_SUBTYPE_LOCAL.getValue().intValue()) { + && val.get(0).toInt() == LldpPortIdSubType.LLDP_PORTID_SUBTYPE_LOCAL.getValue()) { try { lldplink.setLldpPortIfindex((val.get(1).toInt())); } catch (Exception e) { - LOG.warn("get: [{}], failed to convert to ifindex local port id {}", - getNodeId(), + LOG.warn("getLldpLink: failed to convert to ifindex local port id {}", val.get(1)); } } diff --git a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/LldpLocalGroupTracker.java b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/LldpLocalGroupTracker.java index 8c6c67f45e93..bdde3ba6877b 100644 --- a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/LldpLocalGroupTracker.java +++ b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/LldpLocalGroupTracker.java @@ -28,6 +28,7 @@ package org.opennms.netmgt.enlinkd.snmp; +import org.opennms.core.utils.InetAddressUtils; import org.opennms.core.utils.LldpUtils; import org.opennms.core.utils.LldpUtils.LldpChassisIdSubType; import org.opennms.netmgt.enlinkd.model.LldpElement; @@ -42,6 +43,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Locale; + public final class LldpLocalGroupTracker extends AggregateTracker { private final static Logger LOG = LoggerFactory.getLogger(LldpLocalGroupTracker.class); @@ -100,7 +103,23 @@ public static String getDisplayable(final SnmpValue snmpValue) { } return decodedsnmpValue; } - + + public static String decodeMacAddress(SnmpValue snmpValue) { + String mac = snmpValue.toHexString(); + if (InetAddressUtils.isValidBridgeAddress(mac)) { + LOG.debug("decodeMacAddress: hexString {}", snmpValue.toHexString()); + return mac; + } + LOG.debug("decodeMacAddress: displayable {} type {}", snmpValue.isDisplayable(),snmpValue.getType()); + if (snmpValue.isDisplayable()) { + LOG.debug("decodeMacAddress: displayString {}", snmpValue.toDisplayString()); + return snmpValue.toDisplayString().replaceAll("\\s+","") + .replaceAll(":","").toLowerCase(Locale.ROOT); + } + LOG.debug("decodeMacAddress: hexString {}", snmpValue.toHexString()); + return snmpValue.toHexString(); + } + public static String decodeLldpChassisId(final SnmpValue lldpchassisid, Integer lldpLocChassisidSubType) { if (lldpLocChassisidSubType == null) return getDisplayable(lldpchassisid); @@ -226,7 +245,7 @@ public static String decodeLldpChassisId(final SnmpValue lldpchassisid, Integer case LLDP_CHASSISID_SUBTYPE_LOCAL: return getDisplayable(lldpchassisid); case LLDP_CHASSISID_SUBTYPE_MACADDRESS: - return lldpchassisid.toHexString(); + return decodeMacAddress(lldpchassisid); case LLDP_CHASSISID_SUBTYPE_NETWORKADDRESS: try { return LldpUtils.decodeNetworkAddress(getDisplayable(lldpchassisid)); diff --git a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/LldpRemTableTracker.java b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/LldpRemTableTracker.java index 3fade3a1a58a..af307e668e2c 100644 --- a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/LldpRemTableTracker.java +++ b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/LldpRemTableTracker.java @@ -156,7 +156,7 @@ public static String decodeLldpPortId(Integer lldpPortIdSubType,SnmpValue lldppo else return lldpportid.toHexString(); case LLDP_PORTID_SUBTYPE_MACADDRESS: - return lldpportid.toHexString(); + return LldpLocalGroupTracker.decodeMacAddress(lldpportid); case LLDP_PORTID_SUBTYPE_NETWORKADDRESS: LldpUtils.decodeNetworkAddress(lldpportid.toDisplayString()); } @@ -177,12 +177,18 @@ public LldpRemRow(int columnCount, SnmpInstId instance) { super(columnCount, instance); LOG.debug( "column count = {}, instance = {}", columnCount, instance); } - + + public Integer getLldpRemTimeMark() { + return getInstance().getSubIdAt(0); + } public Integer getLldpRemLocalPortNum() { return getInstance().getSubIdAt(1); } - - public Integer getLldpRemChassisidSubtype() { + public Integer getLldpRemIndex() { + return getInstance().getSubIdAt(2); + } + + public Integer getLldpRemChassisidSubtype() { return getValue(LLDP_REM_CHASSIS_ID_SUBTYPE).toInt(); } @@ -211,7 +217,7 @@ public String getLldpRemSysname() { public LldpLink getLldpLink() { LldpLink lldpLink = new LldpLink(); - lldpLink.setLldpLocalPortNum(getLldpRemLocalPortNum()); + lldpLink.setLldpLocalPortNum(getLldpRemIndex()); lldpLink.setLldpRemChassisId(LldpLocalGroupTracker.decodeLldpChassisId(getLldpRemChassisId() , getLldpRemChassisidSubtype())); lldpLink.setLldpRemChassisIdSubType(LldpChassisIdSubType.get(getLldpRemChassisidSubtype())); lldpLink.setLldpRemSysname(getLldpRemSysname()); diff --git a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/MtxrLldpLocalTableTracker.java b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/MtxrLldpLocalTableTracker.java new file mode 100644 index 000000000000..7b232ee6ef24 --- /dev/null +++ b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/MtxrLldpLocalTableTracker.java @@ -0,0 +1,178 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.enlinkd.snmp; + + +import org.opennms.core.utils.LldpUtils; +import org.opennms.netmgt.enlinkd.model.LldpElement; +import org.opennms.netmgt.enlinkd.model.LldpLink; +import org.opennms.netmgt.snmp.SnmpObjId; +import org.opennms.netmgt.snmp.TableTracker; +import org.opennms.netmgt.snmp.SnmpRowResult; +import org.opennms.netmgt.snmp.SnmpInstId; +import org.opennms.netmgt.snmp.RowCallback; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class MtxrLldpLocalTableTracker extends TableTracker { + private final static Logger LOG = LoggerFactory.getLogger(MtxrLldpLocalTableTracker.class); + + + public static final SnmpObjId[] s_lldploctable_elemList = new SnmpObjId[] { + + /* + "The type of port identifier encoding used in the associated 'lldpLocPortId' object." + */ + LldpLocPortGetter.LLDP_LOC_PORTID_SUBTYPE, + + /* + "The string value used to identify the port component associated with a given port in the local system." + */ + LldpLocPortGetter.LLDP_LOC_PORTID, + + /* + "The string value used to identify the 802 + LAN station's port description associated with the local system. + If the local agent supports IETF RFC 2863, + lldpLocPortDesc object should have the same value of ifDescr object." + */ + LldpLocPortGetter.LLDP_LOC_DESCR + }; + + public static class LldpLocalPortRow extends SnmpRowResult { + + public LldpLocalPortRow(int columnCount, SnmpInstId instance) { + super(columnCount, instance); + LOG.debug( "column count = {}, instance = {}", columnCount, instance); + } + + public Integer getMtxrIndex() { + return getInstance().getSubIdAt(0); + } + + public LldpUtils.LldpPortIdSubType getLldpLocalPortIdSubtype() { + return LldpUtils.LldpPortIdSubType.get(getValue(LldpLocPortGetter.LLDP_LOC_PORTID_SUBTYPE).toInt()); + } + + public String getLldpLocPortId() { + return LldpRemTableTracker.decodeLldpPortId(getLldpLocalPortIdSubtype().getValue(),getValue(LldpLocPortGetter.LLDP_LOC_PORTID)); + } + + public String getLldpLocPortDesc() { + if (getValue(LldpLocPortGetter.LLDP_LOC_DESCR) != null) { + return getValue(LldpLocPortGetter.LLDP_LOC_DESCR).toDisplayString(); + } + return ""; + } + } + + public Map getMtxrLldpLocalPortMap() { + return mtxrLldpLocalPortMap; + } + + private final Map mtxrLldpLocalPortMap = new HashMap<>(); + + public MtxrLldpLocalTableTracker() { + super(s_lldploctable_elemList); + } + + /** + *

Constructor for MikrotikLldpLocalTableTracker.

+ * + * @param rowProcessor a {@link RowCallback} object. + */ + public MtxrLldpLocalTableTracker(final RowCallback rowProcessor) { + super(rowProcessor, s_lldploctable_elemList); + } + + /** {@inheritDoc} */ + @Override + public SnmpRowResult createRowResult(final int columnCount, final SnmpInstId instance) { + return new LldpLocalPortRow(columnCount, instance); + } + + /** {@inheritDoc} */ + @Override + public void rowCompleted(final SnmpRowResult row) { + processLldpLocPortRow((LldpLocalPortRow)row); + } + + /** + *

processLldpRemRow

+ * + * @param row a {@link MtxrLldpLocalTableTracker.LldpLocalPortRow} object. + */ + public void processLldpLocPortRow(final LldpLocalPortRow row) { + LOG.debug("processLldpLocPortRow: mtxrIndex {} -> {} {} {}", row.getMtxrIndex(), row.getLldpLocalPortIdSubtype(), row.getLldpLocPortId(), row.getLldpLocPortDesc()); + mtxrLldpLocalPortMap.put(row.getMtxrIndex(),row); + } + + public LldpElement getLldpElement(String sysname) { + LldpElement element = new LldpElement(); + element.setLldpSysname(sysname); + for (LldpLocalPortRow row: mtxrLldpLocalPortMap.values()) { + if (row.getLldpLocalPortIdSubtype().equals(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_MACADDRESS)) { + LOG.debug("getLldpElement: parsing lldp_chassis_id {}", row.getLldpLocPortId()); + if (element.getLldpChassisId() == null || element.getLldpChassisId().compareTo(row.getLldpLocPortId()) > 0 ) { + LOG.debug("getLldpElement: set lldp_chassis_id {}", row.getLldpLocPortId()); + element.setLldpChassisIdSubType(LldpUtils.LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS); + element.setLldpChassisId(row.getLldpLocPortId()); + } + } + } + if (element.getLldpChassisId() == null) { + element.setLldpChassisIdSubType(LldpUtils.LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_LOCAL); + element.setLldpChassisId(sysname); + } + LOG.info("getLldpElement: {}", element); + return element; + } + + public LldpLink getLldpLink(MtxrLldpRemTableTracker.MtxrLldpRemRow mtxrlldprow, Integer mtxrIndex) { + LldpLink lldpLink = mtxrlldprow.getLldpLink(); + if (mtxrIndex != null && mtxrLldpLocalPortMap.containsKey(mtxrIndex)) { + lldpLink.setLldpPortIfindex(mtxrIndex); + lldpLink.setLldpPortIdSubType(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME); + lldpLink.setLldpPortId(mtxrLldpLocalPortMap.get(mtxrIndex).getLldpLocPortDesc()); + lldpLink.setLldpPortDescr(mtxrLldpLocalPortMap.get(mtxrIndex).getLldpLocPortDesc()); + LOG.debug("getLldpLink: interfaceId {} -> portId {}", mtxrIndex,lldpLink.getLldpPortId()); + } else { + lldpLink.setLldpPortIdSubType(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACEALIAS); + lldpLink.setLldpPortId("\"Not Found On lldpLocPortTable\""); + lldpLink.setLldpPortDescr(""); + LOG.debug("getLldpLink: setting default not found Values: portidtype \"InterfaceAlias\", portid=\"Not Found On lldpLocPortTable\""); + } + return lldpLink; + } + +} diff --git a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/MtxrLldpRemTableTracker.java b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/MtxrLldpRemTableTracker.java new file mode 100644 index 000000000000..14d2d51c5e7d --- /dev/null +++ b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/MtxrLldpRemTableTracker.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.enlinkd.snmp; + +import org.opennms.netmgt.snmp.SnmpInstId; +import org.opennms.netmgt.snmp.SnmpRowResult; + +public class MtxrLldpRemTableTracker extends LldpRemTableTracker { + + public MtxrLldpRemTableTracker() { + super(); + } + + public static class MtxrLldpRemRow extends LldpRemRow { + + public MtxrLldpRemRow(int columnCount, SnmpInstId instance) { + super(columnCount, instance); + } + + public Integer getMtxrNeighborIndex() { + return super.getLldpRemIndex(); + } + + } + + /** {@inheritDoc} */ + @Override + public SnmpRowResult createRowResult(final int columnCount, final SnmpInstId instance) { + return new MtxrLldpRemRow(columnCount, instance); + } + + /** {@inheritDoc} */ + @Override + public void rowCompleted(final SnmpRowResult row) { + processMtxrLldpRemRow((MtxrLldpRemRow)row); + } + + /** + *

processMtxrLldpRemRow

+ * + * @param row a {@link org.opennms.netmgt.enlinkd.snmp.LldpRemTableTracker.LldpRemRow} object. + */ + public void processMtxrLldpRemRow(final MtxrLldpRemRow row) { + } + + +} diff --git a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/MtxrNeighborTableTracker.java b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/MtxrNeighborTableTracker.java new file mode 100644 index 000000000000..05eac8a2cbc3 --- /dev/null +++ b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/MtxrNeighborTableTracker.java @@ -0,0 +1,108 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.enlinkd.snmp; + +import org.opennms.netmgt.snmp.TableTracker; +import org.opennms.netmgt.snmp.SnmpObjId; +import org.opennms.netmgt.snmp.SnmpInstId; +import org.opennms.netmgt.snmp.SnmpRowResult; +import org.opennms.netmgt.snmp.RowCallback; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +public class MtxrNeighborTableTracker extends TableTracker { + + private final static Logger LOG = LoggerFactory.getLogger(MtxrNeighborTableTracker.class); + + public final static SnmpObjId MTXR_NEIGHBOR_INTERFACE_ID = SnmpObjId.get(".1.3.6.1.4.1.14988.1.1.11.1.1.8"); + + public static final SnmpObjId[] s_mtxrneiinterfaceid_elemList = new SnmpObjId[] { + MTXR_NEIGHBOR_INTERFACE_ID + }; + + public static class MtxrNeighborRow extends SnmpRowResult { + public MtxrNeighborRow(int columnCount, SnmpInstId instance) { + super(columnCount, instance); + LOG.debug( "column count = {}, instance = {}", columnCount, instance); + } + + public Integer getMtxrNeighborIndex() { + return getInstance().getSubIdAt(0); + } + + public Integer getMtxrNeighborInterfaceId() { + return getValue(MTXR_NEIGHBOR_INTERFACE_ID).toInt(); + } + + } + + public Map getMtxrNeighborMap() { + return mtxrNeighborMap; + } + + private final Map mtxrNeighborMap = new HashMap<>(); + + public MtxrNeighborTableTracker() { + super(s_mtxrneiinterfaceid_elemList); + } + + public MtxrNeighborTableTracker(final RowCallback rowProcessor) { + super(rowProcessor, s_mtxrneiinterfaceid_elemList); + } + + /** {@inheritDoc} */ + @Override + public SnmpRowResult createRowResult(final int columnCount, final SnmpInstId instance) { + return new MtxrNeighborRow(columnCount, instance); + } + + /** {@inheritDoc} */ + @Override + public void rowCompleted(final SnmpRowResult row) { + processMtxrIndexPortRow((MtxrNeighborRow)row); + } + + public void processMtxrIndexPortRow(final MtxrNeighborRow row) { + mtxrNeighborMap.put(row.getMtxrNeighborIndex(), row); + } + + public Integer getMtxrinterfaceId(MtxrLldpRemTableTracker.MtxrLldpRemRow mtxrlldprow) { + Integer mtxrInterfaceId = null; + if (mtxrNeighborMap.containsKey(mtxrlldprow.getMtxrNeighborIndex())) { + mtxrInterfaceId = mtxrNeighborMap.get(mtxrlldprow.getMtxrNeighborIndex()).getMtxrNeighborInterfaceId(); + } + LOG.debug("getLldpLink: neiIndex {} -> interfaceId {}", mtxrlldprow.getMtxrNeighborIndex(), mtxrInterfaceId); + return mtxrInterfaceId; + } + +} diff --git a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/TimeTetraLldpLocPortGetter.java b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/TimeTetraLldpLocPortGetter.java new file mode 100644 index 000000000000..74c577d838c7 --- /dev/null +++ b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/TimeTetraLldpLocPortGetter.java @@ -0,0 +1,109 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.enlinkd.snmp; + +import org.opennms.core.utils.LldpUtils; +import org.opennms.netmgt.enlinkd.model.LldpLink; +import org.opennms.netmgt.snmp.SnmpAgentConfig; +import org.opennms.netmgt.snmp.SnmpObjId; +import org.opennms.netmgt.snmp.SnmpValue; +import org.opennms.netmgt.snmp.proxy.LocationAwareSnmpClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.List; + +public class TimeTetraLldpLocPortGetter extends SnmpGetter { + + private final static Logger LOG = LoggerFactory.getLogger(TimeTetraLldpLocPortGetter.class); + + public final static SnmpObjId TIMETETRA_LLDP_LOC_PORTID_SUBTYPE = SnmpObjId.get(".1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2"); + public final static SnmpObjId TIMETETRA_LLDP_LOC_PORTID = SnmpObjId.get(".1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3"); + public final static SnmpObjId TIMETETRA_LLDP_LOC_DESCR = SnmpObjId.get(".1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4"); + + public TimeTetraLldpLocPortGetter(SnmpAgentConfig peer, LocationAwareSnmpClient client, String location) { + super(peer, client, location); + } + + public List get(Integer ifindex,Integer tmnxLldpRemLocalDestMACAddress) { + return get(Arrays.asList(SnmpObjId.get(TIMETETRA_LLDP_LOC_PORTID_SUBTYPE).append(ifindex.toString()), SnmpObjId.get(TIMETETRA_LLDP_LOC_PORTID).append(ifindex.toString()), SnmpObjId.get(TIMETETRA_LLDP_LOC_DESCR).append(ifindex.toString())), tmnxLldpRemLocalDestMACAddress); + } + + // In case port sub type is local the portid is the ifindex and then we need to convert the exa decimal to int. + public LldpLink getLldpLink(TimeTetraLldpRemTableTracker.TimeTetraLldpRemRow timeTetraLldpRemRow) { + + LldpLink lldpLink= timeTetraLldpRemRow.getLldpLink(); + List val = get(lldpLink.getLldpPortIfindex(),timeTetraLldpRemRow.getTmnxLldpRemLocalDestMACAddress()); + + if (val == null ) { + LOG.debug("getLldpLink: cannot find local instance for lldp ifindex {} and local port number {}", + lldpLink.getLldpPortIfindex(), + lldpLink.getLldpLocalPortNum()); + LOG.debug("getLldpLink: setting default not found Values: portidtype \"InterfaceAlias\", portid=\"Not Found On lldpLocPortTable\""); + lldpLink.setLldpPortIdSubType(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACEALIAS); + lldpLink.setLldpPortId("\"Not Found On lldpLocPortTable\""); + lldpLink.setLldpPortDescr(""); + return lldpLink; + } + + if (val.get(0) == null || val.get(0).isError() || !val.get(0).isNumeric()) { + LOG.debug("getLldpLink: port id subtype is null or invalid for lldp ifindex {} and local port number {}", + lldpLink.getLldpPortIfindex(), + lldpLink.getLldpLocalPortNum()); + LOG.debug("get: setting default not found Values: portidtype \"InterfaceAlias\""); + lldpLink.setLldpPortIdSubType(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACEALIAS); + } else { + lldpLink.setLldpPortIdSubType(LldpUtils.LldpPortIdSubType.get(val.get(0).toInt())); + } + if (val.get(1) == null || val.get(1).isError()) { + LOG.debug("getLldpLink: port id is null for lldp ifindex {} and local port number {}", + lldpLink.getLldpPortIfindex(), + lldpLink.getLldpLocalPortNum()); + LOG.debug("getLldpLink: setting default not found Values: portid=\"Not Found On lldpLocPortTable\""); + lldpLink.setLldpPortId("\"Not Found On lldpLocPortTable\""); + } else { + lldpLink.setLldpPortId(decodeLldpPortId(lldpLink.getLldpPortIdSubType(), + val.get(1))); + } + if (val.get(2) != null && !val.get(2).isError()) + lldpLink.setLldpPortDescr((val.get(2).toDisplayString())); + else + lldpLink.setLldpPortDescr(""); + return lldpLink; + } + + public static String decodeLldpPortId(LldpUtils.LldpPortIdSubType portSubType, SnmpValue snmpValue) { + if (portSubType == LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_LOCAL) { + return String.valueOf(Integer.parseInt(LldpRemTableTracker.decodeLldpPortId( LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_LOCAL.getValue(),snmpValue),16)); + } + return LldpRemTableTracker.decodeLldpPortId(portSubType.getValue(),snmpValue); + } + +} diff --git a/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/TimeTetraLldpRemTableTracker.java b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/TimeTetraLldpRemTableTracker.java new file mode 100644 index 000000000000..d59593a10dd9 --- /dev/null +++ b/features/enlinkd/adapters/collectors/lldp/src/main/java/org/opennms/netmgt/enlinkd/snmp/TimeTetraLldpRemTableTracker.java @@ -0,0 +1,201 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.enlinkd.snmp; + + +import org.opennms.core.utils.LldpUtils.LldpChassisIdSubType; +import org.opennms.core.utils.LldpUtils.LldpPortIdSubType; +import org.opennms.netmgt.enlinkd.model.LldpLink; +import org.opennms.netmgt.snmp.TableTracker; +import org.opennms.netmgt.snmp.SnmpObjId; +import org.opennms.netmgt.snmp.SnmpInstId; +import org.opennms.netmgt.snmp.SnmpRowResult; +import org.opennms.netmgt.snmp.RowCallback; +import org.opennms.netmgt.snmp.SnmpValue; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class TimeTetraLldpRemTableTracker extends TableTracker { + private final static Logger LOG = LoggerFactory.getLogger(TimeTetraLldpRemTableTracker.class); + + public static final SnmpObjId TIMETETRA_LLDP_REM_TABLE_ENTRY = SnmpObjId.get(".1.3.6.1.4.1.6527.3.1.2.59.4.1.1"); // start of table (GETNEXT) + + + public final static SnmpObjId TIMETETRA_LLDP_REM_CHASSIS_ID_SUBTYPE = SnmpObjId.get(TIMETETRA_LLDP_REM_TABLE_ENTRY,"4"); + public final static SnmpObjId TIMETETRA_LLDP_REM_CHASSIS_ID = SnmpObjId.get(TIMETETRA_LLDP_REM_TABLE_ENTRY,"5"); + public final static SnmpObjId TIMETETRA_LLDP_REM_PORT_ID_SUBTYPE = SnmpObjId.get(TIMETETRA_LLDP_REM_TABLE_ENTRY,"6"); + public final static SnmpObjId TIMETETRA_LLDP_REM_PORT_ID = SnmpObjId.get(TIMETETRA_LLDP_REM_TABLE_ENTRY,"7"); + public final static SnmpObjId TIMETETRA_LLDP_REM_PORT_DESCR = SnmpObjId.get(TIMETETRA_LLDP_REM_TABLE_ENTRY,"8"); + public final static SnmpObjId TIMETETRA_LLDP_REM_SYSNAME = SnmpObjId.get(TIMETETRA_LLDP_REM_TABLE_ENTRY,"9"); + + public static final SnmpObjId[] s_timetetralldpremtable_elemList = new SnmpObjId[] { + + /** + * "The type of encoding used to identify the chassis associated + * with the remote system." + */ + TIMETETRA_LLDP_REM_CHASSIS_ID_SUBTYPE, + + /** + * "The string value used to identify the chassis component + * associated with the remote system." + */ + TIMETETRA_LLDP_REM_CHASSIS_ID, + + /** + * "The type of port identifier encoding used in the associated + * 'lldpRemPortId' object." + */ + TIMETETRA_LLDP_REM_PORT_ID_SUBTYPE, + + /** + * "The string value used to identify the port component + associated with the remote system." + */ + TIMETETRA_LLDP_REM_PORT_ID, + + /** + * "The string value used to identify the description of + * the given port associated with the remote system." + */ + TIMETETRA_LLDP_REM_PORT_DESCR, + + /** + * "The string value used to identify the port component + * associated with the remote system." + */ + TIMETETRA_LLDP_REM_SYSNAME + + }; + + public static class TimeTetraLldpRemRow extends SnmpRowResult { + + public TimeTetraLldpRemRow(int columnCount, SnmpInstId instance) { + super(columnCount, instance); + LOG.debug( "column count = {}, instance = {}", columnCount, instance); + } + + public Integer getLldpRemLocalPortNum() { + return getInstance().getSubIdAt(3); + } + public Integer getTmnxLldpRemLocalDestMACAddress() { + return getInstance().getSubIdAt(2); + } + public Integer getIfindex() { + return getInstance().getSubIdAt(1); + } + + public Integer getLldpRemChassisidSubtype() { + return getValue(TIMETETRA_LLDP_REM_CHASSIS_ID_SUBTYPE).toInt(); + } + + public SnmpValue getLldpRemChassisId() { + return getValue(TIMETETRA_LLDP_REM_CHASSIS_ID); + } + + public Integer getLldpRemPortidSubtype() { + return getValue(TIMETETRA_LLDP_REM_PORT_ID_SUBTYPE).toInt(); + } + + public String getLldpRemPortid() { + return LldpRemTableTracker.decodeLldpPortId(getLldpRemPortidSubtype(), getValue(TIMETETRA_LLDP_REM_PORT_ID)); + } + + public String getLldpRemPortDescr() { + if (getValue(TIMETETRA_LLDP_REM_PORT_DESCR) != null) + return getValue(TIMETETRA_LLDP_REM_PORT_DESCR).toDisplayString(); + return ""; + } + + public String getLldpRemSysname() { + return getValue(TIMETETRA_LLDP_REM_SYSNAME).toDisplayString(); + } + + + public LldpLink getLldpLink() { + + LldpLink lldpLink = new LldpLink(); + lldpLink.setLldpLocalPortNum(getLldpRemLocalPortNum()); + lldpLink.setLldpPortIfindex(getIfindex()); + lldpLink.setLldpRemChassisId(LldpLocalGroupTracker.decodeLldpChassisId(getLldpRemChassisId(), getLldpRemChassisidSubtype())); + lldpLink.setLldpRemChassisIdSubType(LldpChassisIdSubType.get(getLldpRemChassisidSubtype())); + lldpLink.setLldpRemSysname(getLldpRemSysname()); + lldpLink.setLldpRemPortId(getLldpRemPortid()); + lldpLink.setLldpRemPortIdSubType(LldpPortIdSubType.get(getLldpRemPortidSubtype())); + lldpLink.setLldpRemPortDescr(getLldpRemPortDescr()); + LOG.debug( "getLldpLink: local port num: {}, ifindex: {}, TmnxLldpRemLocalDestMACAddress: {}, identifier: {}, chassis subtype: {}, \n rem sysname: {}, rem port: {}, rem port subtype: {}", + lldpLink.getLldpLocalPortNum(), + lldpLink.getLldpPortIfindex(), + getTmnxLldpRemLocalDestMACAddress(), + lldpLink.getLldpRemChassisId(), + LldpChassisIdSubType.getTypeString(getLldpRemChassisidSubtype()), + lldpLink.getLldpRemSysname(), + lldpLink.getLldpRemPortId(), + LldpPortIdSubType.getTypeString(getLldpRemPortidSubtype())); + + return lldpLink; + } + } + + public TimeTetraLldpRemTableTracker() { + super(s_timetetralldpremtable_elemList); + } + + /** + *

Constructor for LldpRemTableTracker.

+ * + * @param rowProcessor a {@link RowCallback} object. + */ + public TimeTetraLldpRemTableTracker(final RowCallback rowProcessor) { + super(rowProcessor, s_timetetralldpremtable_elemList); + } + + /** {@inheritDoc} */ + @Override + public SnmpRowResult createRowResult(final int columnCount, final SnmpInstId instance) { + return new TimeTetraLldpRemRow(columnCount, instance); + } + + /** {@inheritDoc} */ + @Override + public void rowCompleted(final SnmpRowResult row) { + processLldpRemRow((TimeTetraLldpRemRow)row); + } + + /** + *

processLldpRemRow

+ * + * @param row a {@link TimeTetraLldpRemRow} object. + */ + public void processLldpRemRow(final TimeTetraLldpRemRow row) { + } + +} diff --git a/features/enlinkd/adapters/collectors/ospf/pom.xml b/features/enlinkd/adapters/collectors/ospf/pom.xml index 2759cea26e1c..e1bb928feffd 100644 --- a/features/enlinkd/adapters/collectors/ospf/pom.xml +++ b/features/enlinkd/adapters/collectors/ospf/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters.collectors - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.collectors.ospf diff --git a/features/enlinkd/adapters/collectors/ospf/src/main/java/org/opennms/netmgt/enlinkd/NodeDiscoveryOspf.java b/features/enlinkd/adapters/collectors/ospf/src/main/java/org/opennms/netmgt/enlinkd/NodeDiscoveryOspf.java index 912140249765..86593e0b8757 100644 --- a/features/enlinkd/adapters/collectors/ospf/src/main/java/org/opennms/netmgt/enlinkd/NodeDiscoveryOspf.java +++ b/features/enlinkd/adapters/collectors/ospf/src/main/java/org/opennms/netmgt/enlinkd/NodeDiscoveryOspf.java @@ -65,8 +65,8 @@ public final class NodeDiscoveryOspf extends NodeCollector { * The collection does not occur until the * run method is invoked. * - * @param EnhancedLinkd linkd - * @param LinkableNode node + * @param ospfTopologyService linkd + * @param locationAwareSnmpClient node */ public NodeDiscoveryOspf( final OspfTopologyService ospfTopologyService, @@ -85,7 +85,7 @@ public void collect() { final OspfIpAddrTableGetter ipAddrTableGetter = new OspfIpAddrTableGetter(peer, getLocationAwareSnmpClient(), - getLocation(),getNodeId()); + getLocation()); final OspfGeneralGroupTracker ospfGeneralGroup = new OspfGeneralGroupTracker(); try { getLocationAwareSnmpClient().walk(peer, ospfGeneralGroup). diff --git a/features/enlinkd/adapters/collectors/ospf/src/main/java/org/opennms/netmgt/enlinkd/snmp/OspfIpAddrTableGetter.java b/features/enlinkd/adapters/collectors/ospf/src/main/java/org/opennms/netmgt/enlinkd/snmp/OspfIpAddrTableGetter.java index 1aa8ceb61579..809ae85de4d4 100644 --- a/features/enlinkd/adapters/collectors/ospf/src/main/java/org/opennms/netmgt/enlinkd/snmp/OspfIpAddrTableGetter.java +++ b/features/enlinkd/adapters/collectors/ospf/src/main/java/org/opennms/netmgt/enlinkd/snmp/OspfIpAddrTableGetter.java @@ -45,8 +45,8 @@ public class OspfIpAddrTableGetter extends SnmpGetter { public final static SnmpObjId IPADENT_IFINDEX = SnmpObjId.get(".1.3.6.1.2.1.4.20.1.2"); public final static SnmpObjId IPADENT_NETMASK = SnmpObjId.get(".1.3.6.1.2.1.4.20.1.3"); - public OspfIpAddrTableGetter(SnmpAgentConfig peer, LocationAwareSnmpClient client, String location, Integer nodeid) { - super(peer, client, location,nodeid); + public OspfIpAddrTableGetter(SnmpAgentConfig peer, LocationAwareSnmpClient client, String location) { + super(peer, client, location); } public OspfElement get(OspfElement element) { diff --git a/features/enlinkd/adapters/collectors/pom.xml b/features/enlinkd/adapters/collectors/pom.xml index 38b580bffee0..05e390f5b5ca 100644 --- a/features/enlinkd/adapters/collectors/pom.xml +++ b/features/enlinkd/adapters/collectors/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.collectors diff --git a/features/enlinkd/adapters/common/pom.xml b/features/enlinkd/adapters/common/pom.xml index 9bef8afb4f96..525c849127c8 100644 --- a/features/enlinkd/adapters/common/pom.xml +++ b/features/enlinkd/adapters/common/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.common diff --git a/features/enlinkd/adapters/common/src/main/java/org/opennms/netmgt/enlinkd/snmp/SnmpGetter.java b/features/enlinkd/adapters/common/src/main/java/org/opennms/netmgt/enlinkd/snmp/SnmpGetter.java index 86aa75f62ef8..dc64e4fe8689 100644 --- a/features/enlinkd/adapters/common/src/main/java/org/opennms/netmgt/enlinkd/snmp/SnmpGetter.java +++ b/features/enlinkd/adapters/common/src/main/java/org/opennms/netmgt/enlinkd/snmp/SnmpGetter.java @@ -45,28 +45,22 @@ public class SnmpGetter extends TableTracker { /** * The SnmpPeer object used to communicate via SNMP with the remote host. */ - private SnmpAgentConfig m_agentConfig; - private Integer m_nodeid; - private LocationAwareSnmpClient m_client; - private String m_location; + private final SnmpAgentConfig m_agentConfig; + private final LocationAwareSnmpClient m_client; + private final String m_location; private static final Logger LOG = LoggerFactory.getLogger(SnmpGetter.class); - public SnmpGetter(SnmpAgentConfig peer, LocationAwareSnmpClient client, String location, Integer nodeid) { + public SnmpGetter(SnmpAgentConfig peer, LocationAwareSnmpClient client, String location) { m_agentConfig = peer; m_client = client; m_location = location; - m_nodeid=nodeid; } - public Integer getNodeId() { - return m_nodeid; - } - public SnmpValue get(SnmpObjId entryoid,Integer index) { SnmpObjId instance = SnmpObjId.get(new int[] {index}); - List oids = new ArrayList(1); + List oids = new ArrayList<>(1); oids.add(SnmpObjId.get(entryoid, instance)); - List val= get(oids); + List val = get(oids); if (val == null || val.size() != 1 || val.get(0) == null || val.get(0).isError()) return null; return val.get(0); @@ -74,24 +68,24 @@ public SnmpValue get(SnmpObjId entryoid,Integer index) { public List get(List entryoids, Integer index) { SnmpObjId instance = SnmpObjId.get(new int[] {index}); - List oids = new ArrayList(entryoids.size()); + List oids = new ArrayList<>(entryoids.size()); for (SnmpObjId entryoid: entryoids) oids.add(SnmpObjId.get(entryoid, instance)); return get(oids); } public List get(List oids) { - List val= null; + List val; LOG.debug("get: oids '{}'", oids); try { val = m_client.get(m_agentConfig, oids).withLocation(m_location).execute().get(); } catch (InterruptedException e) { - LOG.error("run: node [{}]: InterruptedException: snmp GET {}: {}", - getNodeId(), oids, e.getMessage()); + LOG.error("get: InterruptedException: snmp GET {}: {}", + oids, e.getMessage()); return null; } catch (ExecutionException e) { - LOG.error("run: node [{}]: ExecutionException: snmp GET {}: {}", - getNodeId(), oids,e.getMessage()); + LOG.error("get: ExecutionException: snmp GET {}: {}", + oids, e.getMessage()); return null; } LOG.debug("get: oid '{}' found value '{}'", oids, val); diff --git a/features/enlinkd/adapters/pom.xml b/features/enlinkd/adapters/pom.xml index 6cd79c467295..ae674be24a84 100644 --- a/features/enlinkd/adapters/pom.xml +++ b/features/enlinkd/adapters/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.enlinkd - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd diff --git a/features/enlinkd/adapters/updaters/bridge/pom.xml b/features/enlinkd/adapters/updaters/bridge/pom.xml index c40fcf495e54..2552fad9e86e 100644 --- a/features/enlinkd/adapters/updaters/bridge/pom.xml +++ b/features/enlinkd/adapters/updaters/bridge/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters.updaters - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.updaters.bridge diff --git a/features/enlinkd/adapters/updaters/cdp/pom.xml b/features/enlinkd/adapters/updaters/cdp/pom.xml index 2b3b5b039630..ef965de2ba21 100644 --- a/features/enlinkd/adapters/updaters/cdp/pom.xml +++ b/features/enlinkd/adapters/updaters/cdp/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters.updaters - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.updaters.cdp diff --git a/features/enlinkd/adapters/updaters/isis/pom.xml b/features/enlinkd/adapters/updaters/isis/pom.xml index 5ed8d95fec40..390a5ad10726 100644 --- a/features/enlinkd/adapters/updaters/isis/pom.xml +++ b/features/enlinkd/adapters/updaters/isis/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters.updaters - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.updaters.isis diff --git a/features/enlinkd/adapters/updaters/lldp/pom.xml b/features/enlinkd/adapters/updaters/lldp/pom.xml index ff122da95ca4..38fe54a39c98 100644 --- a/features/enlinkd/adapters/updaters/lldp/pom.xml +++ b/features/enlinkd/adapters/updaters/lldp/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters.updaters - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.updaters.lldp diff --git a/features/enlinkd/adapters/updaters/lldp/src/main/java/org/opennms/netmgt/enlinkd/LldpOnmsTopologyUpdater.java b/features/enlinkd/adapters/updaters/lldp/src/main/java/org/opennms/netmgt/enlinkd/LldpOnmsTopologyUpdater.java index 0b45a5a46247..ecde179063ec 100644 --- a/features/enlinkd/adapters/updaters/lldp/src/main/java/org/opennms/netmgt/enlinkd/LldpOnmsTopologyUpdater.java +++ b/features/enlinkd/adapters/updaters/lldp/src/main/java/org/opennms/netmgt/enlinkd/LldpOnmsTopologyUpdater.java @@ -30,6 +30,7 @@ import java.util.Map; +import org.opennms.core.utils.LldpUtils; import org.opennms.netmgt.enlinkd.common.TopologyUpdater; import org.opennms.netmgt.enlinkd.model.IpInterfaceTopologyEntity; import org.opennms.netmgt.enlinkd.model.LldpElementTopologyEntity; @@ -63,10 +64,20 @@ public static LldpOnmsTopologyUpdater clone (LldpOnmsTopologyUpdater bpu) { public static OnmsTopologyPort create(OnmsTopologyVertex source,LldpLinkTopologyEntity sourceLink, LldpLinkTopologyEntity targetlink, SnmpInterfaceTopologyEntity snmpiface) { - OnmsTopologyPort port = OnmsTopologyPort.create(sourceLink.getId().toString(),source, sourceLink.getLldpPortIfindex()); + OnmsTopologyPort port = OnmsTopologyPort.create(sourceLink.getId().toString(), source, sourceLink.getLldpPortIfindex()); port.setIfindex(sourceLink.getLldpPortIfindex()); if (snmpiface != null) { - port.setIfname(snmpiface.getIfName()); + port.setIfname(snmpiface.getIfName()); + } else if (sourceLink.getLldpPortIdSubType() == LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME) { + port.setIfname(sourceLink.getLldpPortId()); + } else if (targetlink.getLldpRemPortIdSubType() == LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME) { + port.setIfname(targetlink.getLldpRemPortId()); + } else if (!"".equals(sourceLink.getLldpPortDescr())) { + port.setIfname(sourceLink.getLldpPortDescr()); + } else if (!"".equals(targetlink.getLldpRemPortDescr())) { + port.setIfname(targetlink.getLldpRemPortDescr()); + } else { + port.setIfname(sourceLink.getLldpPortId()); } port.setAddr(Topology.getRemoteAddress(targetlink)); port.setToolTipText(Topology.getPortTextString(source.getLabel(),port.getIfindex(), port.getAddr(), snmpiface)); diff --git a/features/enlinkd/adapters/updaters/nodes/pom.xml b/features/enlinkd/adapters/updaters/nodes/pom.xml index fd35a37b56fc..c14a47f1f074 100644 --- a/features/enlinkd/adapters/updaters/nodes/pom.xml +++ b/features/enlinkd/adapters/updaters/nodes/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters.updaters - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.updaters.nodes diff --git a/features/enlinkd/adapters/updaters/ospf/pom.xml b/features/enlinkd/adapters/updaters/ospf/pom.xml index e75df40f1485..6f40bf5cbff7 100644 --- a/features/enlinkd/adapters/updaters/ospf/pom.xml +++ b/features/enlinkd/adapters/updaters/ospf/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters.updaters - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.updaters.ospf diff --git a/features/enlinkd/adapters/updaters/pom.xml b/features/enlinkd/adapters/updaters/pom.xml index 860b09dcc886..54e955ce172a 100644 --- a/features/enlinkd/adapters/updaters/pom.xml +++ b/features/enlinkd/adapters/updaters/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.adapters - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.adapters.updaters diff --git a/features/enlinkd/api/pom.xml b/features/enlinkd/api/pom.xml index 106c59bbef85..a941cb6ee1a8 100644 --- a/features/enlinkd/api/pom.xml +++ b/features/enlinkd/api/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.enlinkd org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd diff --git a/features/enlinkd/config/pom.xml b/features/enlinkd/config/pom.xml index c011e6e2ecb5..2a62851f6ce5 100644 --- a/features/enlinkd/config/pom.xml +++ b/features/enlinkd/config/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.enlinkd - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd diff --git a/features/enlinkd/daemon/pom.xml b/features/enlinkd/daemon/pom.xml index 61d940b13a78..98781cd58ece 100644 --- a/features/enlinkd/daemon/pom.xml +++ b/features/enlinkd/daemon/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.enlinkd - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd diff --git a/features/enlinkd/generator/pom.xml b/features/enlinkd/generator/pom.xml index 8622c6fb0819..5e2548db9586 100644 --- a/features/enlinkd/generator/pom.xml +++ b/features/enlinkd/generator/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.enlinkd - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.enlinkd.generator @@ -35,12 +35,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.enterprise + osgi.enterprise provided diff --git a/features/enlinkd/persistence/api/pom.xml b/features/enlinkd/persistence/api/pom.xml index 8b3ed9e271f9..cb090d4e048f 100644 --- a/features/enlinkd/persistence/api/pom.xml +++ b/features/enlinkd/persistence/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.persistence - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.persistence.api diff --git a/features/enlinkd/persistence/api/src/main/java/org/opennms/netmgt/enlinkd/model/IpInterfaceTopologyEntity.java b/features/enlinkd/persistence/api/src/main/java/org/opennms/netmgt/enlinkd/model/IpInterfaceTopologyEntity.java index 940ed4ba0aba..6ae98fbe67a0 100644 --- a/features/enlinkd/persistence/api/src/main/java/org/opennms/netmgt/enlinkd/model/IpInterfaceTopologyEntity.java +++ b/features/enlinkd/persistence/api/src/main/java/org/opennms/netmgt/enlinkd/model/IpInterfaceTopologyEntity.java @@ -1,8 +1,8 @@ /******************************************************************************* * This file is part of OpenNMS(R). * - * Copyright (C) 2018 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2018 The OpenNMS Group, Inc. + * Copyright (C) 2018-2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. * * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. * @@ -57,6 +57,12 @@ public IpInterfaceTopologyEntity(Integer id, this.snmpInterfaceId = snmpInterfaceId; } + public IpInterfaceTopologyEntity(Integer id, + InetAddress ipAddress, String isManaged, String snmpPrimary, Integer nodeId, + Integer snmpInterfaceId){ + this(id, ipAddress, isManaged, PrimaryType.get(snmpPrimary), nodeId, snmpInterfaceId); + } + public static IpInterfaceTopologyEntity create(OnmsIpInterface ipInterface) { return new IpInterfaceTopologyEntity( ipInterface.getId(), @@ -90,6 +96,10 @@ public boolean isManaged() { return "M".equals(getIsManaged()); } + public char snmpPrimary() { + return isSnmpPrimary.getCharCode(); + } + public PrimaryType getIsSnmpPrimary() { return isSnmpPrimary; } diff --git a/features/enlinkd/persistence/api/src/main/java/org/opennms/netmgt/enlinkd/model/LldpElementTopologyEntity.java b/features/enlinkd/persistence/api/src/main/java/org/opennms/netmgt/enlinkd/model/LldpElementTopologyEntity.java index 3b915c880446..4f47c04b35e1 100644 --- a/features/enlinkd/persistence/api/src/main/java/org/opennms/netmgt/enlinkd/model/LldpElementTopologyEntity.java +++ b/features/enlinkd/persistence/api/src/main/java/org/opennms/netmgt/enlinkd/model/LldpElementTopologyEntity.java @@ -37,11 +37,13 @@ public class LldpElementTopologyEntity { private final Integer id; private final String lldpChassisId; + private final String lldpSysname; private final Integer nodeId; - public LldpElementTopologyEntity(Integer id, String lldpChassisId, Integer nodeId) { + public LldpElementTopologyEntity(Integer id, String lldpChassisId, String sysname, Integer nodeId) { this.id = id; this.lldpChassisId = lldpChassisId; + this.lldpSysname = sysname; this.nodeId = nodeId; } @@ -49,6 +51,7 @@ public static LldpElementTopologyEntity create(LldpElement element){ return new LldpElementTopologyEntity( element.getId(), element.getLldpChassisId(), + element.getLldpSysname(), Optional.ofNullable(element.getNode()).map(OnmsNode::getId).orElse(null)); } @@ -64,6 +67,10 @@ public Integer getNodeId() { return nodeId; } + public String getLldpSysname() { + return lldpSysname; + } + public String getNodeIdAsString() { if (getNodeId() != null) { return getNodeId().toString(); diff --git a/features/enlinkd/persistence/api/src/main/java/org/opennms/netmgt/enlinkd/model/LldpLinkTopologyEntity.java b/features/enlinkd/persistence/api/src/main/java/org/opennms/netmgt/enlinkd/model/LldpLinkTopologyEntity.java index 960090139fba..2f654cc655ff 100644 --- a/features/enlinkd/persistence/api/src/main/java/org/opennms/netmgt/enlinkd/model/LldpLinkTopologyEntity.java +++ b/features/enlinkd/persistence/api/src/main/java/org/opennms/netmgt/enlinkd/model/LldpLinkTopologyEntity.java @@ -32,6 +32,7 @@ import org.opennms.netmgt.model.ReadOnlyEntity; import com.google.common.base.MoreObjects; +import org.springframework.util.Assert; @ReadOnlyEntity public class LldpLinkTopologyEntity { @@ -39,22 +40,29 @@ public class LldpLinkTopologyEntity { private final Integer id; private final Integer nodeId; private final String lldpRemChassisId; + private final String lldpRemSysname; private final String lldpRemPortId; + private final String lldpRemPortDescr; private final LldpUtils.LldpPortIdSubType lldpRemPortIdSubType; private final String lldpPortId; private final LldpUtils.LldpPortIdSubType lldpPortIdSubType; private final String lldpPortDescr; private final Integer lldpPortIfindex; - public LldpLinkTopologyEntity(Integer id, Integer nodeId, String lldpRemChassisId, String lldpRemPortId, - LldpUtils.LldpPortIdSubType lldpRemPortIdSubType, String lldpPortId, + public LldpLinkTopologyEntity(Integer id, Integer nodeId, String lldpRemChassisId, String lldpRemSysname, String lldpRemPortId, + LldpUtils.LldpPortIdSubType lldpRemPortIdSubType, + String remportdescr, + String lldpPortId, LldpUtils.LldpPortIdSubType lldpPortIdSubType, String lldpPortDescr, Integer lldpPortIfindex) { + Assert.notNull(remportdescr); this.id = id; this.nodeId = nodeId; this.lldpRemChassisId = lldpRemChassisId; + this.lldpRemSysname = lldpRemSysname; this.lldpRemPortId = lldpRemPortId; this.lldpRemPortIdSubType = lldpRemPortIdSubType; this.lldpPortId = lldpPortId; + this.lldpRemPortDescr = remportdescr; this.lldpPortIdSubType = lldpPortIdSubType; this.lldpPortDescr = lldpPortDescr; this.lldpPortIfindex = lldpPortIfindex; @@ -65,8 +73,10 @@ public static LldpLinkTopologyEntity create (LldpLink link) { link.getId() , link.getNode().getId() , link.getLldpRemChassisId() + , link.getLldpRemSysname() , link.getLldpRemPortId() , link.getLldpRemPortIdSubType() + ,link.getLldpPortDescr() , link.getLldpPortId() , link.getLldpPortIdSubType() , link.getLldpPortDescr() @@ -116,6 +126,13 @@ public String getLldpPortDescr() { public Integer getLldpPortIfindex() { return lldpPortIfindex; } + public String getLldpRemPortDescr() { + return lldpRemPortDescr; + } + + public String getLldpRemSysname() { + return lldpRemSysname; + } @Override public String toString() { @@ -123,12 +140,15 @@ public String toString() { .add("id", id) .add("nodeId", nodeId) .add("lldpRemChassisId", lldpRemChassisId) + .add("lldpRemSysname", lldpRemSysname) .add("lldpRemPortId", lldpRemPortId) .add("lldpRemPortIdSubType", lldpRemPortIdSubType) + .add("lldpRemPortDescr", lldpRemPortDescr) .add("lldpPortId", lldpPortId) .add("lldpPortIdSubType", lldpPortIdSubType) .add("lldpPortDescr", lldpPortDescr) .add("lldpPortIfindex", lldpPortIfindex) .toString(); } + } diff --git a/features/enlinkd/persistence/impl/pom.xml b/features/enlinkd/persistence/impl/pom.xml index d8153518514c..a7bf45538ee3 100644 --- a/features/enlinkd/persistence/impl/pom.xml +++ b/features/enlinkd/persistence/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.persistence - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.persistence.impl diff --git a/features/enlinkd/persistence/impl/src/main/java/org/opennms/netmgt/enlinkd/persistence/impl/TopologyEntityDaoHibernate.java b/features/enlinkd/persistence/impl/src/main/java/org/opennms/netmgt/enlinkd/persistence/impl/TopologyEntityDaoHibernate.java index 5e7c8d98f95c..22a82bff1818 100644 --- a/features/enlinkd/persistence/impl/src/main/java/org/opennms/netmgt/enlinkd/persistence/impl/TopologyEntityDaoHibernate.java +++ b/features/enlinkd/persistence/impl/src/main/java/org/opennms/netmgt/enlinkd/persistence/impl/TopologyEntityDaoHibernate.java @@ -1,8 +1,8 @@ /******************************************************************************* * This file is part of OpenNMS(R). * - * Copyright (C) 2018 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2018 The OpenNMS Group, Inc. + * Copyright (C) 2018-2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. * * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. * @@ -68,7 +68,7 @@ public List getIsIsLinkTopologyEntities() { @Override public List getLldpLinkTopologyEntities() { return (List)getHibernateTemplate().find( - "select new org.opennms.netmgt.enlinkd.model.LldpLinkTopologyEntity(l.id, l.node.id, l.lldpRemChassisId, l.lldpRemPortId, l.lldpRemPortIdSubType, l.lldpPortId, l.lldpPortIdSubType, l.lldpPortDescr, l.lldpPortIfindex) from org.opennms.netmgt.enlinkd.model.LldpLink l"); + "select new org.opennms.netmgt.enlinkd.model.LldpLinkTopologyEntity(l.id, l.node.id, l.lldpRemChassisId, l.lldpRemSysname, l.lldpRemPortId, l.lldpRemPortIdSubType, l.lldpRemPortDescr, l.lldpPortId, l.lldpPortIdSubType, l.lldpPortDescr, l.lldpPortIfindex) from org.opennms.netmgt.enlinkd.model.LldpLink l"); } @Override @@ -89,7 +89,7 @@ public List getSnmpTopologyEntities() { public List getIpTopologyEntities() { return (List)getHibernateTemplate().find( "select new org.opennms.netmgt.enlinkd.model.IpInterfaceTopologyEntity(" + - "i.id, i.ipAddress, i.isManaged, i.isSnmpPrimary, i.node.id, i.snmpInterface.id) " + + "i.id, i.ipAddress, i.isManaged, i.snmpPrimary, i.node.id, i.snmpInterface.id) " + "from org.opennms.netmgt.model.OnmsIpInterface i"); } @@ -103,7 +103,7 @@ public List getCdpElementTopologyEntities() { @Override public List getLldpElementTopologyEntities() { return (List)getHibernateTemplate().find( - "select new org.opennms.netmgt.enlinkd.model.LldpElementTopologyEntity(e.id, e.lldpChassisId, e.node.id)" + + "select new org.opennms.netmgt.enlinkd.model.LldpElementTopologyEntity(e.id, e.lldpChassisId, e.lldpSysname, e.node.id)" + "from org.opennms.netmgt.enlinkd.model.LldpElement e"); } @@ -113,4 +113,4 @@ public List getIsIsElementTopologyEntities() { "select new org.opennms.netmgt.enlinkd.model.IsIsElementTopologyEntity(e.id, e.isisSysID, e.node.id)" + "from org.opennms.netmgt.enlinkd.model.IsIsElement e"); } -} \ No newline at end of file +} diff --git a/features/enlinkd/persistence/pom.xml b/features/enlinkd/persistence/pom.xml index ac02e3002079..8f30b9d8c4dd 100644 --- a/features/enlinkd/persistence/pom.xml +++ b/features/enlinkd/persistence/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.enlinkd - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd diff --git a/features/enlinkd/pom.xml b/features/enlinkd/pom.xml index 5829a66a133f..08feb5a13359 100644 --- a/features/enlinkd/pom.xml +++ b/features/enlinkd/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/enlinkd/service/api/pom.xml b/features/enlinkd/service/api/pom.xml index 7df0bef335cc..52f55b3bc2af 100644 --- a/features/enlinkd/service/api/pom.xml +++ b/features/enlinkd/service/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.service - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.service.api diff --git a/features/enlinkd/service/impl/pom.xml b/features/enlinkd/service/impl/pom.xml index f037c8568e2e..7b346775f4f9 100644 --- a/features/enlinkd/service/impl/pom.xml +++ b/features/enlinkd/service/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.enlinkd org.opennms.features.enlinkd.service - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd.service.impl diff --git a/features/enlinkd/service/impl/src/main/java/org/opennms/netmgt/enlinkd/service/impl/LldpTopologyServiceImpl.java b/features/enlinkd/service/impl/src/main/java/org/opennms/netmgt/enlinkd/service/impl/LldpTopologyServiceImpl.java index d311e12a0ab3..b7523a6df01d 100644 --- a/features/enlinkd/service/impl/src/main/java/org/opennms/netmgt/enlinkd/service/impl/LldpTopologyServiceImpl.java +++ b/features/enlinkd/service/impl/src/main/java/org/opennms/netmgt/enlinkd/service/impl/LldpTopologyServiceImpl.java @@ -97,7 +97,7 @@ public void store(int nodeId, LldpLink link) { @Transactional protected void saveLldpLink(final int nodeId, final LldpLink saveMe) { - new UpsertTemplate(m_transactionManager, + new UpsertTemplate<>(m_transactionManager, m_lldpLinkDao) { @Override @@ -178,13 +178,12 @@ public List> List> results = new ArrayList<>(); Map nodelldpelementidMap = getTopologyEntityCache().getLldpElementTopologyEntities().stream() - .collect(Collectors.toMap(lldpelem -> lldpelem.getNodeId(), lldpelem -> lldpelem)); + .collect(Collectors.toMap(LldpElementTopologyEntity::getNodeId, lldpelem -> lldpelem)); List allLinks = getTopologyEntityCache().getLldpLinkTopologyEntities(); // 1.) create mapping Map targetLinkMap = new HashMap<>(); for(LldpLinkTopologyEntity targetLink : allLinks){ - CompositeKey key = new CompositeKey( targetLink.getLldpRemChassisId(), nodelldpelementidMap.get(targetLink.getNodeId()).getLldpChassisId(), @@ -193,26 +192,44 @@ public List> targetLink.getLldpRemPortId(), targetLink.getLldpRemPortIdSubType()); targetLinkMap.put(key, targetLink); + CompositeKey descrkey = new CompositeKey( + targetLink.getLldpRemChassisId(), + nodelldpelementidMap.get(targetLink.getNodeId()).getLldpChassisId(), + targetLink.getLldpPortDescr(), + targetLink.getLldpRemPortDescr()); + targetLinkMap.put(descrkey,targetLink); + CompositeKey sysnameKey = new CompositeKey( + targetLink.getLldpRemSysname(), + nodelldpelementidMap.get(targetLink.getNodeId()).getLldpSysname(), + targetLink.getLldpPortId(), + targetLink.getLldpPortIdSubType(), + targetLink.getLldpRemPortId(), + targetLink.getLldpRemPortIdSubType() + ); + targetLinkMap.put(sysnameKey,targetLink); } // 2.) iterate - Set parsed = new HashSet(); + Set parsed = new HashSet<>(); for (LldpLinkTopologyEntity sourceLink : allLinks) { if (parsed.contains(sourceLink.getId())) { continue; } String sourceLldpChassisId = nodelldpelementidMap.get(sourceLink.getNodeId()).getLldpChassisId(); if (sourceLldpChassisId.equals(sourceLink.getLldpRemChassisId())) { - if (LOG.isDebugEnabled()) { - LOG.debug("getLldpLinks: self link not adding source: {}",sourceLink); - } + LOG.debug("getLldpLinks: self link not adding source: {}",sourceLink); parsed.add(sourceLink.getId()); continue; } - if (LOG.isDebugEnabled()) { - LOG.debug("getLldpLinks: source: {}",sourceLink); + String sourceLldpSysname = nodelldpelementidMap.get(sourceLink.getNodeId()).getLldpSysname(); + if (sourceLldpSysname.equals(sourceLink.getLldpRemSysname())) { + LOG.debug("getLldpLinks: self link not adding source: {}",sourceLink); + parsed.add(sourceLink.getId()); + continue; } + LOG.info("getLldpLinks: checking target for source: {}", sourceLink); + CompositeKey key = new CompositeKey( nodelldpelementidMap.get(sourceLink.getNodeId()).getLldpChassisId(), sourceLink.getLldpRemChassisId(), @@ -221,15 +238,32 @@ public List> sourceLink.getLldpPortId(), sourceLink.getLldpPortIdSubType()); LldpLinkTopologyEntity targetLink = targetLinkMap.get(key); - if (targetLink == null) { - LOG.debug("getLldpLinks: cannot found target for source: '{}'", sourceLink.getId()); + LOG.debug("getLldpLinks: cannot found target using default key for source: '{}'", sourceLink.getId()); + CompositeKey descrkey = new CompositeKey( + nodelldpelementidMap.get(sourceLink.getNodeId()).getLldpChassisId(), + sourceLink.getLldpRemChassisId(), + sourceLink.getLldpRemPortDescr(), + sourceLink.getLldpPortDescr()); + targetLink = targetLinkMap.get(descrkey); + } + if (targetLink == null) { + LOG.debug("getLldpLinks: cannot found target using descr key for source: '{}'", sourceLink.getId()); + CompositeKey sysnamekey = new CompositeKey( + nodelldpelementidMap.get(sourceLink.getNodeId()).getLldpSysname(), + sourceLink.getLldpRemSysname(), + sourceLink.getLldpRemPortId(), + sourceLink.getLldpRemPortIdSubType(), + sourceLink.getLldpPortId(), + sourceLink.getLldpPortIdSubType()); + targetLink = targetLinkMap.get(sysnamekey); + } + if (targetLink == null) { + LOG.debug("getLldpLinks: cannot found target using sysname key for source: '{}'", sourceLink.getId()); continue; } - if (LOG.isDebugEnabled()) { - LOG.debug("getLldpLinks: lldp: {} target: {}", sourceLink.getLldpRemChassisId(), targetLink); - } + LOG.info("getLldpLinks: source: '{}' found target: {}", sourceLink.getId(), targetLink); parsed.add(sourceLink.getId()); parsed.add(targetLink.getId()); diff --git a/features/enlinkd/service/impl/src/main/java/org/opennms/netmgt/enlinkd/service/impl/NodeTopologyServiceImpl.java b/features/enlinkd/service/impl/src/main/java/org/opennms/netmgt/enlinkd/service/impl/NodeTopologyServiceImpl.java index 506069bc2008..569c4f0676d7 100644 --- a/features/enlinkd/service/impl/src/main/java/org/opennms/netmgt/enlinkd/service/impl/NodeTopologyServiceImpl.java +++ b/features/enlinkd/service/impl/src/main/java/org/opennms/netmgt/enlinkd/service/impl/NodeTopologyServiceImpl.java @@ -1,8 +1,8 @@ /******************************************************************************* * This file is part of OpenNMS(R). * - * Copyright (C) 2014 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2014 The OpenNMS Group, Inc. + * Copyright (C) 2014-2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. * * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. * @@ -59,8 +59,8 @@ public List findAllSnmpNode() { "iface", JoinType.LEFT_JOIN) })); criteria.addRestriction(new EqRestriction("type", NodeType.ACTIVE)); - criteria.addRestriction(new EqRestriction("iface.isSnmpPrimary", - PrimaryType.PRIMARY)); + criteria.addRestriction(new EqRestriction("iface.snmpPrimary", + PrimaryType.PRIMARY.getCharCode())); for (final OnmsNode node : m_nodeDao.findMatching(criteria)) { nodes.add(new Node(node.getId(), node.getLabel(), node.getPrimaryInterface().getIpAddress(), @@ -78,8 +78,8 @@ public Node getSnmpNode(final int nodeid) { "iface", JoinType.LEFT_JOIN) })); criteria.addRestriction(new EqRestriction("type", NodeType.ACTIVE)); - criteria.addRestriction(new EqRestriction("iface.isSnmpPrimary", - PrimaryType.PRIMARY)); + criteria.addRestriction(new EqRestriction("iface.snmpPrimary", + PrimaryType.PRIMARY.getCharCode())); criteria.addRestriction(new EqRestriction("id", nodeid)); final List nodes = m_nodeDao.findMatching(criteria); diff --git a/features/enlinkd/service/impl/src/test/java/org/opennms/netmgt/enlinkd/service/ServiceTest.java b/features/enlinkd/service/impl/src/test/java/org/opennms/netmgt/enlinkd/service/ServiceTest.java index d02cb90977fd..312f1a382018 100644 --- a/features/enlinkd/service/impl/src/test/java/org/opennms/netmgt/enlinkd/service/ServiceTest.java +++ b/features/enlinkd/service/impl/src/test/java/org/opennms/netmgt/enlinkd/service/ServiceTest.java @@ -145,20 +145,20 @@ public void setUp() { ); lldpelements = Arrays.asList( - createLldpElement(30,nodes.get(0), "Element0"), - createLldpElement(31,nodes.get(1), "match1.1"), - createLldpElement(32,nodes.get(2), "Element2"), - createLldpElement(33,nodes.get(3), "match1.2"), - createLldpElement(34,nodes.get(4), "match2.1"), - createLldpElement(35,nodes.get(5), "match2.2")); + createLldpElement(30,nodes.get(0), "Element0", "host30"), + createLldpElement(31,nodes.get(1), "match1.1", "host31"), + createLldpElement(32,nodes.get(2), "Element2", "host32"), + createLldpElement(33,nodes.get(3), "match1.2", "host33"), + createLldpElement(34,nodes.get(4), "match2.1", "host34"), + createLldpElement(35,nodes.get(5), "match2.2", "host35")); lldpLinks = Arrays.asList( - createLldpLink(0, nodes.get(0), "nomatch1", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_PORTCOMPONENT, "nomatch2", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_PORTCOMPONENT, "nomatch3"), - createLldpLink(1, nodes.get(1), "match1.5", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, "match1.3", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_MACADDRESS, "match1.2"), - createLldpLink(2, nodes.get(2), "nomatch4", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_PORTCOMPONENT, "nomatch5", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_PORTCOMPONENT, "nomatch6"), - createLldpLink(3, nodes.get(3), "match1.3", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_MACADDRESS, "match1.5", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, "match1.1"), - createLldpLink(4, nodes.get(4), "match2.5", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_AGENTCIRCUITID, "match2.3", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACEALIAS, "match2.2"), - createLldpLink(5, nodes.get(5), "match2.3", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACEALIAS, "match2.5", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_AGENTCIRCUITID, "match2.1") + createLldpLink(0, nodes.get(0), "nomatch1", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_PORTCOMPONENT, "nomatch2", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_PORTCOMPONENT, "nomatch3","host0"), + createLldpLink(1, nodes.get(1), "match1.5", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, "match1.3", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_MACADDRESS, "match1.2","host1"), + createLldpLink(2, nodes.get(2), "nomatch4", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_PORTCOMPONENT, "nomatch5", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_PORTCOMPONENT, "nomatch6","host2"), + createLldpLink(3, nodes.get(3), "match1.3", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_MACADDRESS, "match1.5", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, "match1.1","host3"), + createLldpLink(4, nodes.get(4), "match2.5", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_AGENTCIRCUITID, "match2.3", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACEALIAS, "match2.2","host4"), + createLldpLink(5, nodes.get(5), "match2.3", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACEALIAS, "match2.5", LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_AGENTCIRCUITID, "match2.1","host5") ); EasyMock.expect(topologyEntityCache.getCdpLinkTopologyEntities()).andReturn(cdpLinks).anyTimes(); @@ -232,13 +232,13 @@ private void assertMatching(List allLinks, List org.opennms.features org.opennms.features.enlinkd - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd diff --git a/features/enlinkd/shell/pom.xml b/features/enlinkd/shell/pom.xml index 49135671100b..6b517599a821 100644 --- a/features/enlinkd/shell/pom.xml +++ b/features/enlinkd/shell/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.enlinkd - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.enlinkd.shell @@ -48,12 +48,12 @@
org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.enterprise + osgi.enterprise provided diff --git a/features/enlinkd/tests/pom.xml b/features/enlinkd/tests/pom.xml index f46c1c2cf157..48dc42758285 100644 --- a/features/enlinkd/tests/pom.xml +++ b/features/enlinkd/tests/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.enlinkd - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.enlinkd diff --git a/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/EnLinkdSnmpIT.java b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/EnLinkdSnmpIT.java index 857ed086f766..d70212b16e30 100644 --- a/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/EnLinkdSnmpIT.java +++ b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/EnLinkdSnmpIT.java @@ -28,20 +28,6 @@ package org.opennms.netmgt.enlinkd; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertNotNull; - -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.concurrent.ExecutionException; -import java.util.Properties; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -53,49 +39,66 @@ import org.opennms.core.utils.LldpUtils.LldpChassisIdSubType; import org.opennms.core.utils.LldpUtils.LldpPortIdSubType; import org.opennms.netmgt.config.SnmpPeerFactory; + import org.opennms.netmgt.enlinkd.model.BridgeElement; -import org.opennms.netmgt.enlinkd.model.BridgeStpLink; -import org.opennms.netmgt.enlinkd.model.IpNetToMedia; -import org.opennms.netmgt.enlinkd.model.IsIsElement; -import org.opennms.netmgt.enlinkd.model.IsIsLink; -import org.opennms.netmgt.enlinkd.model.LldpElement; -import org.opennms.netmgt.enlinkd.model.LldpLink; -import org.opennms.netmgt.enlinkd.model.OspfElement; -import org.opennms.netmgt.enlinkd.model.OspfLink; import org.opennms.netmgt.enlinkd.model.BridgeElement.BridgeDot1dBaseType; import org.opennms.netmgt.enlinkd.model.BridgeElement.BridgeDot1dStpProtocolSpecification; +import org.opennms.netmgt.enlinkd.model.BridgeStpLink; import org.opennms.netmgt.enlinkd.model.BridgeStpLink.BridgeDot1dStpPortEnable; import org.opennms.netmgt.enlinkd.model.BridgeStpLink.BridgeDot1dStpPortState; import org.opennms.netmgt.enlinkd.model.IpNetToMedia.IpNetToMediaType; +import org.opennms.netmgt.enlinkd.model.LldpElement; +import org.opennms.netmgt.enlinkd.model.LldpLink; +import org.opennms.netmgt.enlinkd.model.IsIsElement; import org.opennms.netmgt.enlinkd.model.IsIsElement.IsisAdminState; +import org.opennms.netmgt.enlinkd.model.IsIsLink; import org.opennms.netmgt.enlinkd.model.IsIsLink.IsisISAdjNeighSysType; import org.opennms.netmgt.enlinkd.model.IsIsLink.IsisISAdjState; +import org.opennms.netmgt.enlinkd.model.IpNetToMedia; +import org.opennms.netmgt.enlinkd.model.OspfElement; import org.opennms.netmgt.enlinkd.model.OspfElement.Status; import org.opennms.netmgt.enlinkd.model.OspfElement.TruthValue; +import org.opennms.netmgt.enlinkd.model.OspfLink; + import org.opennms.netmgt.enlinkd.service.api.BridgeForwardingTableEntry; import org.opennms.netmgt.enlinkd.service.api.BridgeForwardingTableEntry.BridgeDot1qTpFdbStatus; -import org.opennms.netmgt.enlinkd.snmp.CdpGlobalGroupTracker; -import org.opennms.netmgt.enlinkd.snmp.CdpCacheTableTracker; -import org.opennms.netmgt.enlinkd.snmp.CdpInterfacePortNameGetter; -import org.opennms.netmgt.enlinkd.snmp.Dot1dBasePortTableTracker; + import org.opennms.netmgt.enlinkd.snmp.Dot1dBaseTracker; import org.opennms.netmgt.enlinkd.snmp.Dot1dStpPortTableTracker; import org.opennms.netmgt.enlinkd.snmp.Dot1dTpFdbTableTracker; import org.opennms.netmgt.enlinkd.snmp.Dot1qTpFdbTableTracker; -import org.opennms.netmgt.enlinkd.snmp.IpNetToMediaTableTracker; +import org.opennms.netmgt.enlinkd.snmp.Dot1dBasePortTableTracker; +import org.opennms.netmgt.enlinkd.snmp.Dot1dBasePortTableTracker.Dot1dBasePortRow; + import org.opennms.netmgt.enlinkd.snmp.IsisCircTableTracker; import org.opennms.netmgt.enlinkd.snmp.IsisISAdjTableTracker; import org.opennms.netmgt.enlinkd.snmp.IsisSysObjectGroupTracker; -import org.opennms.netmgt.enlinkd.snmp.LldpLocPortGetter; + +import org.opennms.netmgt.enlinkd.snmp.IpNetToMediaTableTracker; + import org.opennms.netmgt.enlinkd.snmp.LldpLocalGroupTracker; +import org.opennms.netmgt.enlinkd.snmp.LldpLocPortGetter; import org.opennms.netmgt.enlinkd.snmp.LldpRemTableTracker; + +import org.opennms.netmgt.enlinkd.snmp.TimeTetraLldpRemTableTracker; +import org.opennms.netmgt.enlinkd.snmp.TimeTetraLldpLocPortGetter; + +import org.opennms.netmgt.enlinkd.snmp.MtxrNeighborTableTracker; +import org.opennms.netmgt.enlinkd.snmp.MtxrLldpLocalTableTracker; +import org.opennms.netmgt.enlinkd.snmp.MtxrLldpRemTableTracker; + +import org.opennms.netmgt.enlinkd.snmp.OspfIpAddrTableGetter; import org.opennms.netmgt.enlinkd.snmp.OspfGeneralGroupTracker; import org.opennms.netmgt.enlinkd.snmp.OspfIfTableTracker; -import org.opennms.netmgt.enlinkd.snmp.OspfIpAddrTableGetter; import org.opennms.netmgt.enlinkd.snmp.OspfNbrTableTracker; -import org.opennms.netmgt.enlinkd.snmp.Dot1dBasePortTableTracker.Dot1dBasePortRow; + +import org.opennms.netmgt.enlinkd.snmp.CdpCacheTableTracker; +import org.opennms.netmgt.enlinkd.snmp.CdpGlobalGroupTracker; +import org.opennms.netmgt.enlinkd.snmp.CdpInterfacePortNameGetter; + import org.opennms.netmgt.nb.NmsNetworkBuilder; import org.opennms.netmgt.snmp.SnmpAgentConfig; +import org.opennms.netmgt.snmp.SnmpValue; import org.opennms.netmgt.snmp.proxy.LocationAwareSnmpClient; import org.opennms.test.JUnitConfigurationEnvironment; import org.slf4j.Logger; @@ -104,6 +107,25 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.Properties; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.Map.Entry; +import java.util.HashMap; +import java.util.concurrent.ExecutionException; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.fail; + + @RunWith(OpenNMSJUnit4ClassRunner.class) @ContextConfiguration(locations= { "classpath:/META-INF/opennms/applicationContext-soa.xml", @@ -118,16 +140,14 @@ public class EnLinkdSnmpIT extends NmsNetworkBuilder implements InitializingBean private final static Logger LOG = LoggerFactory.getLogger(EnLinkdSnmpIT.class); @Override - public void afterPropertiesSet() throws Exception { + public void afterPropertiesSet() { } @Before public void setUp() throws Exception { Properties p = new Properties(); p.setProperty("log4j.logger.org.opennms.mock.snmp", "WARN"); - p.setProperty("log4j.logger.org.opennms.core.test.snmp", "WARN"); - p.setProperty("log4j.logger.org.opennms.netmgt", "WARN"); - p.setProperty("log4j.logger.org.opennms.netmgt.enlinkd", "DEBUG"); + p.setProperty("log4j.logger.org.opennms.netmgt.snmp", "WARN"); p.setProperty("log4j.logger.org.springframework","WARN"); p.setProperty("log4j.logger.com.mchange.v2.resourcepool", "WARN"); MockLogAppender.setupLogging(p); @@ -135,12 +155,12 @@ public void setUp() throws Exception { @Test public void testInSameNetwork() throws Exception { - assertEquals(true, InetAddressUtils.inSameNetwork(InetAddress.getByName("192.168.0.1"), - InetAddress.getByName("192.168.0.2"),InetAddress.getByName("255.255.255.252"))); - assertEquals(false, InetAddressUtils.inSameNetwork(InetAddress.getByName("192.168.0.1"), - InetAddress.getByName("192.168.0.5"),InetAddress.getByName("255.255.255.252"))); - assertEquals(true, InetAddressUtils.inSameNetwork(InetAddress.getByName("10.10.0.1"), - InetAddress.getByName("10.168.0.5"),InetAddress.getByName("255.0.0.0"))); + assertTrue(InetAddressUtils.inSameNetwork(InetAddress.getByName("192.168.0.1"), + InetAddress.getByName("192.168.0.2"), InetAddress.getByName("255.255.255.252"))); + assertFalse(InetAddressUtils.inSameNetwork(InetAddress.getByName("192.168.0.1"), + InetAddress.getByName("192.168.0.5"), InetAddress.getByName("255.255.255.252"))); + assertTrue(InetAddressUtils.inSameNetwork(InetAddress.getByName("10.10.0.1"), + InetAddress.getByName("10.168.0.5"), InetAddress.getByName("255.0.0.0"))); } @Test @@ -149,7 +169,7 @@ public void testInSameNetwork() throws Exception { }) public void testCdpInterfaceGetter() throws Exception { SnmpAgentConfig config = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(RPict001_IP)); - CdpInterfacePortNameGetter get = new CdpInterfacePortNameGetter(config,m_client,null,0); + CdpInterfacePortNameGetter get = new CdpInterfacePortNameGetter(config, m_client, null); assertEquals("FastEthernet0", get.getInterfaceNameFromCiscoCdpMib(1).toDisplayString()); assertEquals("FastEthernet1", get.getInterfaceNameFromCiscoCdpMib(2).toDisplayString()); @@ -286,14 +306,14 @@ public void testOspfGeneralGroupWalk() throws Exception { OspfElement ospfElement = ospfGeneralGroup.getOspfElement(); assertEquals(InetAddress.getByName("192.168.100.246"), ospfElement.getOspfRouterId()); - assertEquals(null, ospfElement.getOspfRouterIdNetmask()); - assertEquals(null, ospfElement.getOspfRouterIdIfindex()); + assertNull(ospfElement.getOspfRouterIdNetmask()); + assertNull(ospfElement.getOspfRouterIdIfindex()); assertEquals(Status.enabled, ospfElement.getOspfAdminStat()); assertEquals(2, ospfElement.getOspfVersionNumber().intValue()); assertEquals(TruthValue.FALSE, ospfElement.getOspfBdrRtrStatus()); assertEquals(TruthValue.FALSE, ospfElement.getOspfASBdrRtrStatus()); - final OspfIpAddrTableGetter ipAddrTableGetter = new OspfIpAddrTableGetter(config,m_client,null,0); + final OspfIpAddrTableGetter ipAddrTableGetter = new OspfIpAddrTableGetter(config, m_client, null); OspfElement ospfElementN = ipAddrTableGetter.get(ospfElement); assertEquals(InetAddress.getByName("192.168.100.246"), ospfElementN.getOspfRouterId()); @@ -335,7 +355,6 @@ public void processOspfNbrRow(final OspfNbrRow row) { .get(); } catch (final InterruptedException e) { LOG.error("run: collection interrupted, exiting",e); - return; } } @@ -365,7 +384,7 @@ public void processOspfIfRow(final OspfIfRow row) { return; } - final OspfIpAddrTableGetter ipAddrTableGetter = new OspfIpAddrTableGetter(config,m_client,null,0); + final OspfIpAddrTableGetter ipAddrTableGetter = new OspfIpAddrTableGetter(config, m_client, null); for (OspfLink link: links) { link = ipAddrTableGetter.get(link); assertEquals(0, link.getOspfAddressLessIndex().intValue()); @@ -385,7 +404,7 @@ public void processOspfIfRow(final OspfIfRow row) { assertEquals(40, link.getOspfIfIndex().intValue()); assertEquals(InetAddress.getByName("255.255.255.0"), link.getOspfIpMask()); } else { - assertEquals(false, true); + fail(); } } @@ -394,10 +413,7 @@ public void processOspfIfRow(final OspfIfRow row) { /** * This test is designed to test the issues in bug NMS-6921. * - * @see http://issues.opennms.org/browse/NMS-6912 - - * - * @throws Exception + * @see "https://issues.opennms.org/browse/NMS-6912" */ @Test @JUnitSnmpAgents(value={ @@ -433,10 +449,8 @@ public void testLldpDragonWaveLocalGroupWalk() throws Exception { /** * This test is designed to test the issues in bug NMS-6921. * - * @see http://issues.opennms.org/browse/NMS-6912 + * @see "https://issues.opennms.org/browse/NMS-6912" - * - * @throws Exception */ @Test @JUnitSnmpAgents(value={ @@ -446,15 +460,13 @@ public void testLldpDragonWaveLldpLocGetter() throws Exception { SnmpAgentConfig config = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(DW_IP)); - final LldpLocPortGetter lldpLocPort = new LldpLocPortGetter(config,m_client,null,0); - - LldpLink link = new LldpLink(); - link.setLldpLocalPortNum(1); - link = lldpLocPort.getLldpLink(link); - assertEquals(1, link.getLldpLocalPortNum().intValue()); - assertEquals("cf", link.getLldpPortId()); - assertEquals("NuDesign", link.getLldpPortDescr()); - assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACEALIAS, link.getLldpPortIdSubType()); + final LldpLocPortGetter lldpLocPort = new LldpLocPortGetter(config, m_client, null); + + List val = lldpLocPort.get(1); + assertEquals(3, val.size()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACEALIAS, LldpPortIdSubType.get(val.get(0).toInt())); + assertEquals("cf", LldpRemTableTracker.decodeLldpPortId(val.get(0).toInt(), val.get(1))); + assertEquals("NuDesign", val.get(2).toDisplayString()); } @Test @@ -516,11 +528,642 @@ public void processLldpRemRow(final LldpRemRow row) { .execute() .get(); } catch (final InterruptedException e) { - assertEquals(false, true); + fail(); } } + /** + * This test is designed to test the issues in bug NMS-13593. + * + * @see "https://issues.opennms.org/browse/NMS-13593" + + * + */ + @Test + @JUnitSnmpAgents(value={ + @JUnitSnmpAgent(host=ZHBGO1Zsr001_IP, port=161, resource=ZHBGO1Zsr001_RESOURCE), + @JUnitSnmpAgent(host=ZHBGO1Zsr002_IP, port=161, resource=ZHBGO1Zsr002_RESOURCE) + }) + public void testTimeTetraLldpWalk() throws Exception { + String trackerName01 = "lldpLocalGroup01"; + SnmpAgentConfig config01 = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(ZHBGO1Zsr001_IP)); + String trackerName02 = "lldpLocalGroup02"; + SnmpAgentConfig config02 = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(ZHBGO1Zsr002_IP)); + LldpLocalGroupTracker lldpLocalGroup01 = new LldpLocalGroupTracker(); + LldpLocalGroupTracker lldpLocalGroup02 = new LldpLocalGroupTracker(); + final List links01 = new ArrayList<>(); + final List links02 = new ArrayList<>(); + + try { + m_client.walk(config01,lldpLocalGroup01) + .withDescription(trackerName01) + .withLocation(null) + .execute() + .get(); + m_client.walk(config02,lldpLocalGroup02) + .withDescription(trackerName02) + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + LOG.error("run: collection interrupted, exiting",e); + return; + } + + LldpElement lldpElement01 = lldpLocalGroup01.getLldpElement(); + LldpElement lldpElement02 = lldpLocalGroup02.getLldpElement(); + LOG.warn("01 local chassis type: " + LldpChassisIdSubType.getTypeString(lldpElement01.getLldpChassisIdSubType().getValue())); + LOG.warn("01 local chassis id: " + lldpElement01.getLldpChassisId()); + LOG.warn("01 local sysname: " + lldpElement01.getLldpSysname()); + LOG.warn("02 local chassis type: " + LldpChassisIdSubType.getTypeString(lldpElement02.getLldpChassisIdSubType().getValue())); + LOG.warn("02 local chassis id: " + lldpElement02.getLldpChassisId()); + LOG.warn("02 local sysname: " + lldpElement02.getLldpSysname()); + + assertEquals(ZHBGO1Zsr001_LLDP_ID, lldpElement01.getLldpChassisId()); + assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, lldpElement01.getLldpChassisIdSubType()); + assertEquals(ZHBGO1Zsr001_NAME, lldpElement01.getLldpSysname()); + assertEquals(ZHBGO1Zsr002_LLDP_ID, lldpElement02.getLldpChassisId()); + assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, lldpElement02.getLldpChassisIdSubType()); + assertEquals(ZHBGO1Zsr002_NAME, lldpElement02.getLldpSysname()); + + LldpRemTableTracker lldpRemTable01 = new LldpRemTableTracker() { + + public void processLldpRemRow(final LldpRemRow row) { + fail(); + } + }; + + LldpRemTableTracker lldpRemTable02 = new LldpRemTableTracker() { + + public void processLldpRemRow(final LldpRemRow row) { + fail(); + } + }; + + try { + m_client.walk(config01, + lldpRemTable01) + .withDescription("lldpRemTable01") + .withLocation(null) + .execute() + .get(); + m_client.walk(config02, + lldpRemTable02) + .withDescription("lldpRemTable02") + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + fail(); + } + + TimeTetraLldpRemTableTracker timetetralldpRemTable01 + = new TimeTetraLldpRemTableTracker() { + + public void processLldpRemRow(final TimeTetraLldpRemRow row) { + assertEquals(6, row.getColumnCount()); + LldpLink link = row.getLldpLink(); + assertNotNull(link); + assertNotNull(row.getTmnxLldpRemLocalDestMACAddress()); + assertNotNull(link.getLldpLocalPortNum()); + assertNotNull(link.getLldpPortIfindex()); + links01.add(row); + assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, link.getLldpRemChassisIdSubType()); + } + }; + TimeTetraLldpRemTableTracker timetetralldpRemTable02 + = new TimeTetraLldpRemTableTracker() { + + public void processLldpRemRow(final TimeTetraLldpRemRow row) { + + assertEquals(6, row.getColumnCount()); + LldpLink link = row.getLldpLink(); + assertNotNull(link); + assertNotNull(row.getTmnxLldpRemLocalDestMACAddress()); + assertNotNull(link.getLldpLocalPortNum()); + assertNotNull(link.getLldpPortIfindex()); + links02.add(row); + assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, link.getLldpRemChassisIdSubType()); + } + }; + + try { + m_client.walk(config01, + timetetralldpRemTable01) + .withDescription("timetetralldpRemTable01") + .withLocation(null) + .execute() + .get(); + m_client.walk(config02, + timetetralldpRemTable02) + .withDescription("timetetralldpRemTable02") + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + fail(); + } + + assertEquals(3,links01.size()); + assertEquals(4,links02.size()); + + final TimeTetraLldpLocPortGetter ttlldpLocPort01 = new TimeTetraLldpLocPortGetter(config01, + m_client, + null); + + final TimeTetraLldpLocPortGetter ttlldpLocPort02 = new TimeTetraLldpLocPortGetter(config02, + m_client, + null); + + for (TimeTetraLldpRemTableTracker.TimeTetraLldpRemRow timeTetraLldpLink01 : links01) { + LldpLink link01 = timeTetraLldpLink01.getLldpLink(); + assertNull(link01.getLldpPortId()); + assertNull(link01.getLldpPortIdSubType()); + assertNull(link01.getLldpPortDescr()); + assertEquals(1,timeTetraLldpLink01.getTmnxLldpRemLocalDestMACAddress().intValue()); + + LldpLink updated = ttlldpLocPort01.getLldpLink(timeTetraLldpLink01); + assertNotEquals("\"Not Found On lldpLocPortTable\"",updated.getLldpPortId()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_LOCAL, updated.getLldpPortIdSubType()); + assertNotEquals("",updated.getLldpPortDescr()); + LOG.warn("01 {} ifindex {}",updated.getLldpLocalPortNum(),updated.getLldpPortIfindex()); + LOG.warn("01 {} portid {}",updated.getLldpLocalPortNum(),updated.getLldpPortId()); + LOG.warn("01 {} port subtype {}",updated.getLldpLocalPortNum(),updated.getLldpPortIdSubType()); + LOG.warn("01 {} portdescr {}",updated.getLldpLocalPortNum(),updated.getLldpPortDescr()); + LOG.warn("01 {} rem chassisId {}",updated.getLldpLocalPortNum(),updated.getLldpRemChassisId()); + LOG.warn("01 {} rem chassisId subtype {}",updated.getLldpLocalPortNum(),updated.getLldpRemChassisIdSubType()); + LOG.warn("01 {} rem sysname {}",updated.getLldpLocalPortNum(),updated.getLldpRemSysname()); + LOG.warn("01 {} rem portid {}",updated.getLldpLocalPortNum(),updated.getLldpRemPortId()); + LOG.warn("01 {} rem port subtype {}",updated.getLldpLocalPortNum(),updated.getLldpRemPortIdSubType()); + LOG.warn("01 {} rem portdescr {}",updated.getLldpLocalPortNum(),updated.getLldpRemPortDescr()); + } + + for (TimeTetraLldpRemTableTracker.TimeTetraLldpRemRow timeTetraLldpLink02 : links02) { + LldpLink link02 = timeTetraLldpLink02.getLldpLink(); + assertNull(link02.getLldpPortId()); + assertNull(link02.getLldpPortIdSubType()); + assertNull(link02.getLldpPortDescr()); + assertEquals(1,timeTetraLldpLink02.getTmnxLldpRemLocalDestMACAddress().intValue()); + + LldpLink updated = ttlldpLocPort02.getLldpLink(timeTetraLldpLink02); + assertNotEquals("\"Not Found On lldpLocPortTable\"",updated.getLldpPortId()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_LOCAL, updated.getLldpPortIdSubType()); + assertNotEquals("",updated.getLldpPortDescr()); + LOG.warn("02 {} ifindex {}",updated.getLldpLocalPortNum(),updated.getLldpPortIfindex()); + LOG.warn("02 {} portid {}",updated.getLldpLocalPortNum(),updated.getLldpPortId()); + LOG.warn("02 {} port subtype {}",updated.getLldpLocalPortNum(),updated.getLldpPortIdSubType()); + LOG.warn("02 {} portdescr {}",updated.getLldpLocalPortNum(),updated.getLldpPortDescr()); + LOG.warn("02 {} rem chassisId {}",updated.getLldpLocalPortNum(),updated.getLldpRemChassisId()); + LOG.warn("02 {} rem chassisId subtype {}",updated.getLldpLocalPortNum(),updated.getLldpRemChassisIdSubType()); + LOG.warn("02 {} rem sysname {}",updated.getLldpLocalPortNum(),updated.getLldpRemSysname()); + LOG.warn("02 {} rem portid {}",updated.getLldpLocalPortNum(),updated.getLldpRemPortId()); + LOG.warn("02 {} rem port subtype {}",updated.getLldpLocalPortNum(),updated.getLldpRemPortIdSubType()); + LOG.warn("02 {} rem portdescr {}",updated.getLldpLocalPortNum(),updated.getLldpRemPortDescr()); + + } + + + } + + /** + * This test is designed to test the issues in bug NMS-13637. + * + * @see "https://issues.opennms.org/browse/NMS-13637" + * + */ + @Test + @JUnitSnmpAgents(value={ + @JUnitSnmpAgent(host=MKT_CISCO_SW01_IP, port=161, resource=MKT_CISCO_SW01_RESOURCE) + }) + public void testCiscoHomeLldpWalk() throws Exception { + LOG.info(MKT_CISCO_SW01_IP); + String trackerName00 = "lldpLocalGroup00"; + + SnmpAgentConfig config00 = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(MKT_CISCO_SW01_IP)); + LldpLocalGroupTracker lldpLocalGroup00 = new LldpLocalGroupTracker(); + try { + m_client.walk(config00,lldpLocalGroup00) + .withDescription(trackerName00) + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + LOG.info("run: collection interrupted, exiting {}",e.getMessage()); + } + + assertEquals(MKT_CISCO_SW01_LLDP_ID,lldpLocalGroup00.getLldpElement().getLldpChassisId()); + assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, lldpLocalGroup00.getLldpElement().getLldpChassisIdSubType()); + assertEquals(MKT_CISCO_SW01_NAME, lldpLocalGroup00.getLldpElement().getLldpSysname()); + + final List links00 = new ArrayList<>(); + + LldpRemTableTracker lldpRemTable00 = new LldpRemTableTracker() { + + public void processLldpRemRow(final LldpRemRow row) { + links00.add(row); + } + }; + + try { + m_client.walk(config00, + lldpRemTable00) + .withDescription("lldpRemTable00") + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + LOG.info("run: collection interrupted, exiting {}", e.getMessage()); + } + + assertEquals(9, links00.size()); + + LldpLocPortGetter lldpLocPortGetter = new LldpLocPortGetter(config00, m_client, null); + + links00.stream().filter(row -> row.getLldpRemSysname().equals(MKTROUTER1_NAME)) + .forEach(row -> { + LldpLink link = lldpLocPortGetter.getLldpLink(row); + assertEquals(73, link.getLldpLocalPortNum().intValue()); + assertEquals("gi5", link.getLldpPortId()); + assertEquals("GigabitEthernet5", link.getLldpPortDescr()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpPortIdSubType()); + assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, link.getLldpRemChassisIdSubType()); + assertEquals(MKTROUTER1_ETHER1_MAC, link.getLldpRemChassisId()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpRemPortIdSubType()); + assertEquals("ether1", link.getLldpRemPortId()); + }); + + links00.stream().filter(row -> row.getLldpRemSysname().equals(MKTROUTER2_NAME)) + .forEach(row -> { + LldpLink link = lldpLocPortGetter.getLldpLink(row); + assertEquals(74, link.getLldpLocalPortNum().intValue()); + assertEquals("gi5", link.getLldpPortId()); + assertEquals("GigabitEthernet5", link.getLldpPortDescr()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpPortIdSubType()); + assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, link.getLldpRemChassisIdSubType()); + assertEquals(MKTROUTER2_ETHER1_MAC, link.getLldpRemChassisId()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpRemPortIdSubType()); + assertEquals("ether1", link.getLldpRemPortId()); + }); + } + + /** + * This test is designed to test the issues in bug NMS-13637. + * + * @see "https://issues.opennms.org/browse/NMS-13637" + * + */ + @Test + @JUnitSnmpAgents(value={ + @JUnitSnmpAgent(host=MKTROUTER1_IP, port=161, resource=MKTROUTER1_RESOURCE) + }) + public void testMikrotikRouter1LldpWalk() throws Exception { + LOG.info(MKTROUTER1_IP); + String trackerName01 = "lldpLocalGroup01"; + + SnmpAgentConfig config01 = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(MKTROUTER1_IP)); + LldpLocalGroupTracker lldpLocalGroup01 = new LldpLocalGroupTracker(); + try { + m_client.walk(config01,lldpLocalGroup01) + .withDescription(trackerName01) + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + LOG.info("run: collection interrupted, exiting {}", e.getMessage()); + } + + assertNull(lldpLocalGroup01.getLldpLocChassisid()); + assertNull(lldpLocalGroup01.getLldpLocChassisidSubType()); + assertEquals(MKTROUTER1_NAME, lldpLocalGroup01.getLldpLocSysname()); + + final List links01 = new ArrayList<>(); + + MtxrLldpRemTableTracker lldpRemTable01 = new MtxrLldpRemTableTracker() { + + public void processMtxrLldpRemRow(final MtxrLldpRemRow row) { + links01.add(row); + } + }; + + try { + m_client.walk(config01, + lldpRemTable01) + .withDescription("lldpRemTable01") + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + LOG.info("run: collection interrupted, exiting {}", e.getMessage()); + } + + assertEquals(5,links01.size()); + + MtxrLldpLocalTableTracker mikrotikLldpLocalTable01 = new MtxrLldpLocalTableTracker(); + + try { + m_client.walk(config01, + mikrotikLldpLocalTable01) + .withDescription("mikrotikLldpLocalTable01") + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + LOG.info("run: collection interrupted, exiting {}", e.getMessage()); + } + + MtxrNeighborTableTracker mikrotikMtxrIndexTable01 = new MtxrNeighborTableTracker(); + try { + m_client.walk(config01, + mikrotikMtxrIndexTable01) + .withDescription("mikrotikMtxrIndexTable01") + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + LOG.info("run: collection interrupted, exiting {}", e.getMessage()); + } + + links01.forEach(row -> { + assertNull(row.getLldpLink().getLldpPortId()); + assertNotNull(row.getMtxrNeighborIndex()); + Integer mtxrIndex = mikrotikMtxrIndexTable01.getMtxrinterfaceId(row); + assertEquals(1, mtxrIndex.intValue()); + LldpLink link = mikrotikLldpLocalTable01.getLldpLink(row, mtxrIndex); + assertEquals("ether1",link.getLldpPortId()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpPortIdSubType()); + assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, link.getLldpRemChassisIdSubType()); + assertEquals("",link.getLldpRemPortDescr()); + switch(link.getLldpLocalPortNum()) { + case 1: + assertEquals("gi5", link.getLldpRemPortId()); + assertEquals(MKT_CISCO_SW01_NAME, link.getLldpRemSysname()); + //this is a clear violation of LLDP-MIB implementation by Mikrotik + assertNotEquals(MKT_CISCO_SW01_LLDP_ID, link.getLldpRemChassisId()); + assertEquals(MKT_CISCO_SW01_GB05_MAC,link.getLldpRemChassisId()); + break; + case 2: + assertEquals("ether1", link.getLldpRemPortId()); + assertEquals(MKTROUTER2_NAME, link.getLldpRemSysname()); + assertEquals(MKTROUTER2_ETHER1_MAC, link.getLldpRemChassisId()); + break; + case 3: + assertEquals("ens160", link.getLldpRemPortId()); + assertEquals("elastic-01", link.getLldpRemSysname()); + assertEquals(MKT_HOST3_LLDP_ID, link.getLldpRemChassisId()); + break; + case 4: + assertEquals("vmx1", link.getLldpRemPortId()); + assertEquals("opn-fw-01.clab.labmonkeys.tech", link.getLldpRemSysname()); + assertEquals(MKT_HOST4_LLDP_ID, link.getLldpRemChassisId()); + break; + case 5: + assertEquals("ens160", link.getLldpRemPortId()); + assertEquals("onms-hzn", link.getLldpRemSysname()); + assertEquals(MKT_HOST5_LLDP_ID, link.getLldpRemChassisId()); + break; + default: + fail(); + break; + } + }); + + Map portRowMap = mikrotikLldpLocalTable01.getMtxrLldpLocalPortMap(); + assertTrue(portRowMap.containsKey(1)); + assertEquals(MKTROUTER1_ETHER1_MAC, portRowMap.get(1).getLldpLocPortId()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_MACADDRESS, portRowMap.get(1).getLldpLocalPortIdSubtype()); + } + + + /** + * This test is designed to test the issues in bug NMS-13637. + * + * @see "https://issues.opennms.org/browse/NMS-13637" + * + */ + @Test + @JUnitSnmpAgents(value={ + @JUnitSnmpAgent(host=MKTROUTER2_IP, port=161, resource=MKTROUTER2_RESOURCE) + }) + public void testMikrotikRouter2LldpWalk() throws Exception { + LOG.info(MKTROUTER2_IP); + String trackerName02 = "lldpLocalGroup02"; + + SnmpAgentConfig config02 = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(MKTROUTER2_IP)); + LldpLocalGroupTracker lldpLocalGroup02 = new LldpLocalGroupTracker(); + try { + m_client.walk(config02,lldpLocalGroup02) + .withDescription(trackerName02) + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + LOG.info("run: collection interrupted, exiting {}", e.getMessage()); + } + + assertNull(lldpLocalGroup02.getLldpLocChassisid()); + assertNull(lldpLocalGroup02.getLldpLocChassisidSubType()); + assertEquals(MKTROUTER2_NAME, lldpLocalGroup02.getLldpLocSysname()); + + final List links02 = new ArrayList<>(); + + MtxrLldpLocalTableTracker mikrotikLldpLocalTable02 = new MtxrLldpLocalTableTracker(); + MtxrNeighborTableTracker mikrotikMtxrIndexTable02 = new MtxrNeighborTableTracker(); + MtxrLldpRemTableTracker mikrotikRemTable02 = new MtxrLldpRemTableTracker() { + + public void processMtxrLldpRemRow(final MtxrLldpRemRow row) { + links02.add(row); + } + }; + + try { + m_client.walk(config02, + mikrotikRemTable02) + .withDescription("lldpRemTable02") + .withLocation(null) + .execute() + .get(); + m_client.walk(config02, + mikrotikLldpLocalTable02) + .withDescription("mikrotikLldpLocalTable02") + .withLocation(null) + .execute() + .get(); + m_client.walk(config02, + mikrotikMtxrIndexTable02) + .withDescription("mikrotikMtxrIndexTable02") + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + LOG.info("run: collection interrupted, exiting {}",e.getMessage()); + } + Map mikrotikLldpLocalPortMap02 = mikrotikLldpLocalTable02.getMtxrLldpLocalPortMap(); + Map mikrotikMtrxIndexMap02 = mikrotikMtxrIndexTable02.getMtxrNeighborMap(); + assertEquals(5, mikrotikMtrxIndexMap02.size()); + assertEquals(5, links02.size()); + assertEquals(1, mikrotikLldpLocalPortMap02.size()); + assertTrue(mikrotikLldpLocalPortMap02.containsKey(1)); + assertEquals(MKTROUTER2_ETHER1_MAC, mikrotikLldpLocalPortMap02.get(1).getLldpLocPortId()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_MACADDRESS, mikrotikLldpLocalPortMap02.get(1).getLldpLocalPortIdSubtype()); + assertEquals("ether1", mikrotikLldpLocalPortMap02.get(1).getLldpLocPortDesc()); + + LldpElement mktelem = mikrotikLldpLocalTable02.getLldpElement(lldpLocalGroup02.getLldpLocSysname()); + assertEquals(MKTROUTER2_ETHER1_MAC, mktelem.getLldpChassisId()); + assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, mktelem.getLldpChassisIdSubType()); + + links02.forEach(row -> { + assertNull(row.getLldpLink().getLldpPortId()); + assertNotNull(row.getMtxrNeighborIndex()); + Integer mtxrIndex = mikrotikMtxrIndexTable02.getMtxrinterfaceId(row); + assertEquals(1, mtxrIndex.intValue()); + LldpLink link = mikrotikLldpLocalTable02.getLldpLink(row,mtxrIndex); + assertEquals("ether1", link.getLldpPortId()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpPortIdSubType()); + assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, link.getLldpRemChassisIdSubType()); + assertEquals("", link.getLldpRemPortDescr()); + switch(link.getLldpLocalPortNum()) { + case 1: + assertEquals("ether1", link.getLldpRemPortId()); + assertEquals(MKTROUTER1_NAME, link.getLldpRemSysname()); + assertEquals(MKTROUTER1_ETHER1_MAC, link.getLldpRemChassisId()); + break; + case 2: + assertEquals("ens160", link.getLldpRemPortId()); + assertEquals("elastic-01", link.getLldpRemSysname()); + assertEquals(MKT_HOST3_LLDP_ID, link.getLldpRemChassisId()); + break; + case 3: + assertEquals("vmx1", link.getLldpRemPortId()); + assertEquals("opn-fw-01.clab.labmonkeys.tech", link.getLldpRemSysname()); + assertEquals(MKT_HOST4_LLDP_ID, link.getLldpRemChassisId()); + break; + case 4: + assertEquals("ens160", link.getLldpRemPortId()); + assertEquals("onms-hzn", link.getLldpRemSysname()); + assertEquals(MKT_HOST5_LLDP_ID, link.getLldpRemChassisId()); + break; + case 5: + assertEquals("gi5",link.getLldpRemPortId()); + assertEquals(MKT_CISCO_SW01_NAME, link.getLldpRemSysname()); + assertNotEquals(MKT_CISCO_SW01_LLDP_ID, link.getLldpRemChassisId()); + assertEquals(MKT_CISCO_SW01_GB05_MAC, link.getLldpRemChassisId()); + break; + default: + fail(); + break; + } + }); + + + + } + + /** + * This test is designed to test the issues in bug NMS-13637. + * + * @see "https://issues.opennms.org/browse/NMS-13637" + * + */ + @Test + @JUnitSnmpAgents(value={ + @JUnitSnmpAgent(host=MKTROUTER3_IP, port=161, resource=MKTROUTER3_RESOURCE) + }) + public void testMikrotikRouter3LldpWalk() throws Exception { + LOG.info(MKTROUTER3_IP); + String trackerName03 = "lldpLocalGroup03"; + + SnmpAgentConfig config03 = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(MKTROUTER3_IP)); + LldpLocalGroupTracker lldpLocalGroup03 = new LldpLocalGroupTracker(); + try { + m_client.walk(config03,lldpLocalGroup03) + .withDescription(trackerName03) + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + LOG.info("run: collection interrupted, exiting {}",e.getMessage()); + } + + assertNull(lldpLocalGroup03.getLldpLocChassisid()); + assertNull(lldpLocalGroup03.getLldpLocChassisidSubType()); + assertEquals(MKTROUTER3_NAME, lldpLocalGroup03.getLldpLocSysname()); + + final List links03 = new ArrayList<>(); + + MtxrLldpLocalTableTracker mikrotikLldpLocalTable03 = new MtxrLldpLocalTableTracker(); + MtxrNeighborTableTracker mikrotikMtxrIndexTable03 = new MtxrNeighborTableTracker(); + MtxrLldpRemTableTracker mikrotikRemTable03 = new MtxrLldpRemTableTracker() { + + public void processMtxrLldpRemRow(final MtxrLldpRemRow row) { + links03.add(row); + } + }; + + try { + m_client.walk(config03, + mikrotikRemTable03) + .withDescription("lldpRemTable03") + .withLocation(null) + .execute() + .get(); + m_client.walk(config03, + mikrotikLldpLocalTable03) + .withDescription("mikrotikLldpLocalTable03") + .withLocation(null) + .execute() + .get(); + m_client.walk(config03, + mikrotikMtxrIndexTable03) + .withDescription("mikrotikMtxrIndexTable03") + .withLocation(null) + .execute() + .get(); + } catch (final InterruptedException e) { + LOG.info("run: collection interrupted, exiting {}",e.getMessage()); + } + Map mikrotikLldpLocalPortMap03 = mikrotikLldpLocalTable03.getMtxrLldpLocalPortMap(); + Map mikrotikMtrxIndexMap03 = mikrotikMtxrIndexTable03.getMtxrNeighborMap(); + assertEquals(27, mikrotikMtrxIndexMap03.size()); + assertEquals(27, links03.size()); + assertEquals(3, mikrotikLldpLocalPortMap03.size()); + assertTrue(mikrotikLldpLocalPortMap03.containsKey(1)); + assertTrue(mikrotikLldpLocalPortMap03.containsKey(2)); + assertTrue(mikrotikLldpLocalPortMap03.containsKey(3)); + assertEquals(MKTROUTER3_ETHER1_MAC, mikrotikLldpLocalPortMap03.get(1).getLldpLocPortId()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_MACADDRESS, mikrotikLldpLocalPortMap03.get(1).getLldpLocalPortIdSubtype()); + assertEquals("ether1", mikrotikLldpLocalPortMap03.get(1).getLldpLocPortDesc()); + + assertEquals(MKTROUTER3_ETHER2_MAC, mikrotikLldpLocalPortMap03.get(2).getLldpLocPortId()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_MACADDRESS, mikrotikLldpLocalPortMap03.get(2).getLldpLocalPortIdSubtype()); + assertEquals("ether2",mikrotikLldpLocalPortMap03.get(2).getLldpLocPortDesc()); + + assertEquals(MKTROUTER3_ETHER3_MAC, mikrotikLldpLocalPortMap03.get(3).getLldpLocPortId()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_MACADDRESS, mikrotikLldpLocalPortMap03.get(3).getLldpLocalPortIdSubtype()); + assertEquals("ether3", mikrotikLldpLocalPortMap03.get(3).getLldpLocPortDesc()); + + links03.forEach(row -> { + assertNull(row.getLldpLink().getLldpPortId()); + assertNotNull(row.getMtxrNeighborIndex()); + Integer mtxrIndex = mikrotikMtxrIndexTable03.getMtxrinterfaceId(row); + assertNotNull(mtxrIndex); + LldpLink link = mikrotikLldpLocalTable03.getLldpLink(row,mtxrIndex); + assertNotNull(link.getLldpPortId()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpPortIdSubType()); + assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, link.getLldpRemChassisIdSubType()); + assertEquals("", link.getLldpRemPortDescr()); + if (link.getLldpRemSysname().equals(MKTROUTER3_NAME)) { + LOG.error("self link {} -> {} id {}", link.getLldpPortId(), link.getLldpRemPortId(), link.getLldpRemChassisId() ); + } + }); + + LldpElement element = mikrotikLldpLocalTable03.getLldpElement(MKTROUTER3_NAME); + assertEquals(MKTROUTER3_ETHER2_MAC, element.getLldpChassisId()); + assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, element.getLldpChassisIdSubType()); + + } + + @Test @JUnitSnmpAgents(value={ @JUnitSnmpAgent(host=SWITCH1_IP, port=161, resource="classpath:/linkd/nms17216/switch1-walk.txt") @@ -551,7 +1194,6 @@ public void testLldpLocalGroupWalk() throws Exception { assertEquals(LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, eiA.getLldpChassisIdSubType()); assertEquals("Switch1", eiA.getLldpSysname()); } - @Test @JUnitSnmpAgents(value={ @@ -561,22 +1203,18 @@ public void testLldpLocGetter() throws Exception { SnmpAgentConfig config = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(SWITCH1_IP)); - final LldpLocPortGetter lldpLocPort = new LldpLocPortGetter(config,m_client,null,0); - LldpLink link = new LldpLink(); - link.setLldpLocalPortNum(9); - link = lldpLocPort.getLldpLink(link); - assertEquals(9, link.getLldpLocalPortNum().intValue()); - assertEquals("Gi0/9", link.getLldpPortId()); - assertEquals("GigabitEthernet0/9", link.getLldpPortDescr()); - assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpPortIdSubType()); - - link = new LldpLink(); - link.setLldpLocalPortNum(10); - link = lldpLocPort.getLldpLink(link); - assertEquals(10, link.getLldpLocalPortNum().intValue()); - assertEquals("Gi0/10", link.getLldpPortId()); - assertEquals("GigabitEthernet0/10", link.getLldpPortDescr()); - assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpPortIdSubType()); + final LldpLocPortGetter lldpLocPort = new LldpLocPortGetter(config,m_client,null); + List val = lldpLocPort.get(9); + assertEquals(3, val.size()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, LldpPortIdSubType.get(val.get(0).toInt())); + assertEquals("Gi0/9", LldpRemTableTracker.decodeLldpPortId(val.get(0).toInt(), val.get(1))); + assertEquals("GigabitEthernet0/9", val.get(2).toDisplayString()); + + val = lldpLocPort.get(10); + assertEquals(3, val.size()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, LldpPortIdSubType.get(val.get(0).toInt())); + assertEquals("Gi0/10", LldpRemTableTracker.decodeLldpPortId(val.get(0).toInt(), val.get(1))); + assertEquals("GigabitEthernet0/10", val.get(2).toDisplayString()); } @@ -588,22 +1226,18 @@ public void test2LldpLocGetter() throws Exception { SnmpAgentConfig config = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(SWITCH2_IP)); - final LldpLocPortGetter lldpLocPort = new LldpLocPortGetter(config,m_client,null,0); - LldpLink link = new LldpLink(); - link.setLldpLocalPortNum(1); - link = lldpLocPort.getLldpLink(link); - assertEquals(1, link.getLldpLocalPortNum().intValue()); - assertEquals("Gi0/1", link.getLldpPortId()); - assertEquals("GigabitEthernet0/1", link.getLldpPortDescr()); - assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpPortIdSubType()); - - link = new LldpLink(); - link.setLldpLocalPortNum(2); - link = lldpLocPort.getLldpLink(link); - assertEquals(2, link.getLldpLocalPortNum().intValue()); - assertEquals("Gi0/2", link.getLldpPortId()); - assertEquals("GigabitEthernet0/2", link.getLldpPortDescr()); - assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpPortIdSubType()); + final LldpLocPortGetter lldpLocPort = new LldpLocPortGetter(config,m_client,null); + List val = lldpLocPort.get(1); + assertEquals(3, val.size()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, LldpPortIdSubType.get(val.get(0).toInt())); + assertEquals("Gi0/1", LldpRemTableTracker.decodeLldpPortId(val.get(0).toInt(), val.get(1))); + assertEquals("GigabitEthernet0/1", val.get(2).toDisplayString()); + + val = lldpLocPort.get(2); + assertEquals(3, val.size()); + assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, LldpPortIdSubType.get(val.get(0).toInt())); + assertEquals("Gi0/2", LldpRemTableTracker.decodeLldpPortId(val.get(0).toInt(), val.get(1))); + assertEquals("GigabitEthernet0/2", val.get(2).toDisplayString()); } @@ -614,12 +1248,12 @@ public void test2LldpLocGetter() throws Exception { public void test3LldpRemoteTableWalk() throws Exception { SnmpAgentConfig config = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(SWITCH2_IP)); - final List links = new ArrayList<>(); + final List links = new ArrayList<>(); LldpRemTableTracker lldpRemTable = new LldpRemTableTracker() { public void processLldpRemRow(final LldpRemRow row) { - links.add(row.getLldpLink()); + links.add(row); } }; try { @@ -639,16 +1273,17 @@ public void processLldpRemRow(final LldpRemRow row) { } final LldpLocPortGetter lldpLocPort = new LldpLocPortGetter(config, m_client, - null,0); + null); - for (LldpLink link : links) { - assertNotNull(link); + for (LldpRemTableTracker.LldpRemRow row : links) { + assertNotNull(row); + LldpLink link = row.getLldpLink(); assertNotNull(link.getLldpLocalPortNum()); assertNull(link.getLldpPortId()); assertNull(link.getLldpPortIdSubType()); assertNull(link.getLldpPortDescr()); - LldpLink updated = lldpLocPort.getLldpLink(link); + LldpLink updated = lldpLocPort.getLldpLink(row); assertNotNull(updated.getLldpPortId()); assertEquals(5, updated.getLldpPortIdSubType().getValue().intValue()); assertNotNull(updated.getLldpPortDescr()); @@ -692,7 +1327,7 @@ public void processLldpRemRow(final LldpRemRow row) { .execute() .get(); } catch (final InterruptedException e) { - assertEquals(false, true); + fail(); } } @@ -763,14 +1398,14 @@ public void processIsisAdjRow(final IsIsAdjRow row) { assertEquals(IsisISAdjState.up, link.getIsisISAdjState()); assertEquals(IsisISAdjNeighSysType.l1_IntermediateSystem, link.getIsisISAdjNeighSysType()); assertEquals(0, link.getIsisISAdjNbrExtendedCircID().intValue()); - if (link.getIsisCircIndex().intValue() == 533) { + if (link.getIsisCircIndex() == 533) { assertEquals("001f12accbf0", link.getIsisISAdjNeighSNPAAddress()); assertEquals("000110255062",link.getIsisISAdjNeighSysID()); - } else if (link.getIsisCircIndex().intValue() == 552) { + } else if (link.getIsisCircIndex() == 552) { assertEquals("0021590e47c2", link.getIsisISAdjNeighSNPAAddress()); assertEquals("000110088500",link.getIsisISAdjNeighSysID()); } else { - assertEquals(true, false); + fail(); } } @@ -807,44 +1442,44 @@ public void processIsisCircRow(final IsIsCircRow row) { assertEquals(12, links.size()); for (final IsIsLink link: links) { - if (link.getIsisCircIndex().intValue() == 533) { + if (link.getIsisCircIndex() == 533) { assertEquals(533, link.getIsisCircIfIndex().intValue()); assertEquals(IsisAdminState.on, link.getIsisCircAdminState()); - } else if (link.getIsisCircIndex().intValue() == 552) { + } else if (link.getIsisCircIndex() == 552) { assertEquals(552, link.getIsisCircIfIndex().intValue()); assertEquals(IsisAdminState.on, link.getIsisCircAdminState()); - } else if (link.getIsisCircIndex().intValue() == 13) { + } else if (link.getIsisCircIndex() == 13) { assertEquals(13, link.getIsisCircIfIndex().intValue()); assertEquals(IsisAdminState.off, link.getIsisCircAdminState()); - } else if (link.getIsisCircIndex().intValue() == 16) { + } else if (link.getIsisCircIndex() == 16) { assertEquals(16, link.getIsisCircIfIndex().intValue()); assertEquals(IsisAdminState.on, link.getIsisCircAdminState()); - } else if (link.getIsisCircIndex().intValue() == 504) { + } else if (link.getIsisCircIndex() == 504) { assertEquals(504, link.getIsisCircIfIndex().intValue()); assertEquals(IsisAdminState.on, link.getIsisCircAdminState()); - } else if (link.getIsisCircIndex().intValue() == 507) { + } else if (link.getIsisCircIndex() == 507) { assertEquals(507, link.getIsisCircIfIndex().intValue()); assertEquals(IsisAdminState.on, link.getIsisCircAdminState()); - } else if (link.getIsisCircIndex().intValue() == 508) { + } else if (link.getIsisCircIndex() == 508) { assertEquals(508, link.getIsisCircIfIndex().intValue()); assertEquals(IsisAdminState.on, link.getIsisCircAdminState()); - } else if (link.getIsisCircIndex().intValue() == 512) { + } else if (link.getIsisCircIndex() == 512) { assertEquals(512, link.getIsisCircIfIndex().intValue()); assertEquals(IsisAdminState.on, link.getIsisCircAdminState()); - } else if (link.getIsisCircIndex().intValue() == 514) { + } else if (link.getIsisCircIndex() == 514) { assertEquals(514, link.getIsisCircIfIndex().intValue()); assertEquals(IsisAdminState.on, link.getIsisCircAdminState()); - } else if (link.getIsisCircIndex().intValue() == 531) { + } else if (link.getIsisCircIndex() == 531) { assertEquals(531, link.getIsisCircIfIndex().intValue()); assertEquals(IsisAdminState.on, link.getIsisCircAdminState()); - } else if (link.getIsisCircIndex().intValue() == 572) { + } else if (link.getIsisCircIndex() == 572) { assertEquals(572, link.getIsisCircIfIndex().intValue()); assertEquals(IsisAdminState.on, link.getIsisCircAdminState()); - } else if (link.getIsisCircIndex().intValue() == 573) { + } else if (link.getIsisCircIndex() == 573) { assertEquals(573, link.getIsisCircIfIndex().intValue()); assertEquals(IsisAdminState.on, link.getIsisCircAdminState()); } else { - assertEquals(true, false); + fail(); } } @@ -881,27 +1516,35 @@ public void processIpNetToMediaRow(final IpNetToMediaRow row) { for (final IpNetToMedia row: rows) { assertEquals(IpNetToMediaType.IPNETTOMEDIA_TYPE_DYNAMIC,row.getIpNetToMediaType()); - if (row.getPhysAddress().equals("00901a4222f8")) { - assertEquals(InetAddressUtils.addr("10.129.16.1"), row.getNetAddress()); - assertEquals(1, row.getSourceIfIndex().intValue()); - } else if (row.getPhysAddress().equals("0013c8f1d242")) { - assertEquals(InetAddressUtils.addr("10.129.16.164"), row.getNetAddress()); - assertEquals(1, row.getSourceIfIndex().intValue()); - } else if (row.getPhysAddress().equals("f0728c99994d")) { - assertEquals(InetAddressUtils.addr("192.168.0.13"), row.getNetAddress()); - assertEquals(2, row.getSourceIfIndex().intValue()); - } else if (row.getPhysAddress().equals("0015999f07ef")) { - assertEquals(InetAddressUtils.addr("192.168.0.14"), row.getNetAddress()); - assertEquals(2, row.getSourceIfIndex().intValue()); - } else if (row.getPhysAddress().equals("60334b0817a8")) { - assertEquals(InetAddressUtils.addr("192.168.0.16"), row.getNetAddress()); - assertEquals(2, row.getSourceIfIndex().intValue()); - } else if (row.getPhysAddress().equals("001b63cda9fd")) { - assertEquals(InetAddressUtils.addr("192.168.0.17"), row.getNetAddress()); - assertEquals(2, row.getSourceIfIndex().intValue()); - } else { - assertEquals(false, true); - } + switch (row.getPhysAddress()) { + case "00901a4222f8": + assertEquals(InetAddressUtils.addr("10.129.16.1"), row.getNetAddress()); + assertEquals(1, row.getSourceIfIndex().intValue()); + break; + case "0013c8f1d242": + assertEquals(InetAddressUtils.addr("10.129.16.164"), row.getNetAddress()); + assertEquals(1, row.getSourceIfIndex().intValue()); + break; + case "f0728c99994d": + assertEquals(InetAddressUtils.addr("192.168.0.13"), row.getNetAddress()); + assertEquals(2, row.getSourceIfIndex().intValue()); + break; + case "0015999f07ef": + assertEquals(InetAddressUtils.addr("192.168.0.14"), row.getNetAddress()); + assertEquals(2, row.getSourceIfIndex().intValue()); + break; + case "60334b0817a8": + assertEquals(InetAddressUtils.addr("192.168.0.16"), row.getNetAddress()); + assertEquals(2, row.getSourceIfIndex().intValue()); + break; + case "001b63cda9fd": + assertEquals(InetAddressUtils.addr("192.168.0.17"), row.getNetAddress()); + assertEquals(2, row.getSourceIfIndex().intValue()); + break; + default: + fail(); + break; + } } } @@ -1027,7 +1670,7 @@ public void processDot1dStpPortRow(final Dot1dStpPortRow row) { public void testDot1dTpFdbTableWalk() throws Exception { String trackerName = "dot1dTpFdbTable"; - final List links = new ArrayList(); + final List links = new ArrayList<>(); SnmpAgentConfig config = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(DLINK1_IP)); Dot1dTpFdbTableTracker tracker = new Dot1dTpFdbTableTracker() { @Override @@ -1052,45 +1695,32 @@ public void processDot1dTpFdbRow(final Dot1dTpFdbRow row) { for (BridgeForwardingTableEntry link: links) { assertEquals(BridgeDot1qTpFdbStatus.DOT1D_TP_FDB_STATUS_LEARNED, link.getBridgeDot1qTpFdbStatus()); System.out.println(link.getMacAddress()); - if (link.getMacAddress().equals("000c29dcc076")) { - assertEquals(24,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("000ffeb10d1e")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("000ffeb10e26")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("001a4b802790")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("001d6004acbc")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("001e58865d0f")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("0021913b5108")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("002401ad3416")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("00248c4c8bd0")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("0024d608693e")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("000ffeb10d1e")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("1caff737cc33")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("1caff7443339")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("1cbdb9b56160")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("5cd998667abb")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("e0cb4e3e7fc0")) { - assertEquals(6,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("f07d68711f89")) { - assertEquals(24,link.getBridgePort().intValue()); - } else if(link.getMacAddress().equals("f07d6876c565")) { - assertEquals(24,link.getBridgePort().intValue()); - } else { - assertEquals(false, true); - } + switch (link.getMacAddress()) { + case "000c29dcc076": + case "f07d68711f89": + case "f07d6876c565": + assertEquals(24, link.getBridgePort().intValue()); + break; + case "000ffeb10d1e": + case "000ffeb10e26": + case "001a4b802790": + case "001d6004acbc": + case "001e58865d0f": + case "0021913b5108": + case "002401ad3416": + case "00248c4c8bd0": + case "0024d608693e": + case "1caff737cc33": + case "1caff7443339": + case "1cbdb9b56160": + case "5cd998667abb": + case "e0cb4e3e7fc0": + assertEquals(6, link.getBridgePort().intValue()); + break; + default: + fail(); + break; + } } } @@ -1102,8 +1732,8 @@ public void processDot1dTpFdbRow(final Dot1dTpFdbRow row) { public void testDot1qTpFdbTableWalk() throws Exception { String trackerName = "dot1qTpFdbTable"; - final Map macs1 = new HashMap(); - final Map macs2 = new HashMap(); + final Map macs1 = new HashMap<>(); + final Map macs2 = new HashMap<>(); SnmpAgentConfig config1 = SnmpPeerFactory.getInstance().getAgentConfig(InetAddress.getByName(DLINK1_IP)); Dot1qTpFdbTableTracker tracker1 = new Dot1qTpFdbTableTracker() { @Override diff --git a/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms13593EnIT.java b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms13593EnIT.java new file mode 100644 index 000000000000..b13656aa5ce6 --- /dev/null +++ b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms13593EnIT.java @@ -0,0 +1,291 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.enlinkd; + +import org.junit.Assert; +import org.junit.Test; +import org.opennms.core.test.snmp.annotations.JUnitSnmpAgent; +import org.opennms.core.test.snmp.annotations.JUnitSnmpAgents; +import org.opennms.core.utils.LldpUtils; +import org.opennms.netmgt.enlinkd.model.LldpElement; +import org.opennms.netmgt.enlinkd.model.LldpLink; +import org.opennms.netmgt.enlinkd.service.api.ProtocolSupported; +import org.opennms.netmgt.model.OnmsNode; +import org.opennms.netmgt.nb.Nms13593NetworkBuilder; +import org.opennms.netmgt.topologies.service.api.OnmsTopology; +import org.opennms.netmgt.topologies.service.api.OnmsTopologyEdge; +import org.opennms.netmgt.topologies.service.api.OnmsTopologyVertex; + +import static org.junit.Assert.*; +import static org.opennms.netmgt.nb.NmsNetworkBuilder.*; + +public class Nms13593EnIT extends EnLinkdBuilderITCase { + + Nms13593NetworkBuilder builder = new Nms13593NetworkBuilder(); + /* +A:ZHBGO1Zsr001# show system lldp neighbor +Link Layer Discovery Protocol (LLDP) System Information + +=============================================================================== +NB = nearest-bridge NTPMR = nearest-non-tpmr NC = nearest-customer +=============================================================================== +Lcl Port Scope Remote Chassis ID Index Remote Port Remote Sys Name +------------------------------------------------------------------------------- +3/2/c1/1 NB 50:E0:EF:00:06:00 1 1/1/c1/1, 100-* esat-1 +3/2/c3/1 NB 50:E0:EF:00:06:00 2 1/1/c3/1, 100-* esat-1 +3/2/c5/1 NB 24:21:24:DA:F6:3F 3 3/2/c5/1 ZHBGO1Zsr002 +3/2/c6/1 NB 24:21:24:DA:F6:3F 4 3/2/c6/1 ZHBGO1Zsr002 +=============================================================================== +* indicates that the corresponding row element may have been truncated. +Number of neighbors : 4 + +two LLDP links must be found +ZHBGO1Zsr001 (3/2/c5/1) -> ZHBGO1Zsr002 (3/2/c5/1) +ZHBGO1Zsr001 (3/2/c6/1) -> ZHBGO1Zsr002 (3/2/c6/1) + + */ + + @Test + @JUnitSnmpAgents(value={ + @JUnitSnmpAgent(host=ZHBGO1Zsr001_IP, port=161, resource=ZHBGO1Zsr001_RESOURCE), + @JUnitSnmpAgent(host=ZHBGO1Zsr002_IP, port=161, resource=ZHBGO1Zsr002_RESOURCE) + }) + public void testLldpLinks() { + m_nodeDao.save(builder.getZHBGO1Zsr001()); + m_nodeDao.save(builder.getZHBGO1Zsr002()); + + m_nodeDao.flush(); + + m_linkdConfig.getConfiguration().setUseBridgeDiscovery(false); + m_linkdConfig.getConfiguration().setUseCdpDiscovery(false); + m_linkdConfig.getConfiguration().setUseOspfDiscovery(false); + m_linkdConfig.getConfiguration().setUseLldpDiscovery(true); + m_linkdConfig.getConfiguration().setUseIsisDiscovery(false); + + assertTrue(m_linkdConfig.useLldpDiscovery()); + assertFalse(m_linkdConfig.useCdpDiscovery()); + assertFalse(m_linkdConfig.useOspfDiscovery()); + assertFalse(m_linkdConfig.useBridgeDiscovery()); + assertFalse(m_linkdConfig.useIsisDiscovery()); + + final OnmsNode zsr001 = m_nodeDao.findByForeignId("linkd", ZHBGO1Zsr001_NAME); + final OnmsNode zsr002 = m_nodeDao.findByForeignId("linkd", ZHBGO1Zsr002_NAME); + + assertTrue(m_linkd.scheduleNodeCollection(zsr001.getId())); + assertTrue(m_linkd.scheduleNodeCollection(zsr002.getId())); + + + assertTrue(m_linkd.runSingleSnmpCollection(zsr001.getId())); + assertEquals(1, m_lldpElementDao.countAll()); + assertEquals(3, m_lldpLinkDao.countAll()); + + assertTrue(m_linkd.runSingleSnmpCollection(zsr002.getId())); + assertEquals(2, m_lldpElementDao.countAll()); + assertEquals(7, m_lldpLinkDao.countAll()); + + + + int ei = 0; + int ej = 0; + for (final LldpElement node: m_lldpElementDao.findAll()) { + printLldpElement(node); + assertEquals(LldpUtils.LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS,node.getLldpChassisIdSubType()); + switch (node.getLldpSysname()) { + case "ZHBGO1Zsr001": + assertEquals(zsr001.getId().intValue(),node.getNode().getId().intValue()); + assertEquals("242124ece23f",node.getLldpChassisId()); + ei++; + break; + case "ZHBGO1Zsr002": + assertEquals(zsr002.getId().intValue(),node.getNode().getId().intValue()); + assertEquals("242124daf63f",node.getLldpChassisId()); + ej++; + break; + default: + fail(); + break; + } + } + assertEquals(1,ei); + assertEquals(1,ej); + + int l11=0; + int l13=0; + int l14=0; + int l21=0; + int l24=0; + int l25=0; + int l26=0; + + for (LldpLink link: m_lldpLinkDao.findAll()) { + printLldpLink(link); + assertEquals(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_LOCAL, link.getLldpPortIdSubType()); + assertEquals(LldpUtils.LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, link.getLldpRemChassisIdSubType()); + if (link.getNode().getId().intValue() == zsr001.getId().intValue()) { + switch (link.getLldpLocalPortNum()) { + case 1: + assertEquals(104906753,link.getLldpPortIfindex().intValue()); + assertEquals("104906753",link.getLldpPortId()); + assertEquals("50e0ef000600",link.getLldpRemChassisId()); + assertEquals("esat-1",link.getLldpRemSysname()); + assertEquals(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_LOCAL, link.getLldpRemPortIdSubType()); + assertEquals("35700737",link.getLldpRemPortId()); + l11++; + break; + case 3: + assertEquals(105037825,link.getLldpPortIfindex().intValue()); + assertEquals("105037825",link.getLldpPortId()); + assertEquals("242124daf63f",link.getLldpRemChassisId()); + assertEquals("ZHBGO1Zsr002",link.getLldpRemSysname()); + assertEquals(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpRemPortIdSubType()); + assertEquals("3/2/c5/1",link.getLldpRemPortId()); + l13++; + break; + case 4: + assertEquals(105070593,link.getLldpPortIfindex().intValue()); + assertEquals("105070593",link.getLldpPortId()); + assertEquals("242124daf63f",link.getLldpRemChassisId()); + assertEquals("ZHBGO1Zsr002",link.getLldpRemSysname()); + assertEquals(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpRemPortIdSubType()); + assertEquals("3/2/c6/1",link.getLldpRemPortId()); + l14++; + break; + default: + fail(); + break; + } + } else if (link.getNode().getId().intValue() == zsr002.getId().intValue()) { + switch (link.getLldpLocalPortNum()) { + case 1: + assertEquals(104906753,link.getLldpPortIfindex().intValue()); + assertEquals("104906753",link.getLldpPortId()); + assertEquals("50e0ef005000",link.getLldpRemChassisId()); + assertEquals("esat-1",link.getLldpRemSysname()); + assertEquals(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_LOCAL, link.getLldpRemPortIdSubType()); + assertEquals("35700737",link.getLldpRemPortId()); + l21++; + break; + case 4: + assertEquals(105037825,link.getLldpPortIfindex().intValue()); + assertEquals("105037825",link.getLldpPortId()); + assertEquals("242124ece23f",link.getLldpRemChassisId()); + assertEquals("ZHBGO1Zsr001",link.getLldpRemSysname()); + assertEquals(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpRemPortIdSubType()); + assertEquals("3/2/c5/1",link.getLldpRemPortId()); + l24++; + break; + case 5: + assertEquals(105070593,link.getLldpPortIfindex().intValue()); + assertEquals("105070593",link.getLldpPortId()); + assertEquals("242124ece23f",link.getLldpRemChassisId()); + assertEquals("ZHBGO1Zsr001",link.getLldpRemSysname()); + assertEquals(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME, link.getLldpRemPortIdSubType()); + assertEquals("3/2/c6/1",link.getLldpRemPortId()); + l25++; + break; + case 6: + assertEquals(1140918299,link.getLldpPortIfindex().intValue()); + assertEquals("1140918299",link.getLldpPortId()); + assertEquals("e48184acbf34",link.getLldpRemChassisId()); + assertEquals("sq342g4",link.getLldpRemSysname()); + assertEquals(LldpUtils.LldpPortIdSubType.LLDP_PORTID_SUBTYPE_LOCAL, link.getLldpRemPortIdSubType()); + assertEquals("1610901763",link.getLldpRemPortId()); + l26++; + break; + default: + fail(); + break; + } + } else { + fail(); + } + } + + assertEquals(1,l11); + assertEquals(1,l13); + assertEquals(1,l14); + assertEquals(1,l21); + assertEquals(1,l24); + assertEquals(1,l25); + assertEquals(1,l26); + + m_linkd.forceTopologyUpdaterRun(ProtocolSupported.LLDP); + m_linkd.runTopologyUpdater(ProtocolSupported.LLDP); + + LldpOnmsTopologyUpdater updater = m_linkd.getLldpTopologyUpdater(); + + OnmsTopology topology = updater.getTopology(); + Assert.assertNotNull(topology); + assertEquals(2,topology.getVertices().size()); + assertEquals(2,topology.getEdges().size()); + int i=0; + int j=0; + for (OnmsTopologyVertex v :topology.getVertices()) { + switch (v.getLabel()) { + case "ZHBGO1Zsr001": + i++; + break; + case "ZHBGO1Zsr002": + j++; + break; + default: + fail(); + } + + } + assertEquals(1,i); + assertEquals(1,j); + + for (OnmsTopologyEdge e : topology.getEdges()) { + System.err.println(e.getSource().getToolTipText()); + System.err.println(e.getTarget().getToolTipText()); + + assertEquals("ZHBGO1Zsr001", e.getSource().getVertex().getLabel()); + assertEquals("ZHBGO1Zsr002", e.getTarget().getVertex().getLabel()); + assertEquals(e.getSource().getIfname(), e.getTarget().getIfname()); + assertEquals(e.getSource().getIfindex().intValue(),e.getTarget().getIfindex().intValue()); + switch (e.getSource().getIfindex()) { + case 105037825: + assertEquals("3/2/c5/1", e.getSource().getIfname()); + assertEquals("3/2/c5/1", e.getTarget().getIfname()); + break; + case 105070593: + assertEquals("3/2/c6/1", e.getSource().getIfname()); + assertEquals("3/2/c6/1", e.getTarget().getIfname()); + break; + default: + fail(); + break; + } + } + + + } + +} diff --git a/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms13637EnIT.java b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms13637EnIT.java new file mode 100644 index 000000000000..1cec7052995f --- /dev/null +++ b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms13637EnIT.java @@ -0,0 +1,201 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.enlinkd; + +import org.junit.Assert; +import org.junit.Test; +import org.opennms.core.test.snmp.annotations.JUnitSnmpAgent; +import org.opennms.core.test.snmp.annotations.JUnitSnmpAgents; +import org.opennms.core.utils.LldpUtils; +import org.opennms.netmgt.enlinkd.model.LldpElement; +import org.opennms.netmgt.enlinkd.model.LldpLink; +import org.opennms.netmgt.enlinkd.service.api.ProtocolSupported; +import org.opennms.netmgt.model.OnmsNode; +import org.opennms.netmgt.nb.Nms13637NetworkBuilder; +import org.opennms.netmgt.topologies.service.api.OnmsTopology; +import org.opennms.netmgt.topologies.service.api.OnmsTopologyEdge; +import org.opennms.netmgt.topologies.service.api.OnmsTopologyVertex; + +import static org.junit.Assert.*; +import static org.opennms.netmgt.nb.NmsNetworkBuilder.*; + +public class Nms13637EnIT extends EnLinkdBuilderITCase { + + Nms13637NetworkBuilder builder = new Nms13637NetworkBuilder(); + + @Test + @JUnitSnmpAgents(value={ + @JUnitSnmpAgent(host=MKTROUTER1_IP, port=161, resource=MKTROUTER1_RESOURCE), + @JUnitSnmpAgent(host=MKTROUTER2_IP, port=161, resource=MKTROUTER2_RESOURCE), + @JUnitSnmpAgent(host=MKT_CISCO_SW01_IP, port=161, resource=MKT_CISCO_SW01_RESOURCE) + }) + + public void testLldpLinks() { + m_nodeDao.save(builder.getCiscoHomeSw()); + m_nodeDao.save(builder.getRouter1()); + m_nodeDao.save(builder.getRouter2()); + + m_nodeDao.flush(); + + m_linkdConfig.getConfiguration().setUseBridgeDiscovery(false); + m_linkdConfig.getConfiguration().setUseCdpDiscovery(false); + m_linkdConfig.getConfiguration().setUseOspfDiscovery(false); + m_linkdConfig.getConfiguration().setUseLldpDiscovery(true); + m_linkdConfig.getConfiguration().setUseIsisDiscovery(false); + + assertTrue(m_linkdConfig.useLldpDiscovery()); + assertFalse(m_linkdConfig.useCdpDiscovery()); + assertFalse(m_linkdConfig.useOspfDiscovery()); + assertFalse(m_linkdConfig.useBridgeDiscovery()); + assertFalse(m_linkdConfig.useIsisDiscovery()); + + final OnmsNode ciscohomesw = m_nodeDao.findByForeignId("linkd", MKT_CISCO_SW01_NAME); + final OnmsNode router1 = m_nodeDao.findByForeignId("linkd", MKTROUTER1_NAME); + final OnmsNode router2 = m_nodeDao.findByForeignId("linkd", MKTROUTER2_NAME); + + assertTrue(m_linkd.scheduleNodeCollection(router1.getId())); + assertTrue(m_linkd.scheduleNodeCollection(router2.getId())); + assertTrue(m_linkd.scheduleNodeCollection(ciscohomesw.getId())); + + assertTrue(m_linkd.runSingleSnmpCollection(router1.getId())); + assertEquals(1, m_lldpElementDao.countAll()); + assertEquals(5, m_lldpLinkDao.countAll()); + + assertTrue(m_linkd.runSingleSnmpCollection(router2.getId())); + assertEquals(2, m_lldpElementDao.countAll()); + assertEquals(10, m_lldpLinkDao.countAll()); + + assertTrue(m_linkd.runSingleSnmpCollection(ciscohomesw.getId())); + assertEquals(3, m_lldpElementDao.countAll()); + assertEquals(19, m_lldpLinkDao.countAll()); + + + int ei = 0; + int ej = 0; + int ek = 0; + for (final LldpElement node: m_lldpElementDao.findAll()) { + printLldpElement(node); + assertEquals(LldpUtils.LldpChassisIdSubType.LLDP_CHASSISID_SUBTYPE_MACADDRESS, node.getLldpChassisIdSubType()); + switch (node.getLldpSysname()) { + case "router-1": + assertEquals(router1.getId().intValue(), node.getNode().getId().intValue()); + assertEquals(MKTROUTER1_ETHER1_MAC, node.getLldpChassisId()); + ei++; + break; + case "router-2": + assertEquals(router2.getId().intValue(), node.getNode().getId().intValue()); + assertEquals(MKTROUTER2_ETHER1_MAC, node.getLldpChassisId()); + ej++; + break; + case "sw01-office": + assertEquals(ciscohomesw.getId().intValue(), node.getNode().getId().intValue()); + assertEquals(MKT_CISCO_SW01_LLDP_ID, node.getLldpChassisId()); + ek++; + break; + default: + fail(); + break; + } + } + assertEquals(1, ei); + assertEquals(1, ej); + assertEquals(1, ek); + + + for (LldpLink link : m_lldpLinkDao.findAll()) { + printLldpLink(link); + Assert.assertNotNull(link.getLldpRemPortDescr()); + if (link.getNode().getId().intValue() == router1.getId().intValue()) { + Assert.assertEquals("", link.getLldpRemPortDescr()); + } else if (link.getNode().getId().intValue() == router2.getId().intValue()) { + Assert.assertEquals("", link.getLldpRemPortDescr()); + } else { + Assert.assertEquals(ciscohomesw.getId().intValue(), link.getNode().getId().intValue()); + switch (link.getLldpLocalPortNum()) { + case 9: + case 73: + case 74: + Assert.assertEquals("", link.getLldpRemPortDescr()); + break; + case 10: + case 55: + case 56: + case 58: + case 59: + case 66: + Assert.assertNotEquals("", link.getLldpRemPortDescr()); + break; + default: + fail(); + } + } + } + + m_linkd.forceTopologyUpdaterRun(ProtocolSupported.LLDP); + m_linkd.runTopologyUpdater(ProtocolSupported.LLDP); + + LldpOnmsTopologyUpdater updater = m_linkd.getLldpTopologyUpdater(); + + OnmsTopology topology = updater.getTopology(); + Assert.assertNotNull(topology); + assertEquals(3, topology.getVertices().size()); + int i = 0; + int j = 0; + int k = 0; + for (OnmsTopologyVertex v : topology.getVertices()) { + switch (v.getLabel()) { + case "router-1": + i++; + break; + case "router-2": + j++; + break; + case "sw01-office": + k++; + break; + default: + fail(); + } + + } + assertEquals(1, i); + assertEquals(1, j); + assertEquals(1, k); + + assertEquals(3,topology.getEdges().size()); + for (OnmsTopologyEdge e : topology.getEdges()) { + System.err.println("-------------Edge-------------------"); + System.err.println(e.getSource().getVertex().getLabel() + ":" + e.getSource().getIfname() + "<->" + e.getTarget().getIfname() + ":" + e.getTarget().getVertex().getLabel()); + System.err.println(e.getSource().getToolTipText()); + System.err.println(e.getTarget().getToolTipText()); + assertEquals("ether1", e.getSource().getIfname()); + assertNotNull(e.getTarget().getIfname()); + } + } +} diff --git a/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms17216EnIT.java b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms17216EnIT.java index b2265c6154ac..faf619e99bb7 100644 --- a/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms17216EnIT.java +++ b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms17216EnIT.java @@ -232,25 +232,25 @@ public void testNetwork17216LldpLinks() throws Exception { assertEquals(SWITCH2_LLDP_CHASSISID, link.getLldpRemChassisId()); assertEquals(SWITCH2_NAME,link.getLldpRemSysname()); switch (link.getLldpLocalPortNum().intValue()) { - case 9: + case 4: assertEquals(SWITCH1_IF_IFNAME_MAP.get(10109), link.getLldpPortId()); assertEquals(SWITCH1_IF_IFDESCR_MAP.get(10109), link.getLldpPortDescr()); assertEquals(SWITCH2_IF_IFNAME_MAP.get(10101), link.getLldpRemPortId()); assertEquals(SWITCH2_IF_IFDESCR_MAP.get(10101), link.getLldpRemPortDescr()); break; - case 10: + case 3: assertEquals(SWITCH1_IF_IFNAME_MAP.get(10110), link.getLldpPortId()); assertEquals(SWITCH1_IF_IFDESCR_MAP.get(10110), link.getLldpPortDescr()); assertEquals(SWITCH2_IF_IFNAME_MAP.get(10102), link.getLldpRemPortId()); assertEquals(SWITCH2_IF_IFDESCR_MAP.get(10102), link.getLldpRemPortDescr()); break; - case 11: + case 1: assertEquals(SWITCH1_IF_IFNAME_MAP.get(10111), link.getLldpPortId()); assertEquals(SWITCH1_IF_IFDESCR_MAP.get(10111), link.getLldpPortDescr()); assertEquals(SWITCH2_IF_IFNAME_MAP.get(10103), link.getLldpRemPortId()); assertEquals(SWITCH2_IF_IFDESCR_MAP.get(10103), link.getLldpRemPortDescr()); break; - case 12: + case 2: assertEquals(SWITCH1_IF_IFNAME_MAP.get(10112), link.getLldpPortId()); assertEquals(SWITCH1_IF_IFDESCR_MAP.get(10112), link.getLldpPortDescr()); assertEquals(SWITCH2_IF_IFNAME_MAP.get(10104), link.getLldpRemPortId()); @@ -261,7 +261,7 @@ public void testNetwork17216LldpLinks() throws Exception { } } else if (link.getNode().getId().intValue() == switch2.getId().intValue()) { switch (link.getLldpLocalPortNum().intValue()) { - case 1: + case 4: assertEquals(SWITCH1_LLDP_CHASSISID, link.getLldpRemChassisId()); assertEquals(SWITCH1_NAME,link.getLldpRemSysname()); assertEquals(SWITCH2_IF_IFNAME_MAP.get(10101), link.getLldpPortId()); @@ -269,7 +269,7 @@ public void testNetwork17216LldpLinks() throws Exception { assertEquals(SWITCH1_IF_IFNAME_MAP.get(10109), link.getLldpRemPortId()); assertEquals(SWITCH1_IF_IFDESCR_MAP.get(10109), link.getLldpRemPortDescr()); break; - case 2: + case 3: assertEquals(SWITCH1_LLDP_CHASSISID, link.getLldpRemChassisId()); assertEquals(SWITCH1_NAME,link.getLldpRemSysname()); assertEquals(SWITCH2_IF_IFNAME_MAP.get(10102), link.getLldpPortId()); @@ -277,7 +277,7 @@ public void testNetwork17216LldpLinks() throws Exception { assertEquals(SWITCH1_IF_IFNAME_MAP.get(10110), link.getLldpRemPortId()); assertEquals(SWITCH1_IF_IFDESCR_MAP.get(10110), link.getLldpRemPortDescr()); break; - case 3: + case 5: assertEquals(SWITCH1_LLDP_CHASSISID, link.getLldpRemChassisId()); assertEquals(SWITCH1_NAME,link.getLldpRemSysname()); assertEquals(SWITCH2_IF_IFNAME_MAP.get(10103), link.getLldpPortId()); @@ -285,7 +285,7 @@ public void testNetwork17216LldpLinks() throws Exception { assertEquals(SWITCH1_IF_IFNAME_MAP.get(10111), link.getLldpRemPortId()); assertEquals(SWITCH1_IF_IFDESCR_MAP.get(10111), link.getLldpRemPortDescr()); break; - case 4: + case 6: assertEquals(SWITCH1_LLDP_CHASSISID, link.getLldpRemChassisId()); assertEquals(SWITCH1_NAME,link.getLldpRemSysname()); assertEquals(SWITCH2_IF_IFNAME_MAP.get(10104), link.getLldpPortId()); @@ -293,7 +293,7 @@ public void testNetwork17216LldpLinks() throws Exception { assertEquals(SWITCH1_IF_IFNAME_MAP.get(10112), link.getLldpRemPortId()); assertEquals(SWITCH1_IF_IFDESCR_MAP.get(10112), link.getLldpRemPortDescr()); break; - case 19: + case 1: assertEquals(SWITCH3_LLDP_CHASSISID, link.getLldpRemChassisId()); assertEquals(SWITCH3_NAME,link.getLldpRemSysname()); assertEquals(SWITCH2_IF_IFNAME_MAP.get(10119), link.getLldpPortId()); @@ -301,7 +301,7 @@ public void testNetwork17216LldpLinks() throws Exception { assertEquals(SWITCH3_IF_IFNAME_MAP.get(10019), link.getLldpRemPortId()); assertEquals(SWITCH3_IF_IFDESCR_MAP.get(10019), link.getLldpRemPortDescr()); break; - case 20: + case 2: assertEquals(SWITCH3_LLDP_CHASSISID, link.getLldpRemChassisId()); assertEquals(SWITCH3_NAME,link.getLldpRemSysname()); assertEquals(SWITCH2_IF_IFNAME_MAP.get(10120), link.getLldpPortId()); @@ -316,13 +316,13 @@ public void testNetwork17216LldpLinks() throws Exception { assertEquals(SWITCH2_LLDP_CHASSISID, link.getLldpRemChassisId()); assertEquals(SWITCH2_NAME,link.getLldpRemSysname()); switch (link.getLldpLocalPortNum().intValue()) { - case 19: + case 1: assertEquals(SWITCH3_IF_IFNAME_MAP.get(10019), link.getLldpPortId()); assertEquals(SWITCH3_IF_IFDESCR_MAP.get(10019), link.getLldpPortDescr()); assertEquals(SWITCH2_IF_IFNAME_MAP.get(10119), link.getLldpRemPortId()); assertEquals(SWITCH2_IF_IFDESCR_MAP.get(10119), link.getLldpRemPortDescr()); break; - case 20: + case 2: assertEquals(SWITCH3_IF_IFNAME_MAP.get(10020), link.getLldpPortId()); assertEquals(SWITCH3_IF_IFDESCR_MAP.get(10020), link.getLldpPortDescr()); assertEquals(SWITCH2_IF_IFNAME_MAP.get(10120), link.getLldpRemPortId()); diff --git a/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms7563EnIT.java b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms7563EnIT.java index d30c274f0bf5..f2eee22b1d54 100644 --- a/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms7563EnIT.java +++ b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/enlinkd/Nms7563EnIT.java @@ -115,7 +115,7 @@ public void testCisco01Links() throws Exception { for (LldpLink link: m_lldpLinkDao.findAll()) { assertNotNull(link); printLldpLink(link); - assertEquals(8, link.getLldpLocalPortNum().intValue()); + assertEquals(1, link.getLldpLocalPortNum().intValue()); assertNull(link.getLldpPortIfindex()); assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_INTERFACENAME,link.getLldpPortIdSubType()); assertEquals("Fa0/8",link.getLldpPortId()); @@ -176,7 +176,7 @@ public void testHomeServerLinks() throws Exception { for (LldpLink link: m_lldpLinkDao.findAll()) { assertNotNull(link); printLldpLink(link); - assertEquals(2, link.getLldpLocalPortNum().intValue()); + assertEquals(1, link.getLldpLocalPortNum().intValue()); assertNull(link.getLldpPortIfindex()); assertEquals(LldpPortIdSubType.LLDP_PORTID_SUBTYPE_MACADDRESS,link.getLldpPortIdSubType()); assertEquals(HOMESERVER_IF_MAC_MAP.get(2),link.getLldpPortId()); diff --git a/features/enlinkd/tests/src/test/java/org/opennms/netmgt/nb/Nms13593NetworkBuilder.java b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/nb/Nms13593NetworkBuilder.java new file mode 100644 index 000000000000..3b5e2438a263 --- /dev/null +++ b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/nb/Nms13593NetworkBuilder.java @@ -0,0 +1,110 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2013-2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.nb; + +import org.opennms.core.utils.InetAddressUtils; +import org.opennms.netmgt.model.OnmsNode; + +import java.util.Locale; + +/** + * @author Antonio Russo + */ + +public class Nms13593NetworkBuilder extends NmsNetworkBuilder { + + + static { + try { + ZHBGO1Zsr001_IP_IF_MAP.put(InetAddressUtils.addr(ZHBGO1Zsr001_IP), 1); + + ZHBGO1Zsr001_IF_IFDESCR_MAP.put(1, "system, Loopback IP interface"); + ZHBGO1Zsr001_IF_IFNAME_MAP.put(1, "lo0"); + ZHBGO1Zsr001_IF_MAC_MAP.put(1, "24 21 24 EC E2 3F".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + ZHBGO1Zsr001_IF_IFALIAS_MAP.put(1, ""); + + ZHBGO1Zsr001_IF_IFDESCR_MAP.put(104906753, "3/2/c1/1, 100-Gig Ethernet"); + ZHBGO1Zsr001_IF_IFNAME_MAP.put(104906753, "3/2/c1/1"); + ZHBGO1Zsr001_IF_MAC_MAP.put(104906753, "24 21 24 77 97 DF".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + ZHBGO1Zsr001_IF_IFALIAS_MAP.put(104906753, ""); + + ZHBGO1Zsr001_IF_IFDESCR_MAP.put(105037825, "3/2/c5/1, 100-Gig Ethernet"); + ZHBGO1Zsr001_IF_IFNAME_MAP.put(105037825, "3/2/c5/1"); + ZHBGO1Zsr001_IF_MAC_MAP.put(105037825, "24 21 24 77 98 07".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + ZHBGO1Zsr001_IF_IFALIAS_MAP.put(105037825, ""); + + ZHBGO1Zsr001_IF_IFDESCR_MAP.put(105070593, "3/2/c6/1, 100-Gig Ethernet"); + ZHBGO1Zsr001_IF_IFNAME_MAP.put(105070593, "3/2/c6/1"); + ZHBGO1Zsr001_IF_MAC_MAP.put(105070593, "24 21 24 77 98 11".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + ZHBGO1Zsr001_IF_IFALIAS_MAP.put(105070593, ""); + + ZHBGO1Zsr002_IP_IF_MAP.put(InetAddressUtils.addr(ZHBGO1Zsr002_IP), 1); + + ZHBGO1Zsr002_IF_IFDESCR_MAP.put(1, "system, Loopback IP interface"); + ZHBGO1Zsr002_IF_IFNAME_MAP.put(1, "lo0"); + ZHBGO1Zsr002_IF_MAC_MAP.put(1, "24 21 24 DA F6 3F".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + ZHBGO1Zsr002_IF_IFALIAS_MAP.put(1, ""); + + ZHBGO1Zsr002_IF_IFDESCR_MAP.put(104906753, "3/2/c1/1, 100-Gig Ethernet"); + ZHBGO1Zsr002_IF_IFNAME_MAP.put(104906753, "3/2/c1/1"); + ZHBGO1Zsr002_IF_MAC_MAP.put(104906753, "24 21 24 77 4F 37".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + ZHBGO1Zsr002_IF_IFALIAS_MAP.put(104906753, ""); + + ZHBGO1Zsr002_IF_IFDESCR_MAP.put(105037825, "3/2/c5/1, 100-Gig Ethernet"); + ZHBGO1Zsr002_IF_IFNAME_MAP.put(105037825, "3/2/c5/1"); + ZHBGO1Zsr002_IF_MAC_MAP.put(105037825, "24 21 24 77 4F 5F".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + ZHBGO1Zsr002_IF_IFALIAS_MAP.put(105037825, ""); + + ZHBGO1Zsr002_IF_IFDESCR_MAP.put(105070593, "3/2/c6/1, 100-Gig Ethernet"); + ZHBGO1Zsr002_IF_IFNAME_MAP.put(105070593, "3/2/c6/1"); + ZHBGO1Zsr002_IF_MAC_MAP.put(105070593, "24 21 24 77 4F 69".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + ZHBGO1Zsr002_IF_IFALIAS_MAP.put(105070593, ""); + + ZHBGO1Zsr002_IF_IFDESCR_MAP.put(1140918299, "esat-1/1/27, 1-Gig/10-Gig Ethernet, \"to-ZHAUWA1Zbb002 1/1/c36/3 Ref|708432|2393/KTN|-XV003-ODF 48 - 13+14\""); + ZHBGO1Zsr002_IF_IFNAME_MAP.put(1140918299, "esat-1/1/27"); + ZHBGO1Zsr002_IF_MAC_MAP.put(1140918299, "50 E0 EF 00 50 1C".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + ZHBGO1Zsr002_IF_IFALIAS_MAP.put(1140918299, "\"to-ZHAUWA1Zbb002 1/1/c36/3 Ref|708432|2393/KTN|-XV003-ODF 48 - 13+14\""); + + + } catch (Exception e) { + + } + } + + public OnmsNode getZHBGO1Zsr001() { + return getNode(ZHBGO1Zsr001_NAME,ZHBGO1Zsr001_SYSOID,ZHBGO1Zsr001_IP,ZHBGO1Zsr001_IP_IF_MAP,ZHBGO1Zsr001_IF_IFNAME_MAP, + ZHBGO1Zsr001_IF_MAC_MAP,ZHBGO1Zsr001_IF_IFDESCR_MAP,ZHBGO1Zsr001_IF_IFALIAS_MAP); + } + + public OnmsNode getZHBGO1Zsr002() { + return getNode(ZHBGO1Zsr002_NAME,ZHBGO1Zsr002_SYSOID,ZHBGO1Zsr002_IP,ZHBGO1Zsr002_IP_IF_MAP,ZHBGO1Zsr002_IF_IFNAME_MAP, + ZHBGO1Zsr002_IF_MAC_MAP,ZHBGO1Zsr002_IF_IFDESCR_MAP,ZHBGO1Zsr002_IF_IFALIAS_MAP); + } + +} diff --git a/features/enlinkd/tests/src/test/java/org/opennms/netmgt/nb/Nms13637NetworkBuilder.java b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/nb/Nms13637NetworkBuilder.java new file mode 100644 index 000000000000..1f39b9bba1cc --- /dev/null +++ b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/nb/Nms13637NetworkBuilder.java @@ -0,0 +1,128 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.nb; + +import org.opennms.core.utils.InetAddressUtils; +import org.opennms.netmgt.model.OnmsNode; + +import java.util.Locale; + +/** + * @author Antonio Russo + */ + +public class Nms13637NetworkBuilder extends NmsNetworkBuilder { + + + static { + try { + MKTROUTER1_IP_IF_MAP.put(InetAddressUtils.addr(MKTROUTER1_IP), 1); + MKTROUTER1_IF_IFDESCR_MAP.put(1, "ether1"); + MKTROUTER1_IF_IFNAME_MAP.put(1, "ether1"); + MKTROUTER1_IF_MAC_MAP.put(1, MKTROUTER1_ETHER1_MAC); + MKTROUTER1_IF_IFALIAS_MAP.put(1, ""); + + MKTROUTER2_IP_IF_MAP.put(InetAddressUtils.addr(MKTROUTER2_IP), 1); + MKTROUTER2_IF_IFDESCR_MAP.put(1, "ether1"); + MKTROUTER2_IF_IFNAME_MAP.put(1, "ether1"); + MKTROUTER2_IF_MAC_MAP.put(1, MKTROUTER2_ETHER1_MAC); + MKTROUTER2_IF_IFALIAS_MAP.put(1, ""); + + MKT_CISCO_SW01_IP_IF_MAP.put(InetAddressUtils.addr(MKT_CISCO_SW01_IP),7000); + MKT_CISCO_SW01_IF_IFDESCR_MAP.put(7000, "loopback1"); + MKT_CISCO_SW01_IF_MAC_MAP.put(7000, "5C 71 0D 26 AC 3E".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + MKT_CISCO_SW01_IF_IFNAME_MAP.put(7000, "loopback1"); + MKT_CISCO_SW01_IF_IFALIAS_MAP.put(7000, ""); + + MKT_CISCO_SW01_IF_IFDESCR_MAP.put(1, "GigabitEthernet1"); + MKT_CISCO_SW01_IF_IFDESCR_MAP.put(2, "GigabitEthernet2"); + MKT_CISCO_SW01_IF_IFDESCR_MAP.put(3, "GigabitEthernet3"); + MKT_CISCO_SW01_IF_IFDESCR_MAP.put(4, "GigabitEthernet4"); + MKT_CISCO_SW01_IF_IFDESCR_MAP.put(5, "GigabitEthernet5"); + MKT_CISCO_SW01_IF_IFDESCR_MAP.put(6, "GigabitEthernet6"); + MKT_CISCO_SW01_IF_IFDESCR_MAP.put(7, "GigabitEthernet7"); + MKT_CISCO_SW01_IF_IFDESCR_MAP.put(8, "GigabitEthernet8"); + MKT_CISCO_SW01_IF_IFDESCR_MAP.put(9, "GigabitEthernet9"); + MKT_CISCO_SW01_IF_IFDESCR_MAP.put(10, "GigabitEthernet10"); + + MKT_CISCO_SW01_IF_MAC_MAP.put(1, "5C 71 0D 26 AC 3F".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + MKT_CISCO_SW01_IF_MAC_MAP.put(2, "5C 71 0D 26 AC 40".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + MKT_CISCO_SW01_IF_MAC_MAP.put(3, "5C 71 0D 26 AC 41".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + MKT_CISCO_SW01_IF_MAC_MAP.put(4, "5C 71 0D 26 AC 42".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + MKT_CISCO_SW01_IF_MAC_MAP.put(5, MKT_CISCO_SW01_GB05_MAC); + MKT_CISCO_SW01_IF_MAC_MAP.put(6, "5C 71 0D 26 AC 44".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + MKT_CISCO_SW01_IF_MAC_MAP.put(7, "5C 71 0D 26 AC 45".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + MKT_CISCO_SW01_IF_MAC_MAP.put(8, "5C 71 0D 26 AC 46".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + MKT_CISCO_SW01_IF_MAC_MAP.put(9, "5C 71 0D 26 AC 47".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + MKT_CISCO_SW01_IF_MAC_MAP.put(10, "5C 71 0D 26 AC 48".replaceAll("\\s+","").toLowerCase(Locale.ROOT)); + + MKT_CISCO_SW01_IF_IFNAME_MAP.put(1, "gi1"); + MKT_CISCO_SW01_IF_IFNAME_MAP.put(2, "gi2"); + MKT_CISCO_SW01_IF_IFNAME_MAP.put(3, "gi3"); + MKT_CISCO_SW01_IF_IFNAME_MAP.put(4, "gi4"); + MKT_CISCO_SW01_IF_IFNAME_MAP.put(5, "gi5"); + MKT_CISCO_SW01_IF_IFNAME_MAP.put(6, "gi6"); + MKT_CISCO_SW01_IF_IFNAME_MAP.put(7, "gi7"); + MKT_CISCO_SW01_IF_IFNAME_MAP.put(8, "gi8"); + MKT_CISCO_SW01_IF_IFNAME_MAP.put(9, "gi9"); + MKT_CISCO_SW01_IF_IFNAME_MAP.put(10, "gi10"); + + MKT_CISCO_SW01_IF_IFALIAS_MAP.put(1, ""); + MKT_CISCO_SW01_IF_IFALIAS_MAP.put(2, "Powerline Office"); + MKT_CISCO_SW01_IF_IFALIAS_MAP.put(3, ""); + MKT_CISCO_SW01_IF_IFALIAS_MAP.put(4, "Brother DCP-9022CDW"); + MKT_CISCO_SW01_IF_IFALIAS_MAP.put(5, "ESX Management"); + MKT_CISCO_SW01_IF_IFALIAS_MAP.put(6, "VMware ESX"); + MKT_CISCO_SW01_IF_IFALIAS_MAP.put(7, "dinky"); + MKT_CISCO_SW01_IF_IFALIAS_MAP.put(8, "fritz.box"); + MKT_CISCO_SW01_IF_IFALIAS_MAP.put(9, ""); + MKT_CISCO_SW01_IF_IFALIAS_MAP.put(10, ""); + + + } catch (Exception e) { + + } + } + + public OnmsNode getRouter1() { + return getNode(MKTROUTER1_NAME, MKTROUTER1_SYSOID, MKTROUTER1_IP, MKTROUTER1_IP_IF_MAP, MKTROUTER1_IF_IFNAME_MAP, + MKTROUTER1_IF_MAC_MAP, MKTROUTER1_IF_IFDESCR_MAP, MKTROUTER1_IF_IFALIAS_MAP); + } + + public OnmsNode getRouter2() { + return getNode(MKTROUTER2_NAME, MKTROUTER2_SYSOID, MKTROUTER2_IP, MKTROUTER2_IP_IF_MAP, MKTROUTER2_IF_IFNAME_MAP, + MKTROUTER2_IF_MAC_MAP, MKTROUTER2_IF_IFDESCR_MAP, MKTROUTER2_IF_IFALIAS_MAP); + } + + public OnmsNode getCiscoHomeSw() { + return getNode(MKT_CISCO_SW01_NAME, MKT_CISCO_SW01_SYSOID, MKT_CISCO_SW01_IP, MKT_CISCO_SW01_IP_IF_MAP, MKT_CISCO_SW01_IF_IFNAME_MAP, + MKT_CISCO_SW01_IF_MAC_MAP,MKT_CISCO_SW01_IF_IFDESCR_MAP,ZHBGO1Zsr002_IF_IFALIAS_MAP); + } + +} diff --git a/features/enlinkd/tests/src/test/java/org/opennms/netmgt/nb/NmsNetworkBuilder.java b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/nb/NmsNetworkBuilder.java index aa550463f8a0..01e98f5f3091 100644 --- a/features/enlinkd/tests/src/test/java/org/opennms/netmgt/nb/NmsNetworkBuilder.java +++ b/features/enlinkd/tests/src/test/java/org/opennms/netmgt/nb/NmsNetworkBuilder.java @@ -30,6 +30,7 @@ import java.net.InetAddress; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import org.opennms.core.utils.InetAddressUtils; @@ -45,312 +46,272 @@ */ public abstract class NmsNetworkBuilder { //NMS7918 - public static final String PE01_ROOT = "PE01"; public static final String PE01_IP = "10.25.19.1"; public static final String PE01_NAME = "pe01"; - public static final String PE01_SYSNAME = "PE01"; public static final String PE01_SYSOID = ".1.3.6.1.4.1.9.1.534"; public static final String PE01_SNMP_RESOURCE = "classpath:/linkd/nms7918/"+PE01_NAME+".txt"; - public static final String ASW01_ROOT = "ASW01"; public static final String ASW01_IP = "10.25.19.2"; public static final String ASW01_NAME = "asw01"; - public static final String ASW01_SYSNAME = "ASW01"; public static final String ASW01_SYSOID = ".1.3.6.1.4.1.6486.800.1.1.2.1.10.1.1"; public static final String ASW01_SNMP_RESOURCE = "classpath:/linkd/nms7918/"+ASW01_NAME+".txt"; - public static final String OSPESS01_ROOT = "OSPESS01"; public static final String OSPESS01_IP = "10.25.19.3"; public static final String OSPESS01_NAME = "osp.ess01"; - public static final String OSPESS01_SYSNAME = "osp.ess01"; public static final String OSPESS01_SYSOID = ".1.3.6.1.4.1.8072.3.2.10"; public static final String OSPESS01_SNMP_RESOURCE = "classpath:/linkd/nms7918/"+OSPESS01_NAME+".txt"; - public static final String OSPWL01_ROOT = "OSPWL01"; public static final String OSPWL01_IP = "10.25.19.4"; public static final String OSPWL01_NAME = "ospedale-wl1"; - public static final String OSPWL01_SYSNAME = "ospedale-wl1"; public static final String OSPWL01_SYSOID = ".1.3.6.1.4.1.14988.1"; public static final String OSPWL01_SNMP_RESOURCE = "classpath:/linkd/nms7918/"+OSPWL01_NAME+".txt"; - public static final String SAMASW01_ROOT = "SAMASW01"; public static final String SAMASW01_IP = "10.25.19.211"; public static final String SAMASW01_NAME = "sam.asw01"; - public static final String SAMASW01_SYSNAME = "sam.asw01"; public static final String SAMASW01_SYSOID = ".1.3.6.1.4.1.6486.800.1.1.2.2.4.1.1"; public static final String SAMASW01_SNMP_RESOURCE = "classpath:/linkd/nms7918/"+SAMASW01_NAME+".txt"; - public static final String STCASW01_ROOT = "STCASW01"; public static final String STCASW01_IP = "10.25.19.216"; public static final String STCASW01_NAME = "stc.asw01"; - public static final String STCASW01_SYSNAME = "stc.asw01"; public static final String STCASW01_SYSOID = ".1.3.6.1.4.1.6486.800.1.1.2.1.10.1.1"; public static final String STCASW01_SNMP_RESOURCE = "classpath:/linkd/nms7918/"+STCASW01_NAME+".txt"; //NMS8003 //NMS8000 - public final static String NMMR1_ROOT= "NMMR1"; public static final String NMMR1_IP = "192.168.3.1"; public static final String NMMR1_NAME = "NMM-R1"; - public static final String NMMR1_SYSNAME = "NMM-R1.informatik.hs-fulda.de"; public static final String NMMR1_SYSOID = ".1.3.6.1.4.1.9.1.1045"; public static final String NMMR1_SNMP_RESOURCE = "classpath:/linkd/nms8000/"+NMMR1_NAME+".snmpwalk.txt"; public static final String NMMR1_SNMP_RESOURCE_2 = "classpath:/linkd/nms8003/"+NMMR1_NAME+".snmpwalk.txt"; - public static final Map NMMR1_IP_IF_MAP = new HashMap(); - public static final Map NMMR1_IF_IFNAME_MAP = new HashMap(); - public static final Map NMMR1_IF_IFDESCR_MAP = new HashMap(); - public static final Map NMMR1_IF_MAC_MAP = new HashMap(); - public static final Map NMMR1_IF_IFALIAS_MAP = new HashMap(); - public static final Map NMMR1_IF_NETMASK_MAP = new HashMap(); - - public final static String NMMR2_ROOT= "NMMR2"; + public static final Map NMMR1_IP_IF_MAP = new HashMap<>(); + public static final Map NMMR1_IF_IFNAME_MAP = new HashMap<>(); + public static final Map NMMR1_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map NMMR1_IF_MAC_MAP = new HashMap<>(); + public static final Map NMMR1_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map NMMR1_IF_NETMASK_MAP = new HashMap<>(); + public static final String NMMR2_IP = "192.168.2.1"; public static final String NMMR2_NAME = "NMM-R2"; - public static final String NMMR2_SYSNAME = "NMM-R2.informatik.hs-fulda.de"; public static final String NMMR2_SYSOID = ".1.3.6.1.4.1.9.1.1045"; public static final String NMMR2_SNMP_RESOURCE = "classpath:/linkd/nms8000/"+NMMR2_NAME+".snmpwalk.txt"; public static final String NMMR2_SNMP_RESOURCE_2 = "classpath:/linkd/nms8003/"+NMMR2_NAME+".snmpwalk.txt"; - public static final Map NMMR2_IP_IF_MAP = new HashMap(); - public static final Map NMMR2_IF_IFNAME_MAP = new HashMap(); - public static final Map NMMR2_IF_IFDESCR_MAP = new HashMap(); - public static final Map NMMR2_IF_MAC_MAP = new HashMap(); - public static final Map NMMR2_IF_IFALIAS_MAP = new HashMap(); - public static final Map NMMR2_IF_NETMASK_MAP = new HashMap(); - - public final static String NMMR3_ROOT= "NMMR3"; + public static final Map NMMR2_IP_IF_MAP = new HashMap<>(); + public static final Map NMMR2_IF_IFNAME_MAP = new HashMap<>(); + public static final Map NMMR2_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map NMMR2_IF_MAC_MAP = new HashMap<>(); + public static final Map NMMR2_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map NMMR2_IF_NETMASK_MAP = new HashMap<>(); + public static final String NMMR3_IP = "192.168.255.1"; public static final String NMMR3_NAME = "NMM-R3"; - public static final String NMMR3_SYSNAME = "NMM-R3.informatik.hs-fulda.de"; public static final String NMMR3_SYSOID = ".1.3.6.1.4.1.9.1.1045"; public static final String NMMR3_SNMP_RESOURCE = "classpath:/linkd/nms8000/"+NMMR3_NAME+".snmpwalk.txt"; public static final String NMMR3_SNMP_RESOURCE_2 = "classpath:/linkd/nms8003/"+NMMR3_NAME+".snmpwalk.txt"; - public static final Map NMMR3_IP_IF_MAP = new HashMap(); - public static final Map NMMR3_IF_IFNAME_MAP = new HashMap(); - public static final Map NMMR3_IF_IFDESCR_MAP = new HashMap(); - public static final Map NMMR3_IF_MAC_MAP = new HashMap(); - public static final Map NMMR3_IF_IFALIAS_MAP = new HashMap(); - public static final Map NMMR3_IF_NETMASK_MAP = new HashMap(); - - public final static String NMMSW1_ROOT= "NMMSW1"; + public static final Map NMMR3_IP_IF_MAP = new HashMap<>(); + public static final Map NMMR3_IF_IFNAME_MAP = new HashMap<>(); + public static final Map NMMR3_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map NMMR3_IF_MAC_MAP = new HashMap<>(); + public static final Map NMMR3_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map NMMR3_IF_NETMASK_MAP = new HashMap<>(); + public static final String NMMSW1_IP = "192.168.23.10"; public static final String NMMSW1_NAME = "NMM-SW1"; - public static final String NMMSW1_SYSNAME = "NMM-SW1.informatik.hs-fulda.de"; public static final String NMMSW1_SYSOID = ".1.3.6.1.4.1.9.1.716"; public static final String NMMSW1_SNMP_RESOURCE = "classpath:/linkd/nms8000/"+NMMSW1_NAME+".snmpwalk.txt"; public static final String NMMSW1_SNMP_RESOURCE_2 = "classpath:/linkd/nms8003/"+NMMSW1_NAME+".snmpwalk.txt"; - public static final Map NMMSW1_IP_IF_MAP = new HashMap(); - public static final Map NMMSW1_IF_IFNAME_MAP = new HashMap(); - public static final Map NMMSW1_IF_IFDESCR_MAP = new HashMap(); - public static final Map NMMSW1_IF_MAC_MAP = new HashMap(); - public static final Map NMMSW1_IF_IFALIAS_MAP = new HashMap(); - public static final Map NMMSW1_IF_NETMASK_MAP = new HashMap(); - - public final static String NMMSW2_ROOT= "NMMSW2"; + public static final Map NMMSW1_IP_IF_MAP = new HashMap<>(); + public static final Map NMMSW1_IF_IFNAME_MAP = new HashMap<>(); + public static final Map NMMSW1_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map NMMSW1_IF_MAC_MAP = new HashMap<>(); + public static final Map NMMSW1_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map NMMSW1_IF_NETMASK_MAP = new HashMap<>(); + public static final String NMMSW2_IP = "192.168.42.10"; public static final String NMMSW2_NAME = "NMM-SW2"; - public static final String NMMSW2_SYSNAME = "NMM-SW2.informatik.hs-fulda.de"; public static final String NMMSW2_SYSOID = ".1.3.6.1.4.1.9.1.716"; public static final String NMMSW2_SNMP_RESOURCE = "classpath:/linkd/nms8000/"+NMMSW2_NAME+".snmpwalk.txt"; public static final String NMMSW2_SNMP_RESOURCE_2 = "classpath:/linkd/nms8003/"+NMMSW2_NAME+".snmpwalk.txt"; - public static final Map NMMSW2_IP_IF_MAP = new HashMap(); - public static final Map NMMSW2_IF_IFNAME_MAP = new HashMap(); - public static final Map NMMSW2_IF_IFDESCR_MAP = new HashMap(); - public static final Map NMMSW2_IF_MAC_MAP = new HashMap(); - public static final Map NMMSW2_IF_IFALIAS_MAP = new HashMap(); - public static final Map NMMSW2_IF_NETMASK_MAP = new HashMap(); + public static final Map NMMSW2_IP_IF_MAP = new HashMap<>(); + public static final Map NMMSW2_IF_IFNAME_MAP = new HashMap<>(); + public static final Map NMMSW2_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map NMMSW2_IF_MAC_MAP = new HashMap<>(); + public static final Map NMMSW2_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map NMMSW2_IF_NETMASK_MAP = new HashMap<>(); //NMS6802 - public final static String CISCOISIS_ROOT= "CISCOISIS"; public static final String CISCOISIS_IP = "10.100.68.2"; public static final String CISCOISIS_NAME = "cisco-ios-xr"; - public static final String CISCOISIS_SYSNAME = "cisco-ios-xr"; public static final String CISCOISIS_SNMP_RESOURCE = "classpath:/linkd/nms6802/"+CISCOISIS_NAME+"-walk.txt"; public static final String CISCOISIS_SYSOID = ".1.3.6.1.4.1.9.1.2090"; public static final String CISCOISIS_ISIS_SYS_ID = "093176090107"; - public static final Map CISCOISIS_IP_IF_MAP = new HashMap(); - public static final Map CISCOISIS_IF_IFNAME_MAP = new HashMap(); - public static final Map CISCOISIS_IF_IFDESCR_MAP = new HashMap(); - public static final Map CISCOISIS_IF_MAC_MAP = new HashMap(); - public static final Map CISCOISIS_IF_IFALIAS_MAP = new HashMap(); - public static final Map CISCOISIS_IF_NETMASK_MAP = new HashMap(); + public static final Map CISCOISIS_IP_IF_MAP = new HashMap<>(); + public static final Map CISCOISIS_IF_IFNAME_MAP = new HashMap<>(); + public static final Map CISCOISIS_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map CISCOISIS_IF_MAC_MAP = new HashMap<>(); + public static final Map CISCOISIS_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map CISCOISIS_IF_NETMASK_MAP = new HashMap<>(); //NMS7563 - public final static String HOMESERVER_ROOT= "HOMESERVER"; public static final String HOMESERVER_IP = "192.168.88.1"; public static final String HOMESERVER_NAME = "homeserver"; - public static final String HOMESERVER_SYSNAME = "server"; public static final String HOMESERVER_SNMP_RESOURCE = "classpath:/linkd/nms7563/"+HOMESERVER_NAME+"-walk.txt"; public static final String HOMESERVER_SYSOID = ".1.3.6.1.4.1.8072.3.2.10"; public static final String HOMESERVER_LLDP_CHASSID_ID="001ff207994f"; public static final String HOMESERVER_LLDP_SYSNAME="server.home.schwartzkopff.org"; public static final String HOMESERVER_CDP_GLOBAL_DEVICE_ID="001ff207994f"; - public static final Map HOMESERVER_IP_IF_MAP = new HashMap(); - public static final Map HOMESERVER_IF_IFNAME_MAP = new HashMap(); - public static final Map HOMESERVER_IF_IFDESCR_MAP = new HashMap(); - public static final Map HOMESERVER_IF_MAC_MAP = new HashMap(); - public static final Map HOMESERVER_IF_IFALIAS_MAP = new HashMap(); - public static final Map HOMESERVER_IF_NETMASK_MAP = new HashMap(); - - public final static String CISCO01_ROOT= "CISCO01"; + public static final Map HOMESERVER_IP_IF_MAP = new HashMap<>(); + public static final Map HOMESERVER_IF_IFNAME_MAP = new HashMap<>(); + public static final Map HOMESERVER_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map HOMESERVER_IF_MAC_MAP = new HashMap<>(); + public static final Map HOMESERVER_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map HOMESERVER_IF_NETMASK_MAP = new HashMap<>(); + public static final String CISCO01_IP = "192.168.88.240"; public static final String CISCO01_NAME = "cisco01"; - public static final String CISCO01_SYSNAME = "cisco01"; public static final String CISCO01_SNMP_RESOURCE = "classpath:/linkd/nms7563/"+CISCO01_NAME+"-walk.txt"; public static final String CISCO01_SYSOID = ".1.3.6.1.4.1.9.1.798"; public static final String CISCO01_LLDP_CHASSID_ID="aca016bf0200"; public static final String CISCO01_LLDP_SYSNAME="cisco01"; public static final String CISCO01_CDP_GLOBAL_DEVICE_ID="cisco01"; - public static final Map CISCO01_IP_IF_MAP = new HashMap(); - public static final Map CISCO01_IF_IFNAME_MAP = new HashMap(); - public static final Map CISCO01_IF_IFDESCR_MAP = new HashMap(); - public static final Map CISCO01_IF_MAC_MAP = new HashMap(); - public static final Map CISCO01_IF_IFALIAS_MAP = new HashMap(); - public static final Map CISCO01_IF_NETMASK_MAP = new HashMap(); + public static final Map CISCO01_IP_IF_MAP = new HashMap<>(); + public static final Map CISCO01_IF_IFNAME_MAP = new HashMap<>(); + public static final Map CISCO01_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map CISCO01_IF_MAC_MAP = new HashMap<>(); + public static final Map CISCO01_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map CISCO01_IF_NETMASK_MAP = new HashMap<>(); - public final static String SWITCH02_ROOT= "SWITCH02"; public static final String SWITCH02_IP = "192.168.88.241"; public static final String SWITCH02_NAME = "switch02"; - public static final String SWITCH02_SYSNAME = "ProCurve Switch 2510B-24"; public static final String SWITCH02_SNMP_RESOURCE = "classpath:/linkd/nms7563/"+SWITCH02_NAME+"-walk.txt"; public static final String SWITCH02_SYSOID = ".1.3.6.1.4.1.11.2.3.7.11.90"; public static final String SWITCH02_LLDP_CHASSID_ID="001db3c50960"; public static final String SWITCH02_LLDP_SYSNAME="ProCurve Switch 2510B-24"; public static final String SWITCH02_CDP_GLOBAL_DEVICE_ID="ProCurve Switch 2510B-24(001db3-c50960)"; - public static final Map SWITCH02_IP_IF_MAP = new HashMap(); - public static final Map SWITCH02_IF_IFNAME_MAP = new HashMap(); - public static final Map SWITCH02_IF_IFDESCR_MAP = new HashMap(); - public static final Map SWITCH02_IF_MAC_MAP = new HashMap(); - public static final Map SWITCH02_IF_IFALIAS_MAP = new HashMap(); - public static final Map SWITCH02_IF_NETMASK_MAP = new HashMap(); + public static final Map SWITCH02_IP_IF_MAP = new HashMap<>(); + public static final Map SWITCH02_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SWITCH02_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SWITCH02_IF_MAC_MAP = new HashMap<>(); + public static final Map SWITCH02_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SWITCH02_IF_NETMASK_MAP = new HashMap<>(); //NMS0123 - public final static String ITPN0111_ROOT= "ITPN0111"; public static final String ITPN0111_IP = "1.1.1.1"; public static final String ITPN0111_NAME = "itpn0111"; public static final String ITPN0111_SNMP_RESOURCE = "classpath:/linkd/nms0123/"+ITPN0111_NAME+".txt"; public static final String ITPN0111_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.31"; - public static final Map ITPN0111_IP_IF_MAP = new HashMap(); - public static final Map ITPN0111_IF_IFNAME_MAP = new HashMap(); - public static final Map ITPN0111_IF_IFDESCR_MAP = new HashMap(); - public static final Map ITPN0111_IF_MAC_MAP = new HashMap(); - public static final Map ITPN0111_IF_IFALIAS_MAP = new HashMap(); - public static final Map ITPN0111_IF_NETMASK_MAP = new HashMap(); + public static final Map ITPN0111_IP_IF_MAP = new HashMap<>(); + public static final Map ITPN0111_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ITPN0111_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ITPN0111_IF_MAC_MAP = new HashMap<>(); + public static final Map ITPN0111_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map ITPN0111_IF_NETMASK_MAP = new HashMap<>(); - public final static String ITPN0112_ROOT= "ITPN0112"; public static final String ITPN0112_IP = "2.2.2.2"; public static final String ITPN0112_NAME = "itpn0112"; public static final String ITPN0112_SNMP_RESOURCE = "classpath:/linkd/nms0123/"+ITPN0112_NAME+".txt"; public static final String ITPN0112_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.31"; - public static final Map ITPN0112_IP_IF_MAP = new HashMap(); - public static final Map ITPN0112_IF_IFNAME_MAP = new HashMap(); - public static final Map ITPN0112_IF_IFDESCR_MAP = new HashMap(); - public static final Map ITPN0112_IF_MAC_MAP = new HashMap(); - public static final Map ITPN0112_IF_IFALIAS_MAP = new HashMap(); - public static final Map ITPN0112_IF_NETMASK_MAP = new HashMap(); + public static final Map ITPN0112_IP_IF_MAP = new HashMap<>(); + public static final Map ITPN0112_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ITPN0112_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ITPN0112_IF_MAC_MAP = new HashMap<>(); + public static final Map ITPN0112_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map ITPN0112_IF_NETMASK_MAP = new HashMap<>(); - public final static String ITPN0113_ROOT= "ITPN0113"; public static final String ITPN0113_IP = "3.3.3.3"; public static final String ITPN0113_NAME = "itpn0113"; public static final String ITPN0113_SNMP_RESOURCE = "classpath:/linkd/nms0123/"+ITPN0113_NAME+".txt"; public static final String ITPN0113_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.31"; - public static final Map ITPN0113_IP_IF_MAP = new HashMap(); - public static final Map ITPN0113_IF_IFNAME_MAP = new HashMap(); - public static final Map ITPN0113_IF_IFDESCR_MAP = new HashMap(); - public static final Map ITPN0113_IF_MAC_MAP = new HashMap(); - public static final Map ITPN0113_IF_IFALIAS_MAP = new HashMap(); - public static final Map ITPN0113_IF_NETMASK_MAP = new HashMap(); + public static final Map ITPN0113_IP_IF_MAP = new HashMap<>(); + public static final Map ITPN0113_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ITPN0113_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ITPN0113_IF_MAC_MAP = new HashMap<>(); + public static final Map ITPN0113_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map ITPN0113_IF_NETMASK_MAP = new HashMap<>(); - public final static String ITPN0114_ROOT= "ITPN0114"; public static final String ITPN0114_IP = "5.5.5.5"; public static final String ITPN0114_NAME = "itpn0114"; public static final String ITPN0114_SNMP_RESOURCE = "classpath:/linkd/nms0123/"+ITPN0114_NAME+".txt"; public static final String ITPN0114_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.31"; - public static final Map ITPN0114_IP_IF_MAP = new HashMap(); - public static final Map ITPN0114_IF_IFNAME_MAP = new HashMap(); - public static final Map ITPN0114_IF_IFDESCR_MAP = new HashMap(); - public static final Map ITPN0114_IF_MAC_MAP = new HashMap(); - public static final Map ITPN0114_IF_IFALIAS_MAP = new HashMap(); - public static final Map ITPN0114_IF_NETMASK_MAP = new HashMap(); + public static final Map ITPN0114_IP_IF_MAP = new HashMap<>(); + public static final Map ITPN0114_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ITPN0114_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ITPN0114_IF_MAC_MAP = new HashMap<>(); + public static final Map ITPN0114_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map ITPN0114_IF_NETMASK_MAP = new HashMap<>(); - public final static String ITPN0121_ROOT= "ITPN0121"; public static final String ITPN0121_IP = "6.6.6.6"; public static final String ITPN0121_NAME = "itpn0121"; public static final String ITPN0121_SNMP_RESOURCE = "classpath:/linkd/nms0123/"+ITPN0121_NAME+".txt"; public static final String ITPN0121_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.31"; - public static final Map ITPN0121_IP_IF_MAP = new HashMap(); - public static final Map ITPN0121_IF_IFNAME_MAP = new HashMap(); - public static final Map ITPN0121_IF_IFDESCR_MAP = new HashMap(); - public static final Map ITPN0121_IF_MAC_MAP = new HashMap(); - public static final Map ITPN0121_IF_IFALIAS_MAP = new HashMap(); - public static final Map ITPN0121_IF_NETMASK_MAP = new HashMap(); + public static final Map ITPN0121_IP_IF_MAP = new HashMap<>(); + public static final Map ITPN0121_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ITPN0121_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ITPN0121_IF_MAC_MAP = new HashMap<>(); + public static final Map ITPN0121_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map ITPN0121_IF_NETMASK_MAP = new HashMap<>(); - public final static String ITPN0123_ROOT= "ITPN0123"; public static final String ITPN0123_IP = "8.8.8.8"; public static final String ITPN0123_NAME = "itpn0123"; public static final String ITPN0123_SNMP_RESOURCE = "classpath:/linkd/nms0123/"+ITPN0123_NAME+".txt"; public static final String ITPN0123_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.31"; - public static final Map ITPN0123_IP_IF_MAP = new HashMap(); - public static final Map ITPN0123_IF_IFNAME_MAP = new HashMap(); - public static final Map ITPN0123_IF_IFDESCR_MAP = new HashMap(); - public static final Map ITPN0123_IF_MAC_MAP = new HashMap(); - public static final Map ITPN0123_IF_IFALIAS_MAP = new HashMap(); - public static final Map ITPN0123_IF_NETMASK_MAP = new HashMap(); + public static final Map ITPN0123_IP_IF_MAP = new HashMap<>(); + public static final Map ITPN0123_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ITPN0123_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ITPN0123_IF_MAC_MAP = new HashMap<>(); + public static final Map ITPN0123_IF_IFALIAS_MAP = new HashMap<>(); - public final static String ITPN0201_ROOT= "ITPN0201"; public static final String ITPN0201_IP = "4.4.4.4"; public static final String ITPN0201_NAME = "itpn0201"; public static final String ITPN0201_SNMP_RESOURCE = "classpath:/linkd/nms0123/"+ITPN0201_NAME+".txt"; public static final String ITPN0201_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.31"; - public static final Map ITPN0201_IP_IF_MAP = new HashMap(); - public static final Map ITPN0201_IF_IFNAME_MAP = new HashMap(); - public static final Map ITPN0201_IF_IFDESCR_MAP = new HashMap(); - public static final Map ITPN0201_IF_MAC_MAP = new HashMap(); - public static final Map ITPN0201_IF_IFALIAS_MAP = new HashMap(); - public static final Map ITPN0201_IF_NETMASK_MAP = new HashMap(); + public static final Map ITPN0201_IP_IF_MAP = new HashMap<>(); + public static final Map ITPN0201_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ITPN0201_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ITPN0201_IF_MAC_MAP = new HashMap<>(); + public static final Map ITPN0201_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map ITPN0201_IF_NETMASK_MAP = new HashMap<>(); - public final static String ITPN0202_ROOT= "ITPN0202"; public static final String ITPN0202_IP = "9.9.9.9"; public static final String ITPN0202_NAME = "itpn0202"; public static final String ITPN0202_SNMP_RESOURCE = "classpath:/linkd/nms0123/"+ITPN0202_NAME+".txt"; public static final String ITPN0202_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.31"; - public static final Map ITPN0202_IP_IF_MAP = new HashMap(); - public static final Map ITPN0202_IF_IFNAME_MAP = new HashMap(); - public static final Map ITPN0202_IF_IFDESCR_MAP = new HashMap(); - public static final Map ITPN0202_IF_MAC_MAP = new HashMap(); - public static final Map ITPN0202_IF_IFALIAS_MAP = new HashMap(); - public static final Map ITPN0202_IF_NETMASK_MAP = new HashMap(); + public static final Map ITPN0202_IP_IF_MAP = new HashMap<>(); + public static final Map ITPN0202_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ITPN0202_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ITPN0202_IF_MAC_MAP = new HashMap<>(); + public static final Map ITPN0202_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map ITPN0202_IF_NETMASK_MAP = new HashMap<>(); //NMSDRAGONWAVE - public final static String DW_ROOT= "DW"; public static final String DW_IP = "10.103.1.1"; public static final String DW_NAME = "dw"; public static final String DW_SNMP_RESOURCE = "classpath:/linkd/nms7777dw/"+DW_NAME+"-walk.txt"; public static final String DW_SYSOID = ".1.3.6.1.4.1.7262.2.4"; - public static final Map DW_IP_IF_MAP = new HashMap(); - public static final Map DW_IF_IFNAME_MAP = new HashMap(); - public static final Map DW_IF_IFDESCR_MAP = new HashMap(); - public static final Map DW_IF_MAC_MAP = new HashMap(); - public static final Map DW_IF_IFALIAS_MAP = new HashMap(); - public static final Map DW_IF_NETMASK_MAP = new HashMap(); + public static final Map DW_IP_IF_MAP = new HashMap<>(); + public static final Map DW_IF_IFNAME_MAP = new HashMap<>(); + public static final Map DW_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map DW_IF_MAC_MAP = new HashMap<>(); + public static final Map DW_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map DW_IF_NETMASK_MAP = new HashMap<>(); //NMS4943 public static final String DLINK1_IP = "10.1.1.2"; @@ -362,63 +323,58 @@ public abstract class NmsNetworkBuilder { public static final String DLINK2_SNMP_RESOURCE = "classpath:/linkd/nms4930/dlink_DGS-3612G.properties"; //NMS0001 - public final static String FROH_ROOT= "FROH"; public static final String FROH_IP = "192.168.239.51"; public static final String FROH_NAME = "froh"; public static final String FROH_SNMP_RESOURCE = "classpath:/linkd/nms0001/" + FROH_NAME + "-"+FROH_IP + "-walk.txt"; public static final String FROH_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.29"; - public static final Map FROH_IP_IF_MAP = new HashMap(); - public static final Map FROH_IF_IFNAME_MAP = new HashMap(); - public static final Map FROH_IF_IFDESCR_MAP = new HashMap(); - public static final Map FROH_IF_MAC_MAP = new HashMap(); - public static final Map FROH_IF_IFALIAS_MAP = new HashMap(); - public static final Map FROH_IF_NETMASK_MAP = new HashMap(); - - public final static String OEDIPUS_ROOT= "OEDIPUS"; + public static final Map FROH_IP_IF_MAP = new HashMap<>(); + public static final Map FROH_IF_IFNAME_MAP = new HashMap<>(); + public static final Map FROH_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map FROH_IF_MAC_MAP = new HashMap<>(); + public static final Map FROH_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map FROH_IF_NETMASK_MAP = new HashMap<>(); + public static final String OEDIPUS_IP = "192.168.239.62"; public static final String OEDIPUS_NAME = "oedipus"; public static final String OEDIPUS_SNMP_RESOURCE = "classpath:/linkd/nms0001/" + OEDIPUS_NAME + "-"+OEDIPUS_IP + "-walk.txt"; public static final String OEDIPUS_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.11"; - public static final Map OEDIPUS_IP_IF_MAP = new HashMap(); - public static final Map OEDIPUS_IF_IFNAME_MAP = new HashMap(); - public static final Map OEDIPUS_IF_IFDESCR_MAP = new HashMap(); - public static final Map OEDIPUS_IF_MAC_MAP = new HashMap(); - public static final Map OEDIPUS_IF_IFALIAS_MAP = new HashMap(); - public static final Map OEDIPUS_IF_NETMASK_MAP = new HashMap(); + public static final Map OEDIPUS_IP_IF_MAP = new HashMap<>(); + public static final Map OEDIPUS_IF_IFNAME_MAP = new HashMap<>(); + public static final Map OEDIPUS_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map OEDIPUS_IF_MAC_MAP = new HashMap<>(); + public static final Map OEDIPUS_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map OEDIPUS_IF_NETMASK_MAP = new HashMap<>(); - public static final String SIEGFRIE_ROOT= "SIEGFRIE"; public static final String SIEGFRIE_IP = "192.168.239.54"; public static final String SIEGFRIE_NAME = "siegfrie"; public static final String SIEGFRIE_SNMP_RESOURCE = "classpath:/linkd/nms0001/" + SIEGFRIE_NAME + "-"+SIEGFRIE_IP + "-walk.txt"; public static final String SIEGFRIE_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.11"; - public static final Map SIEGFRIE_IP_IF_MAP = new HashMap(); - public static final Map SIEGFRIE_IF_IFNAME_MAP = new HashMap(); - public static final Map SIEGFRIE_IF_IFDESCR_MAP = new HashMap(); - public static final Map SIEGFRIE_IF_MAC_MAP = new HashMap(); - public static final Map SIEGFRIE_IF_IFALIAS_MAP = new HashMap(); - public static final Map SIEGFRIE_IF_NETMASK_MAP = new HashMap(); + public static final Map SIEGFRIE_IP_IF_MAP = new HashMap<>(); + public static final Map SIEGFRIE_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SIEGFRIE_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SIEGFRIE_IF_MAC_MAP = new HashMap<>(); + public static final Map SIEGFRIE_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SIEGFRIE_IF_NETMASK_MAP = new HashMap<>(); public static final String FROH_ISIS_SYS_ID = "000110088500"; public static final String OEDIPUS_ISIS_SYS_ID = "000110255062"; public static final String SIEGFRIE_ISIS_SYS_ID = "000110255054"; //NMS0001 - public static final String Rluck001_ROOT= "Rluck001"; public static final String Rluck001_IP = "10.4.79.250"; public static final String Rluck001_NAME = "r-de-juet-luck-001"; public static final String Rluck001_SNMP_RESOURCE = "classpath:/linkd/nms0002ciscojuniper/" + Rluck001_NAME +".txt"; public static final String Rluck001_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.39"; - public static final Map Rluck001_IP_IF_MAP = new HashMap(); - public static final Map Rluck001_IF_IFNAME_MAP = new HashMap(); - public static final Map Rluck001_IF_IFDESCR_MAP = new HashMap(); - public static final Map Rluck001_IF_MAC_MAP = new HashMap(); - public static final Map Rluck001_IF_IFALIAS_MAP = new HashMap(); - public static final Map Rluck001_IF_NETMASK_MAP = new HashMap(); - - public static final String Sluck001_ROOT= "Sluck001"; + public static final Map Rluck001_IP_IF_MAP = new HashMap<>(); + public static final Map Rluck001_IF_IFNAME_MAP = new HashMap<>(); + public static final Map Rluck001_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map Rluck001_IF_MAC_MAP = new HashMap<>(); + public static final Map Rluck001_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map Rluck001_IF_NETMASK_MAP = new HashMap<>(); + public static final String Sluck001_IP = "10.4.68.215"; public static final String Sluck001_NAME = "s-de-juet-luck-001"; public static final String Sluck001_SNMP_RESOURCE = "classpath:/linkd/nms0002ciscojuniper/" + Sluck001_NAME+ ".txt"; @@ -426,40 +382,37 @@ public abstract class NmsNetworkBuilder { public static final String Sluck001_SNMP_RESOURCE_VLAN950 = "classpath:/linkd/nms0002ciscojuniper/" + Sluck001_NAME+ ".vlan950.txt"; public static final String Sluck001_SYSOID = ".1.3.6.1.4.1.9.1.564"; - public static final Map Sluck001_IP_IF_MAP = new HashMap(); - public static final Map Sluck001_IF_IFNAME_MAP = new HashMap(); - public static final Map Sluck001_IF_IFDESCR_MAP = new HashMap(); - public static final Map Sluck001_IF_MAC_MAP = new HashMap(); - public static final Map Sluck001_IF_IFALIAS_MAP = new HashMap(); - public static final Map Sluck001_IF_NETMASK_MAP = new HashMap(); + public static final Map Sluck001_IP_IF_MAP = new HashMap<>(); + public static final Map Sluck001_IF_IFNAME_MAP = new HashMap<>(); + public static final Map Sluck001_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map Sluck001_IF_MAC_MAP = new HashMap<>(); + public static final Map Sluck001_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map Sluck001_IF_NETMASK_MAP = new HashMap<>(); - public static final String RPict001_ROOT= "RPict001"; public static final String RPict001_IP = "10.140.252.57"; public static final String RPict001_NAME = "r-ro-suce-pict-001"; public static final String RPict001_SNMP_RESOURCE = "classpath:/linkd/nms0002UkRoFakeLink/" + RPict001_NAME+".txt"; public static final String RPict001_SYSOID = ".1.3.6.1.4.1.9.1.571"; - public static final Map RPict001_IP_IF_MAP = new HashMap(); - public static final Map RPict001_IF_IFNAME_MAP = new HashMap(); - public static final Map RPict001_IF_IFDESCR_MAP = new HashMap(); - public static final Map RPict001_IF_MAC_MAP = new HashMap(); - public static final Map RPict001_IF_IFALIAS_MAP = new HashMap(); - public static final Map RPict001_IF_NETMASK_MAP = new HashMap(); + public static final Map RPict001_IP_IF_MAP = new HashMap<>(); + public static final Map RPict001_IF_IFNAME_MAP = new HashMap<>(); + public static final Map RPict001_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map RPict001_IF_MAC_MAP = new HashMap<>(); + public static final Map RPict001_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map RPict001_IF_NETMASK_MAP = new HashMap<>(); - public static final String RNewt103_ROOT= "RNewt103"; public static final String RNewt103_IP = "10.239.9.22"; public static final String RNewt103_NAME = "r-uk-nott-newt-103"; public static final String RNewt103_SNMP_RESOURCE = "classpath:/linkd/nms0002UkRoFakeLink/" + RNewt103_NAME+".txt"; public static final String RNewt103_SYSOID = ".1.3.6.1.4.1.9.1.571"; - public static final Map RNewt103_IP_IF_MAP = new HashMap(); - public static final Map RNewt103_IF_IFNAME_MAP = new HashMap(); - public static final Map RNewt103_IF_IFDESCR_MAP = new HashMap(); - public static final Map RNewt103_IF_MAC_MAP = new HashMap(); - public static final Map RNewt103_IF_IFALIAS_MAP = new HashMap(); - public static final Map RNewt103_IF_NETMASK_MAP = new HashMap(); - - public static final String RDeEssnBrue_ROOT= "RDeEssnBrue"; + public static final Map RNewt103_IP_IF_MAP = new HashMap<>(); + public static final Map RNewt103_IF_IFNAME_MAP = new HashMap<>(); + public static final Map RNewt103_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map RNewt103_IF_MAC_MAP = new HashMap<>(); + public static final Map RNewt103_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map RNewt103_IF_NETMASK_MAP = new HashMap<>(); + public static final String RDeEssnBrue_IP = "10.167.254.40"; public static final String RDeEssnBrue_NAME = "r-de-essn-brue-001"; public static final String RDeEssnBrue_SNMP_RESOURCE = "classpath:/linkd/nms0002ciscoalcatel2/" + RDeEssnBrue_NAME+ ".txt"; @@ -529,66 +482,61 @@ public abstract class NmsNetworkBuilder { public static final String RDeEssnBrue_SNMP_RESOURCE_VLAN_979 = "classpath:/linkd/nms0002ciscoalcatel2/r-de-essn-brue-001.vlan979.txt"; public static final String RDeEssnBrue_SYSOID = ".1.3.6.1.4.1.9.1.896"; - public static final Map RDeEssnBrue_IP_IF_MAP = new HashMap(); - public static final Map RDeEssnBrue_IF_IFNAME_MAP = new HashMap(); - public static final Map RDeEssnBrue_IF_IFDESCR_MAP = new HashMap(); - public static final Map RDeEssnBrue_IF_MAC_MAP = new HashMap(); - public static final Map RDeEssnBrue_IF_IFALIAS_MAP = new HashMap(); - public static final Map RDeEssnBrue_IF_NETMASK_MAP = new HashMap(); - - public static final String SDeEssnBrue081_ROOT= "SDeEssnBrue081"; + public static final Map RDeEssnBrue_IP_IF_MAP = new HashMap<>(); + public static final Map RDeEssnBrue_IF_IFNAME_MAP = new HashMap<>(); + public static final Map RDeEssnBrue_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map RDeEssnBrue_IF_MAC_MAP = new HashMap<>(); + public static final Map RDeEssnBrue_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map RDeEssnBrue_IF_NETMASK_MAP = new HashMap<>(); + public static final String SDeEssnBrue081_IP = "10.165.62.91"; public static final String SDeEssnBrue081_NAME = "s-de-essn-brue-081"; public static final String SDeEssnBrue081_SNMP_RESOURCE ="classpath:/linkd/nms0002ciscoalcatel2/" + SDeEssnBrue081_NAME+ ".txt"; public static final String SDeEssnBrue081_SYSOID = ".1.3.6.1.4.1.6486.800.1.1.2.1.11.2.2"; - public static final Map SDeEssnBrue081_IP_IF_MAP = new HashMap(); - public static final Map SDeEssnBrue081_IF_IFNAME_MAP = new HashMap(); - public static final Map SDeEssnBrue081_IF_IFDESCR_MAP = new HashMap(); - public static final Map SDeEssnBrue081_IF_MAC_MAP = new HashMap(); - public static final Map SDeEssnBrue081_IF_IFALIAS_MAP = new HashMap(); - public static final Map SDeEssnBrue081_IF_NETMASK_MAP = new HashMap(); - - public static final String SDeEssnBrue121_ROOT= "SDeEssnBrue121"; + public static final Map SDeEssnBrue081_IP_IF_MAP = new HashMap<>(); + public static final Map SDeEssnBrue081_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SDeEssnBrue081_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SDeEssnBrue081_IF_MAC_MAP = new HashMap<>(); + public static final Map SDeEssnBrue081_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SDeEssnBrue081_IF_NETMASK_MAP = new HashMap<>(); + public static final String SDeEssnBrue121_IP = "10.165.62.131"; public static final String SDeEssnBrue121_NAME = "s-de-essn-brue-121"; public static final String SDeEssnBrue121_SNMP_RESOURCE ="classpath:/linkd/nms0002ciscoalcatel2/" + SDeEssnBrue121_NAME+ ".txt"; public static final String SDeEssnBrue121_SYSOID = ".1.3.6.1.4.1.6486.800.1.1.2.1.11.2.2"; - public static final Map SDeEssnBrue121_IP_IF_MAP = new HashMap(); - public static final Map SDeEssnBrue121_IF_IFNAME_MAP = new HashMap(); - public static final Map SDeEssnBrue121_IF_IFDESCR_MAP = new HashMap(); - public static final Map SDeEssnBrue121_IF_MAC_MAP = new HashMap(); - public static final Map SDeEssnBrue121_IF_IFALIAS_MAP = new HashMap(); - public static final Map SDeEssnBrue121_IF_NETMASK_MAP = new HashMap(); - - public static final String SDeEssnBrue142_ROOT= "SDeEssnBrue142"; + public static final Map SDeEssnBrue121_IP_IF_MAP = new HashMap<>(); + public static final Map SDeEssnBrue121_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SDeEssnBrue121_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SDeEssnBrue121_IF_MAC_MAP = new HashMap<>(); + public static final Map SDeEssnBrue121_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SDeEssnBrue121_IF_NETMASK_MAP = new HashMap<>(); + public static final String SDeEssnBrue142_IP = "10.165.62.152"; public static final String SDeEssnBrue142_NAME = "s-de-essn-brue-142"; public static final String SDeEssnBrue142_SNMP_RESOURCE ="classpath:/linkd/nms0002ciscoalcatel2/" + SDeEssnBrue142_NAME+ ".txt"; public static final String SDeEssnBrue142_SYSOID = ".1.3.6.1.4.1.6486.800.1.1.2.1.11.2.2"; - public static final Map SDeEssnBrue142_IP_IF_MAP = new HashMap(); - public static final Map SDeEssnBrue142_IF_IFNAME_MAP = new HashMap(); - public static final Map SDeEssnBrue142_IF_IFDESCR_MAP = new HashMap(); - public static final Map SDeEssnBrue142_IF_MAC_MAP = new HashMap(); - public static final Map SDeEssnBrue142_IF_IFALIAS_MAP = new HashMap(); - public static final Map SDeEssnBrue142_IF_NETMASK_MAP = new HashMap(); - - public static final String SDeEssnBrue165_ROOT= "SDeEssnBrue165"; + public static final Map SDeEssnBrue142_IP_IF_MAP = new HashMap<>(); + public static final Map SDeEssnBrue142_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SDeEssnBrue142_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SDeEssnBrue142_IF_MAC_MAP = new HashMap<>(); + public static final Map SDeEssnBrue142_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SDeEssnBrue142_IF_NETMASK_MAP = new HashMap<>(); + public static final String SDeEssnBrue165_IP = "10.165.62.175"; public static final String SDeEssnBrue165_NAME = "s-de-essn-brue-165"; public static final String SDeEssnBrue165_SNMP_RESOURCE ="classpath:/linkd/nms0002ciscoalcatel2/" + SDeEssnBrue165_NAME+ ".txt"; public static final String SDeEssnBrue165_SYSOID = ".1.3.6.1.4.1.6486.800.1.1.2.1.11.2.2"; - public static final Map SDeEssnBrue165_IP_IF_MAP = new HashMap(); - public static final Map SDeEssnBrue165_IF_IFNAME_MAP = new HashMap(); - public static final Map SDeEssnBrue165_IF_IFDESCR_MAP = new HashMap(); - public static final Map SDeEssnBrue165_IF_MAC_MAP = new HashMap(); - public static final Map SDeEssnBrue165_IF_IFALIAS_MAP = new HashMap(); - public static final Map SDeEssnBrue165_IF_NETMASK_MAP = new HashMap(); - - public static final String RSeMalmNobe_ROOT= "RSeMalmNobe"; + public static final Map SDeEssnBrue165_IP_IF_MAP = new HashMap<>(); + public static final Map SDeEssnBrue165_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SDeEssnBrue165_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SDeEssnBrue165_IF_MAC_MAP = new HashMap<>(); + public static final Map SDeEssnBrue165_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SDeEssnBrue165_IF_NETMASK_MAP = new HashMap<>(); + public static final String RSeMalmNobe_IP = "10.111.253.9"; public static final String RSeMalmNobe_NAME = "r-se-malm-nobe-013"; public static final String RSeMalmNobe_SNMP_RESOURCE = "classpath:/linkd/nms0002ciscoalcatel/r-se-malm-nobe-013.txt"; @@ -633,136 +581,120 @@ public abstract class NmsNetworkBuilder { public static final String RSeMalmNobe_SNMP_RESOURCE_VLAN_950 = "classpath:/linkd/nms0002ciscoalcatel/r-se-malm-nobe-013.vlan.950.txt"; public static final String RSeMalmNobe_SYSOID = ".1.3.6.1.4.1.9.1.516"; - public static final Map RSeMalmNobe_IP_IF_MAP = new HashMap(); - public static final Map RSeMalmNobe_IF_IFNAME_MAP = new HashMap(); - public static final Map RSeMalmNobe_IF_IFDESCR_MAP = new HashMap(); - public static final Map RSeMalmNobe_IF_MAC_MAP = new HashMap(); - public static final Map RSeMalmNobe_IF_IFALIAS_MAP = new HashMap(); - public static final Map RSeMalmNobe_IF_NETMASK_MAP = new HashMap(); - - public static final String SSeMalmNobe_ROOT= "SSeMalmNobe"; + public static final Map RSeMalmNobe_IP_IF_MAP = new HashMap<>(); + public static final Map RSeMalmNobe_IF_IFNAME_MAP = new HashMap<>(); + public static final Map RSeMalmNobe_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map RSeMalmNobe_IF_MAC_MAP = new HashMap<>(); + public static final Map RSeMalmNobe_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map RSeMalmNobe_IF_NETMASK_MAP = new HashMap<>(); + public static final String SSeMalmNobe_IP = "10.108.191.171"; public static final String SSeMalmNobe_NAME = "s-se-malm-nobe-561"; public static final String SSeMalmNobe_SNMP_RESOURCE = "classpath:/linkd/nms0002ciscoalcatel/s-se-malm-nobe-561.txt"; public static final String SSeMalmNobe_SYSOID = ".1.3.6.1.4.1.6486.800.1.1.2.1.11.2.2"; - public static final Map SSeMalmNobe_IP_IF_MAP = new HashMap(); - public static final Map SSeMalmNobe_IF_IFNAME_MAP = new HashMap(); - public static final Map SSeMalmNobe_IF_IFDESCR_MAP = new HashMap(); - public static final Map SSeMalmNobe_IF_MAC_MAP = new HashMap(); - public static final Map SSeMalmNobe_IF_IFALIAS_MAP = new HashMap(); - public static final Map SSeMalmNobe_IF_NETMASK_MAP = new HashMap(); + public static final Map SSeMalmNobe_IP_IF_MAP = new HashMap<>(); + public static final Map SSeMalmNobe_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SSeMalmNobe_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SSeMalmNobe_IF_MAC_MAP = new HashMap<>(); + public static final Map SSeMalmNobe_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SSeMalmNobe_IF_NETMASK_MAP = new HashMap<>(); //nms003 and nms17216 public static final String ROUTER1_IP = "192.168.100.245"; public static final String ROUTER1_NAME = "Router1"; public static final String ROUTER1_SYSOID = ".1.3.6.1.4.1.9.1.576"; - public static final String ROUTER1_LLDP_CHASSISID = ""; - - public static final Map ROUTER1_IP_IF_MAP = new HashMap(); - public static final Map ROUTER1_IF_IFNAME_MAP = new HashMap(); - public static final Map ROUTER1_IF_IFDESCR_MAP = new HashMap(); - public static final Map ROUTER1_IF_MAC_MAP = new HashMap(); - public static final Map ROUTER1_IF_IFALIAS_MAP = new HashMap(); + + public static final Map ROUTER1_IP_IF_MAP = new HashMap<>(); + public static final Map ROUTER1_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ROUTER1_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ROUTER1_IF_MAC_MAP = new HashMap<>(); + public static final Map ROUTER1_IF_IFALIAS_MAP = new HashMap<>(); public static final String ROUTER2_IP = "192.168.100.241"; public static final String ROUTER2_NAME = "Router2"; public static final String ROUTER2_SYSOID = ".1.3.6.1.4.1.9.1.1045"; - public static final String ROUTER2_LLDP_CHASSISID = ""; - - public static final Map ROUTER2_IP_IF_MAP = new HashMap(); - public static final Map ROUTER2_IF_IFNAME_MAP = new HashMap(); - public static final Map ROUTER2_IF_IFDESCR_MAP = new HashMap(); - public static final Map ROUTER2_IF_MAC_MAP = new HashMap(); - public static final Map ROUTER2_IF_IFALIAS_MAP = new HashMap(); + + public static final Map ROUTER2_IP_IF_MAP = new HashMap<>(); + public static final Map ROUTER2_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ROUTER2_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ROUTER2_IF_MAC_MAP = new HashMap<>(); + public static final Map ROUTER2_IF_IFALIAS_MAP = new HashMap<>(); public static final String ROUTER3_IP = "172.16.50.1"; public static final String ROUTER3_NAME = "Router3"; public static final String ROUTER3_SYSOID = ".1.3.6.1.4.1.9.1.1045"; - public static final String ROUTER3_LLDP_CHASSISID = ""; - - public static final Map ROUTER3_IP_IF_MAP = new HashMap(); - public static final Map ROUTER3_IF_IFNAME_MAP = new HashMap(); - public static final Map ROUTER3_IF_IFDESCR_MAP = new HashMap(); - public static final Map ROUTER3_IF_MAC_MAP = new HashMap(); - public static final Map ROUTER3_IF_IFALIAS_MAP = new HashMap(); + + public static final Map ROUTER3_IP_IF_MAP = new HashMap<>(); + public static final Map ROUTER3_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ROUTER3_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ROUTER3_IF_MAC_MAP = new HashMap<>(); + public static final Map ROUTER3_IF_IFALIAS_MAP = new HashMap<>(); public static final String ROUTER4_IP = "10.10.10.1"; public static final String ROUTER4_NAME = "Router4"; public static final String ROUTER4_SYSOID = ".1.3.6.1.4.1.9.1.1045"; - public static final String ROUTER4_LLDP_CHASSISID = ""; - - public static final Map ROUTER4_IP_IF_MAP = new HashMap(); - public static final Map ROUTER4_IF_IFNAME_MAP = new HashMap(); - public static final Map ROUTER4_IF_IFDESCR_MAP = new HashMap(); - public static final Map ROUTER4_IF_MAC_MAP = new HashMap(); - public static final Map ROUTER4_IF_IFALIAS_MAP = new HashMap(); + + public static final Map ROUTER4_IP_IF_MAP = new HashMap<>(); + public static final Map ROUTER4_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ROUTER4_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ROUTER4_IF_MAC_MAP = new HashMap<>(); + public static final Map ROUTER4_IF_IFALIAS_MAP = new HashMap<>(); public static final String SWITCH1_IP = "172.16.10.1"; public static final String SWITCH1_NAME = "Switch1"; public static final String SWITCH1_SYSOID = ".1.3.6.1.4.1.9.1.614"; public static final String SWITCH1_LLDP_CHASSISID = "0016c8bd4d80"; - public static final Map SWITCH1_IP_IF_MAP = new HashMap(); - public static final Map SWITCH1_IF_IFNAME_MAP = new HashMap(); - public static final Map SWITCH1_IF_IFDESCR_MAP = new HashMap(); - public static final Map SWITCH1_IF_MAC_MAP = new HashMap(); - public static final Map SWITCH1_IF_IFALIAS_MAP = new HashMap(); + public static final Map SWITCH1_IP_IF_MAP = new HashMap<>(); + public static final Map SWITCH1_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SWITCH1_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SWITCH1_IF_MAC_MAP = new HashMap<>(); + public static final Map SWITCH1_IF_IFALIAS_MAP = new HashMap<>(); public static final String SWITCH2_IP = "172.16.10.2"; public static final String SWITCH2_NAME = "Switch2"; public static final String SWITCH2_SYSOID = ".1.3.6.1.4.1.9.1.696"; public static final String SWITCH2_LLDP_CHASSISID = "0016c894aa80"; - public static final Map SWITCH2_IP_IF_MAP = new HashMap(); - public static final Map SWITCH2_IF_IFNAME_MAP = new HashMap(); - public static final Map SWITCH2_IF_IFDESCR_MAP = new HashMap(); - public static final Map SWITCH2_IF_MAC_MAP = new HashMap(); - public static final Map SWITCH2_IF_IFALIAS_MAP = new HashMap(); + public static final Map SWITCH2_IP_IF_MAP = new HashMap<>(); + public static final Map SWITCH2_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SWITCH2_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SWITCH2_IF_MAC_MAP = new HashMap<>(); + public static final Map SWITCH2_IF_IFALIAS_MAP = new HashMap<>(); public static final String SWITCH3_IP = "172.16.10.3"; public static final String SWITCH3_NAME = "Switch3"; public static final String SWITCH3_SYSOID = ".1.3.6.1.4.1.9.1.716"; public static final String SWITCH3_LLDP_CHASSISID = "f4ea67ebdc00"; - public static final Map SWITCH3_IP_IF_MAP = new HashMap(); - public static final Map SWITCH3_IF_IFNAME_MAP = new HashMap(); - public static final Map SWITCH3_IF_IFDESCR_MAP = new HashMap(); - public static final Map SWITCH3_IF_MAC_MAP = new HashMap(); - public static final Map SWITCH3_IF_IFALIAS_MAP = new HashMap(); + public static final Map SWITCH3_IP_IF_MAP = new HashMap<>(); + public static final Map SWITCH3_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SWITCH3_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SWITCH3_IF_MAC_MAP = new HashMap<>(); + public static final Map SWITCH3_IF_IFALIAS_MAP = new HashMap<>(); public static final String SWITCH4_IP = "172.16.50.2"; public static final String SWITCH4_NAME = "Switch4"; public static final String SWITCH4_SYSOID = ".1.3.6.1.4.1.9.1.716"; public static final String SWITCH4_LLDP_CHASSISID = "a4187504e400"; - public static final Map SWITCH4_IP_IF_MAP = new HashMap(); - public static final Map SWITCH4_IF_IFNAME_MAP = new HashMap(); - public static final Map SWITCH4_IF_IFDESCR_MAP = new HashMap(); - public static final Map SWITCH4_IF_MAC_MAP = new HashMap(); - public static final Map SWITCH4_IF_IFALIAS_MAP = new HashMap(); + public static final Map SWITCH4_IP_IF_MAP = new HashMap<>(); + public static final Map SWITCH4_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SWITCH4_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SWITCH4_IF_MAC_MAP = new HashMap<>(); + public static final Map SWITCH4_IF_IFALIAS_MAP = new HashMap<>(); public static final String SWITCH5_IP = "172.16.10.4"; public static final String SWITCH5_NAME = "Switch5"; public static final String SWITCH5_SYSOID = ".1.3.6.1.4.1.9.1.716"; public static final String SWITCH5_LLDP_CHASSISID = "f4ea67f82980"; - public static final Map SWITCH5_IP_IF_MAP = new HashMap(); - public static final Map SWITCH5_IF_IFNAME_MAP = new HashMap(); - public static final Map SWITCH5_IF_IFDESCR_MAP = new HashMap(); - public static final Map SWITCH5_IF_MAC_MAP = new HashMap(); - public static final Map SWITCH5_IF_IFALIAS_MAP = new HashMap(); - - public static final String ROUTER1_ROOT = "ROUTER1"; - public static final String ROUTER2_ROOT = "ROUTER2"; - public static final String ROUTER3_ROOT = "ROUTER3"; - public static final String ROUTER4_ROOT = "ROUTER4"; - - public static final String SWITCH1_ROOT = "SWITCH1"; - public static final String SWITCH2_ROOT = "SWITCH2"; - public static final String SWITCH3_ROOT = "SWITCH3"; - public static final String SWITCH4_ROOT = "SWITCH4"; - public static final String SWITCH5_ROOT = "SWITCH5"; + public static final Map SWITCH5_IP_IF_MAP = new HashMap<>(); + public static final Map SWITCH5_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SWITCH5_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SWITCH5_IF_MAC_MAP = new HashMap<>(); + public static final Map SWITCH5_IF_IFALIAS_MAP = new HashMap<>(); public static final String ROUTER1_SNMP_RESOURCE = "classpath:/linkd/nms17216/router1-walk.txt"; public static final String ROUTER2_SNMP_RESOURCE = "classpath:/linkd/nms17216/router2-walk.txt"; @@ -781,230 +713,213 @@ public abstract class NmsNetworkBuilder { //Nms007 public static final String FireFly170_IP = "192.168.168.170"; - public static final String FireFly170_ROOT = "FireFly170"; public static final String FireFly170_SNMP_RESOURCE = "classpath:/linkd/nms007/mib2_"+FireFly170_IP + ".txt"; public static final String FireFly170_NAME = "FireFly_170"; public static final String FireFly170_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.96"; - public static final Map FireFly170_IP_IF_MAP = new HashMap(); - public static final Map FireFly170_IF_IFNAME_MAP = new HashMap(); - public static final Map FireFly170_IF_IFDESCR_MAP = new HashMap(); - public static final Map FireFly170_IF_MAC_MAP = new HashMap(); - public static final Map FireFly170_IF_IFALIAS_MAP = new HashMap(); - public static final Map FireFly170_IF_NETMASK_MAP = new HashMap(); + public static final Map FireFly170_IP_IF_MAP = new HashMap<>(); + public static final Map FireFly170_IF_IFNAME_MAP = new HashMap<>(); + public static final Map FireFly170_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map FireFly170_IF_MAC_MAP = new HashMap<>(); + public static final Map FireFly170_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map FireFly170_IF_NETMASK_MAP = new HashMap<>(); public static final String FireFly171_IP = "192.168.168.171"; - public static final String FireFly171_ROOT = "FireFly171"; public static final String FireFly171_SNMP_RESOURCE = "classpath:/linkd/nms007/mib2_"+FireFly171_IP + ".txt"; public static final String FireFly171_NAME = "FireFly_171"; public static final String FireFly171_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.96"; - public static final Map FireFly171_IP_IF_MAP = new HashMap(); - public static final Map FireFly171_IF_IFNAME_MAP = new HashMap(); - public static final Map FireFly171_IF_IFDESCR_MAP = new HashMap(); - public static final Map FireFly171_IF_MAC_MAP = new HashMap(); - public static final Map FireFly171_IF_IFALIAS_MAP = new HashMap(); - public static final Map FireFly171_IF_NETMASK_MAP = new HashMap(); + public static final Map FireFly171_IP_IF_MAP = new HashMap<>(); + public static final Map FireFly171_IF_IFNAME_MAP = new HashMap<>(); + public static final Map FireFly171_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map FireFly171_IF_MAC_MAP = new HashMap<>(); + public static final Map FireFly171_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map FireFly171_IF_NETMASK_MAP = new HashMap<>(); public static final String FireFly172_IP = "192.168.168.172"; - public static final String FireFly172_ROOT = "FireFly172"; public static final String FireFly172_SNMP_RESOURCE = "classpath:/linkd/nms007/mib2_"+FireFly172_IP + ".txt"; public static final String FireFly172_NAME = "FireFly_172"; public static final String FireFly172_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.96"; - public static final Map FireFly172_IP_IF_MAP = new HashMap(); - public static final Map FireFly172_IF_IFNAME_MAP = new HashMap(); - public static final Map FireFly172_IF_IFDESCR_MAP = new HashMap(); - public static final Map FireFly172_IF_MAC_MAP = new HashMap(); - public static final Map FireFly172_IF_IFALIAS_MAP = new HashMap(); - public static final Map FireFly172_IF_NETMASK_MAP = new HashMap(); + public static final Map FireFly172_IP_IF_MAP = new HashMap<>(); + public static final Map FireFly172_IF_IFNAME_MAP = new HashMap<>(); + public static final Map FireFly172_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map FireFly172_IF_MAC_MAP = new HashMap<>(); + public static final Map FireFly172_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map FireFly172_IF_NETMASK_MAP = new HashMap<>(); public static final String FireFly173_IP = "192.168.168.173"; - public static final String FireFly173_ROOT = "FireFly173"; public static final String FireFly173_SNMP_RESOURCE = "classpath:/linkd/nms007/mib2_"+FireFly173_IP + ".txt"; public static final String FireFly173_NAME = "FireFly_173"; public static final String FireFly173_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.96"; - public static final Map FireFly173_IP_IF_MAP = new HashMap(); - public static final Map FireFly173_IF_IFNAME_MAP = new HashMap(); - public static final Map FireFly173_IF_IFDESCR_MAP = new HashMap(); - public static final Map FireFly173_IF_MAC_MAP = new HashMap(); - public static final Map FireFly173_IF_IFALIAS_MAP = new HashMap(); - public static final Map FireFly173_IF_NETMASK_MAP = new HashMap(); + public static final Map FireFly173_IP_IF_MAP = new HashMap<>(); + public static final Map FireFly173_IF_IFNAME_MAP = new HashMap<>(); + public static final Map FireFly173_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map FireFly173_IF_MAC_MAP = new HashMap<>(); + public static final Map FireFly173_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map FireFly173_IF_NETMASK_MAP = new HashMap<>(); public static final String FireFly174_IP = "192.168.168.174"; - public static final String FireFly174_ROOT = "FireFly174"; public static final String FireFly174_SNMP_RESOURCE = "classpath:/linkd/nms007/mib2_"+FireFly174_IP + ".txt"; public static final String FireFly174_NAME = "FireFly_174"; public static final String FireFly174_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.96"; - public static final Map FireFly174_IP_IF_MAP = new HashMap(); - public static final Map FireFly174_IF_IFNAME_MAP = new HashMap(); - public static final Map FireFly174_IF_IFDESCR_MAP = new HashMap(); - public static final Map FireFly174_IF_MAC_MAP = new HashMap(); - public static final Map FireFly174_IF_IFALIAS_MAP = new HashMap(); - public static final Map FireFly174_IF_NETMASK_MAP = new HashMap(); + public static final Map FireFly174_IP_IF_MAP = new HashMap<>(); + public static final Map FireFly174_IF_IFNAME_MAP = new HashMap<>(); + public static final Map FireFly174_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map FireFly174_IF_MAC_MAP = new HashMap<>(); + public static final Map FireFly174_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map FireFly174_IF_NETMASK_MAP = new HashMap<>(); public static final String FireFly175_IP = "192.168.168.175"; - public static final String FireFly175_ROOT = "FireFly175"; public static final String FireFly175_SNMP_RESOURCE = "classpath:/linkd/nms007/mib2_"+FireFly175_IP + ".txt"; public static final String FireFly175_NAME = "FireFly_175"; public static final String FireFly175_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.96"; - public static final Map FireFly175_IP_IF_MAP = new HashMap(); - public static final Map FireFly175_IF_IFNAME_MAP = new HashMap(); - public static final Map FireFly175_IF_IFDESCR_MAP = new HashMap(); - public static final Map FireFly175_IF_MAC_MAP = new HashMap(); - public static final Map FireFly175_IF_IFALIAS_MAP = new HashMap(); - public static final Map FireFly175_IF_NETMASK_MAP = new HashMap(); + public static final Map FireFly175_IP_IF_MAP = new HashMap<>(); + public static final Map FireFly175_IF_IFNAME_MAP = new HashMap<>(); + public static final Map FireFly175_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map FireFly175_IF_MAC_MAP = new HashMap<>(); + public static final Map FireFly175_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map FireFly175_IF_NETMASK_MAP = new HashMap<>(); public static final String FireFly176_IP = "192.168.168.176"; - public static final String FireFly176_ROOT = "FireFly176"; public static final String FireFly176_SNMP_RESOURCE = "classpath:/linkd/nms007/mib2_"+FireFly176_IP + ".txt"; public static final String FireFly176_NAME = "FireFly_176"; public static final String FireFly176_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.96"; - public static final Map FireFly176_IP_IF_MAP = new HashMap(); - public static final Map FireFly176_IF_IFNAME_MAP = new HashMap(); - public static final Map FireFly176_IF_IFDESCR_MAP = new HashMap(); - public static final Map FireFly176_IF_MAC_MAP = new HashMap(); - public static final Map FireFly176_IF_IFALIAS_MAP = new HashMap(); - public static final Map FireFly176_IF_NETMASK_MAP = new HashMap(); + public static final Map FireFly176_IP_IF_MAP = new HashMap<>(); + public static final Map FireFly176_IF_IFNAME_MAP = new HashMap<>(); + public static final Map FireFly176_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map FireFly176_IF_MAC_MAP = new HashMap<>(); + public static final Map FireFly176_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map FireFly176_IF_NETMASK_MAP = new HashMap<>(); public static final String FireFly177_IP = "192.168.168.177"; - public static final String FireFly177_ROOT = "FireFly177"; public static final String FireFly177_SNMP_RESOURCE = "classpath:/linkd/nms007/mib2_"+FireFly177_IP + ".txt"; public static final String FireFly177_NAME = "FireFly_177"; public static final String FireFly177_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.96"; - public static final Map FireFly177_IP_IF_MAP = new HashMap(); - public static final Map FireFly177_IF_IFNAME_MAP = new HashMap(); - public static final Map FireFly177_IF_IFDESCR_MAP = new HashMap(); - public static final Map FireFly177_IF_MAC_MAP = new HashMap(); - public static final Map FireFly177_IF_IFALIAS_MAP = new HashMap(); - public static final Map FireFly177_IF_NETMASK_MAP = new HashMap(); + public static final Map FireFly177_IP_IF_MAP = new HashMap<>(); + public static final Map FireFly177_IF_IFNAME_MAP = new HashMap<>(); + public static final Map FireFly177_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map FireFly177_IF_MAC_MAP = new HashMap<>(); + public static final Map FireFly177_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map FireFly177_IF_NETMASK_MAP = new HashMap<>(); public static final String FireFly189_IP = "192.168.168.189"; - public static final String FireFly189_ROOT = "FireFly189"; public static final String FireFly189_SNMP_RESOURCE = "classpath:/linkd/nms007/mib2_"+FireFly189_IP + ".txt"; public static final String FireFly189_NAME = "FireFly_189"; public static final String FireFly189_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.96"; - public static final Map FireFly189_IP_IF_MAP = new HashMap(); - public static final Map FireFly189_IF_IFNAME_MAP = new HashMap(); - public static final Map FireFly189_IF_IFDESCR_MAP = new HashMap(); - public static final Map FireFly189_IF_MAC_MAP = new HashMap(); - public static final Map FireFly189_IF_IFALIAS_MAP = new HashMap(); - public static final Map FireFly189_IF_NETMASK_MAP = new HashMap(); + public static final Map FireFly189_IP_IF_MAP = new HashMap<>(); + public static final Map FireFly189_IF_IFNAME_MAP = new HashMap<>(); + public static final Map FireFly189_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map FireFly189_IF_MAC_MAP = new HashMap<>(); + public static final Map FireFly189_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map FireFly189_IF_NETMASK_MAP = new HashMap<>(); //Nms101 - public static final String LAPTOP_ROOT = "LAPTOP"; public static final String LAPTOP_SNMP_RESOURCE = "classpath:/linkd/nms101/laptop.properties"; public static final String LAPTOP_IP = "10.1.1.2"; public static final String LAPTOP_NAME = "laptop"; public static final String LAPTOP_SYSOID = ".1.3.6.1.4.1.8072.3.2.255"; - public static final Map LAPTOP_IP_IF_MAP = new HashMap(); - public static final Map LAPTOP_IF_IFNAME_MAP = new HashMap(); - public static final Map LAPTOP_IF_IFDESCR_MAP = new HashMap(); - public static final Map LAPTOP_IF_MAC_MAP = new HashMap(); - public static final Map LAPTOP_IF_IFALIAS_MAP = new HashMap(); - public static final Map LAPTOP_IF_NETMASK_MAP = new HashMap(); - - public static final String CISCO7200A_ROOT = "CISCO7200A"; + public static final Map LAPTOP_IP_IF_MAP = new HashMap<>(); + public static final Map LAPTOP_IF_IFNAME_MAP = new HashMap<>(); + public static final Map LAPTOP_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map LAPTOP_IF_MAC_MAP = new HashMap<>(); + public static final Map LAPTOP_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map LAPTOP_IF_NETMASK_MAP = new HashMap<>(); + public static final String CISCO7200A_SNMP_RESOURCE = "classpath:/linkd/nms101/cisco7200a.properties"; public static final String CISCO7200A_IP = "10.1.1.1"; public static final String CISCO7200A_NAME = "cisco7200ATM.befunk.com"; public static final String CISCO7200A_SYSOID = ".1.3.6.1.4.1.9.1.222"; - public static final Map CISCO7200A_IP_IF_MAP = new HashMap(); - public static final Map CISCO7200A_IF_IFNAME_MAP = new HashMap(); - public static final Map CISCO7200A_IF_IFDESCR_MAP = new HashMap(); - public static final Map CISCO7200A_IF_MAC_MAP = new HashMap(); - public static final Map CISCO7200A_IF_IFALIAS_MAP = new HashMap(); - public static final Map CISCO7200A_IF_NETMASK_MAP = new HashMap(); - - public static final String CISCO7200B_ROOT = "CISCO7200B"; + public static final Map CISCO7200A_IP_IF_MAP = new HashMap<>(); + public static final Map CISCO7200A_IF_IFNAME_MAP = new HashMap<>(); + public static final Map CISCO7200A_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map CISCO7200A_IF_MAC_MAP = new HashMap<>(); + public static final Map CISCO7200A_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map CISCO7200A_IF_NETMASK_MAP = new HashMap<>(); + public static final String CISCO7200B_SNMP_RESOURCE = "classpath:/linkd/nms101/cisco7200b.properties"; public static final String CISCO7200B_IP = "10.1.2.2"; public static final String CISCO7200B_NAME = "cisco7200"; public static final String CISCO7200B_SYSOID = ".1.3.6.1.4.1.9.1.222"; - public static final Map CISCO7200B_IP_IF_MAP = new HashMap(); - public static final Map CISCO7200B_IF_IFNAME_MAP = new HashMap(); - public static final Map CISCO7200B_IF_IFDESCR_MAP = new HashMap(); - public static final Map CISCO7200B_IF_MAC_MAP = new HashMap(); - public static final Map CISCO7200B_IF_IFALIAS_MAP = new HashMap(); - public static final Map CISCO7200B_IF_NETMASK_MAP = new HashMap(); - - public static final String CISCO3700_ROOT = "CISCO3700"; + public static final Map CISCO7200B_IP_IF_MAP = new HashMap<>(); + public static final Map CISCO7200B_IF_IFNAME_MAP = new HashMap<>(); + public static final Map CISCO7200B_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map CISCO7200B_IF_MAC_MAP = new HashMap<>(); + public static final Map CISCO7200B_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map CISCO7200B_IF_NETMASK_MAP = new HashMap<>(); + public static final String CISCO3700_SNMP_RESOURCE = "classpath:/linkd/nms101/cisco3700.properties"; public static final String CISCO3700_IP = "10.1.3.2"; public static final String CISCO3700_NAME = "cisco3700"; public static final String CISCO3700_SYSOID = ".1.3.6.1.4.1.9.1.122"; - public static final Map CISCO3700_IP_IF_MAP = new HashMap(); - public static final Map CISCO3700_IF_IFNAME_MAP = new HashMap(); - public static final Map CISCO3700_IF_IFDESCR_MAP = new HashMap(); - public static final Map CISCO3700_IF_MAC_MAP = new HashMap(); - public static final Map CISCO3700_IF_IFALIAS_MAP = new HashMap(); - public static final Map CISCO3700_IF_NETMASK_MAP = new HashMap(); - - public static final String CISCO2691_ROOT = "CISCO2691"; + public static final Map CISCO3700_IP_IF_MAP = new HashMap<>(); + public static final Map CISCO3700_IF_IFNAME_MAP = new HashMap<>(); + public static final Map CISCO3700_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map CISCO3700_IF_MAC_MAP = new HashMap<>(); + public static final Map CISCO3700_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map CISCO3700_IF_NETMASK_MAP = new HashMap<>(); + public static final String CISCO2691_SNMP_RESOURCE = "classpath:/linkd/nms101/cisco2691.properties"; public static final String CISCO2691_IP = "10.1.4.2"; public static final String CISCO2691_NAME = "cisco2691"; public static final String CISCO2691_SYSOID = ".1.3.6.1.4.1.9.1.122"; - public static final Map CISCO2691_IP_IF_MAP = new HashMap(); - public static final Map CISCO2691_IF_IFNAME_MAP = new HashMap(); - public static final Map CISCO2691_IF_IFDESCR_MAP = new HashMap(); - public static final Map CISCO2691_IF_MAC_MAP = new HashMap(); - public static final Map CISCO2691_IF_IFALIAS_MAP = new HashMap(); - public static final Map CISCO2691_IF_NETMASK_MAP = new HashMap(); - - public static final String CISCO1700B_ROOT = "CISCO1700B"; + public static final Map CISCO2691_IP_IF_MAP = new HashMap<>(); + public static final Map CISCO2691_IF_IFNAME_MAP = new HashMap<>(); + public static final Map CISCO2691_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map CISCO2691_IF_MAC_MAP = new HashMap<>(); + public static final Map CISCO2691_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map CISCO2691_IF_NETMASK_MAP = new HashMap<>(); + public static final String CISCO1700B_SNMP_RESOURCE = "classpath:/linkd/nms101/cisco1700b.properties"; public static final String CISCO1700B_IP = "10.1.5.1"; public static final String CISCO1700B_NAME = "cisco1700b"; public static final String CISCO1700B_SYSOID = ".1.3.6.1.4.1.9.1.200"; - public static final Map CISCO1700B_IP_IF_MAP = new HashMap(); - public static final Map CISCO1700B_IF_IFNAME_MAP = new HashMap(); - public static final Map CISCO1700B_IF_IFDESCR_MAP = new HashMap(); - public static final Map CISCO1700B_IF_MAC_MAP = new HashMap(); - public static final Map CISCO1700B_IF_IFALIAS_MAP = new HashMap(); - public static final Map CISCO1700B_IF_NETMASK_MAP = new HashMap(); - - public static final String CISCO3600_ROOT = "CISCO3600"; + public static final Map CISCO1700B_IP_IF_MAP = new HashMap<>(); + public static final Map CISCO1700B_IF_IFNAME_MAP = new HashMap<>(); + public static final Map CISCO1700B_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map CISCO1700B_IF_MAC_MAP = new HashMap<>(); + public static final Map CISCO1700B_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map CISCO1700B_IF_NETMASK_MAP = new HashMap<>(); + public static final String CISCO3600_SNMP_RESOURCE = "classpath:/linkd/nms101/cisco3600.properties"; public static final String CISCO3600_IP = "10.1.6.2"; public static final String CISCO3600_NAME = "cisco3600"; public static final String CISCO3600_SYSOID = ".1.3.6.1.4.1.9.1.122"; - public static final Map CISCO3600_IP_IF_MAP = new HashMap(); - public static final Map CISCO3600_IF_IFNAME_MAP = new HashMap(); - public static final Map CISCO3600_IF_IFDESCR_MAP = new HashMap(); - public static final Map CISCO3600_IF_MAC_MAP = new HashMap(); - public static final Map CISCO3600_IF_IFALIAS_MAP = new HashMap(); - public static final Map CISCO3600_IF_NETMASK_MAP = new HashMap(); - - public static final String CISCO1700_ROOT = "CISCO1700"; + public static final Map CISCO3600_IP_IF_MAP = new HashMap<>(); + public static final Map CISCO3600_IF_IFNAME_MAP = new HashMap<>(); + public static final Map CISCO3600_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map CISCO3600_IF_MAC_MAP = new HashMap<>(); + public static final Map CISCO3600_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map CISCO3600_IF_NETMASK_MAP = new HashMap<>(); + public static final String CISCO1700_SNMP_RESOURCE = "classpath:/linkd/nms101/cisco1700.properties"; public static final String CISCO1700_IP = "10.1.5.2"; public static final String CISCO1700_NAME = "cisco1700"; public static final String CISCO1700_SYSOID = ".1.3.6.1.4.1.9.1.200"; - public static final Map CISCO1700_IP_IF_MAP = new HashMap(); - public static final Map CISCO1700_IF_IFNAME_MAP = new HashMap(); - public static final Map CISCO1700_IF_IFDESCR_MAP = new HashMap(); - public static final Map CISCO1700_IF_MAC_MAP = new HashMap(); - public static final Map CISCO1700_IF_IFALIAS_MAP = new HashMap(); - public static final Map CISCO1700_IF_NETMASK_MAP = new HashMap(); + public static final Map CISCO1700_IP_IF_MAP = new HashMap<>(); + public static final Map CISCO1700_IF_IFNAME_MAP = new HashMap<>(); + public static final Map CISCO1700_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map CISCO1700_IF_MAC_MAP = new HashMap<>(); + public static final Map CISCO1700_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map CISCO1700_IF_NETMASK_MAP = new HashMap<>(); public static final String EXAMPLECOM_IP = "192.168.1.10"; public static final String EXAMPLECOM_NAME = "test.example.com"; public static final String EXAMPLECOM_SYSOID = ".1.3.6.1.4.1.1724.81"; - public static final Map EXAMPLECOM_IP_IF_MAP = new HashMap(); - public static final Map EXAMPLECOM_IF_IFNAME_MAP = new HashMap(); - public static final Map EXAMPLECOM_IF_IFDESCR_MAP = new HashMap(); - public static final Map EXAMPLECOM_IF_MAC_MAP = new HashMap(); - public static final Map EXAMPLECOM_IF_IFALIAS_MAP = new HashMap(); - public static final Map EXAMPLECOM_IF_NETMASK_MAP = new HashMap(); + public static final Map EXAMPLECOM_IP_IF_MAP = new HashMap<>(); + public static final Map EXAMPLECOM_IF_IFNAME_MAP = new HashMap<>(); + public static final Map EXAMPLECOM_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map EXAMPLECOM_IF_MAC_MAP = new HashMap<>(); + public static final Map EXAMPLECOM_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map EXAMPLECOM_IF_NETMASK_MAP = new HashMap<>(); //Nms10205 public static InetAddress MUMBAI_OSPF_ID; @@ -1030,258 +945,240 @@ public abstract class NmsNetworkBuilder { public static final String MUMBAI_IP = "10.205.56.5"; public static final String MUMBAI_NAME = "Mumbai"; - public static final String MUMBAI_ROOT = "MUMBAI"; public static final String MUMBAI_SNMP_RESOURCE = "classpath:/linkd/nms10205/" +MUMBAI_NAME+"_"+MUMBAI_IP+".txt"; public static final String MUMBAI_SNMP_RESOURCE_B = "classpath:/linkd/nms10205b/" +MUMBAI_NAME+"_"+MUMBAI_IP+".txt"; public static final String MUMBAI_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.9"; - public static final Map MUMBAI_IP_IF_MAP = new HashMap(); - public static final Map MUMBAI_IF_IFNAME_MAP = new HashMap(); - public static final Map MUMBAI_IF_IFDESCR_MAP = new HashMap(); - public static final Map MUMBAI_IF_MAC_MAP = new HashMap(); - public static final Map MUMBAI_IF_IFALIAS_MAP = new HashMap(); - public static final Map MUMBAI_IF_NETMASK_MAP = new HashMap(); + public static final Map MUMBAI_IP_IF_MAP = new HashMap<>(); + public static final Map MUMBAI_IF_IFNAME_MAP = new HashMap<>(); + public static final Map MUMBAI_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map MUMBAI_IF_MAC_MAP = new HashMap<>(); + public static final Map MUMBAI_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map MUMBAI_IF_NETMASK_MAP = new HashMap<>(); public static final String CHENNAI_IP = "10.205.56.6"; public static final String CHENNAI_NAME = "Chennai"; - public static final String CHENNAI_ROOT = "CHENNAI"; public static final String CHENNAI_SNMP_RESOURCE = "classpath:/linkd/nms10205/" +CHENNAI_NAME+"_"+CHENNAI_IP+".txt"; public static final String CHENNAI_SNMP_RESOURCE_B = "classpath:/linkd/nms10205b/" +CHENNAI_NAME+"_"+CHENNAI_IP+".txt"; public static final String CHENNAI_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.25"; - public static final Map CHENNAI_IP_IF_MAP = new HashMap(); - public static final Map CHENNAI_IF_IFNAME_MAP = new HashMap(); - public static final Map CHENNAI_IF_IFDESCR_MAP = new HashMap(); - public static final Map CHENNAI_IF_MAC_MAP = new HashMap(); - public static final Map CHENNAI_IF_IFALIAS_MAP = new HashMap(); - public static final Map CHENNAI_IF_NETMASK_MAP = new HashMap(); + public static final Map CHENNAI_IP_IF_MAP = new HashMap<>(); + public static final Map CHENNAI_IF_IFNAME_MAP = new HashMap<>(); + public static final Map CHENNAI_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map CHENNAI_IF_MAC_MAP = new HashMap<>(); + public static final Map CHENNAI_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map CHENNAI_IF_NETMASK_MAP = new HashMap<>(); public static final String DELHI_IP = "10.205.56.7"; public static final String DELHI_NAME = "Delhi"; - public static final String DELHI_ROOT = "DELHI"; public static final String DELHI_SNMP_RESOURCE = "classpath:/linkd/nms10205/" +DELHI_NAME+"_"+DELHI_IP+".txt"; public static final String DELHI_SNMP_RESOURCE_B = "classpath:/linkd/nms10205b/" +DELHI_NAME+"_"+DELHI_IP+".txt"; public static final String DELHI_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.29"; - public static final Map DELHI_IP_IF_MAP = new HashMap(); - public static final Map DELHI_IF_IFNAME_MAP = new HashMap(); - public static final Map DELHI_IF_IFDESCR_MAP = new HashMap(); - public static final Map DELHI_IF_MAC_MAP = new HashMap(); - public static final Map DELHI_IF_IFALIAS_MAP = new HashMap(); - public static final Map DELHI_IF_NETMASK_MAP = new HashMap(); + public static final Map DELHI_IP_IF_MAP = new HashMap<>(); + public static final Map DELHI_IF_IFNAME_MAP = new HashMap<>(); + public static final Map DELHI_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map DELHI_IF_MAC_MAP = new HashMap<>(); + public static final Map DELHI_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map DELHI_IF_NETMASK_MAP = new HashMap<>(); public static final String BANGALORE_IP = "10.205.56.9"; public static final String BANGALORE_NAME = "Bangalore"; - public static final String BANGALORE_ROOT = "BANGALORE"; public static final String BANGALORE_SNMP_RESOURCE = "classpath:/linkd/nms10205/" +BANGALORE_NAME+"_"+BANGALORE_IP+".txt"; public static final String BANGALORE_SNMP_RESOURCE_B = "classpath:/linkd/nms10205b/" +BANGALORE_NAME+"_"+BANGALORE_IP+".txt"; public static final String BANGALORE_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.10"; - public static final Map BANGALORE_IP_IF_MAP = new HashMap(); - public static final Map BANGALORE_IF_IFNAME_MAP = new HashMap(); - public static final Map BANGALORE_IF_IFDESCR_MAP = new HashMap(); - public static final Map BANGALORE_IF_MAC_MAP = new HashMap(); - public static final Map BANGALORE_IF_IFALIAS_MAP = new HashMap(); - public static final Map BANGALORE_IF_NETMASK_MAP = new HashMap(); + public static final Map BANGALORE_IP_IF_MAP = new HashMap<>(); + public static final Map BANGALORE_IF_IFNAME_MAP = new HashMap<>(); + public static final Map BANGALORE_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map BANGALORE_IF_MAC_MAP = new HashMap<>(); + public static final Map BANGALORE_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map BANGALORE_IF_NETMASK_MAP = new HashMap<>(); public static final String MYSORE_IP = "10.205.56.22"; public static final String MYSORE_NAME = "Mysore"; - public static final String MYSORE_ROOT = "MYSORE"; public static final String MYSORE_SNMP_RESOURCE = "classpath:/linkd/nms10205/" +MYSORE_NAME+"_"+MYSORE_IP+".txt"; public static final String MYSORE_SNMP_RESOURCE_B = "classpath:/linkd/nms10205b/" +MYSORE_NAME+"_"+MYSORE_IP+".txt"; public static final String MYSORE_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.11"; - public static final Map MYSORE_IP_IF_MAP = new HashMap(); - public static final Map MYSORE_IF_IFNAME_MAP = new HashMap(); - public static final Map MYSORE_IF_IFDESCR_MAP = new HashMap(); - public static final Map MYSORE_IF_MAC_MAP = new HashMap(); - public static final Map MYSORE_IF_IFALIAS_MAP = new HashMap(); - public static final Map MYSORE_IF_NETMASK_MAP = new HashMap(); + public static final Map MYSORE_IP_IF_MAP = new HashMap<>(); + public static final Map MYSORE_IF_IFNAME_MAP = new HashMap<>(); + public static final Map MYSORE_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map MYSORE_IF_MAC_MAP = new HashMap<>(); + public static final Map MYSORE_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map MYSORE_IF_NETMASK_MAP = new HashMap<>(); public static final String BAGMANE_IP = "10.205.56.20"; public static final String BAGMANE_NAME = "Bagmane"; - public static final String BAGMANE_ROOT = "BAGMANE"; public static final String BAGMANE_SNMP_RESOURCE = "classpath:/linkd/nms10205/" +BAGMANE_NAME+"_"+BAGMANE_IP+".txt"; public static final String BAGMANE_SNMP_RESOURCE_B = "classpath:/linkd/nms10205b/" +BAGMANE_NAME+"_"+BAGMANE_IP+".txt"; public static final String BAGMANE_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.57"; - public static final Map BAGMANE_IP_IF_MAP = new HashMap(); - public static final Map BAGMANE_IF_IFNAME_MAP = new HashMap(); - public static final Map BAGMANE_IF_IFDESCR_MAP = new HashMap(); - public static final Map BAGMANE_IF_MAC_MAP = new HashMap(); - public static final Map BAGMANE_IF_IFALIAS_MAP = new HashMap(); - public static final Map BAGMANE_IF_NETMASK_MAP = new HashMap(); + public static final Map BAGMANE_IP_IF_MAP = new HashMap<>(); + public static final Map BAGMANE_IF_IFNAME_MAP = new HashMap<>(); + public static final Map BAGMANE_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map BAGMANE_IF_MAC_MAP = new HashMap<>(); + public static final Map BAGMANE_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map BAGMANE_IF_NETMASK_MAP = new HashMap<>(); public static final String SPACE_EX_SW1_IP = "10.205.56.1"; public static final String SPACE_EX_SW1_NAME = "Space-EX-SW1"; - public static final String SPACE_EX_SW1_ROOT = "SPACE_EX_SW1"; public static final String SPACE_EX_SW1_SNMP_RESOURCE = "classpath:/linkd/nms10205/" +SPACE_EX_SW1_NAME+"_"+SPACE_EX_SW1_IP+".txt"; public static final String SPACE_EX_SW1_SNMP_RESOURCE_B = "classpath:/linkd/nms10205b/" +SPACE_EX_SW1_NAME+"_"+SPACE_EX_SW1_IP+".txt"; public static final String SPACE_EX_SW1_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.30"; - public static final Map SPACE_EX_SW1_IP_IF_MAP = new HashMap(); - public static final Map SPACE_EX_SW1_IF_IFNAME_MAP = new HashMap(); - public static final Map SPACE_EX_SW1_IF_IFDESCR_MAP = new HashMap(); - public static final Map SPACE_EX_SW1_IF_MAC_MAP = new HashMap(); - public static final Map SPACE_EX_SW1_IF_IFALIAS_MAP = new HashMap(); - public static final Map SPACE_EX_SW1_IF_NETMASK_MAP = new HashMap(); + public static final Map SPACE_EX_SW1_IP_IF_MAP = new HashMap<>(); + public static final Map SPACE_EX_SW1_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SPACE_EX_SW1_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SPACE_EX_SW1_IF_MAC_MAP = new HashMap<>(); + public static final Map SPACE_EX_SW1_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SPACE_EX_SW1_IF_NETMASK_MAP = new HashMap<>(); public static final String SPACE_EX_SW2_IP = "10.205.56.2"; public static final String SPACE_EX_SW2_NAME = "Space-EX-SW2"; - public static final String SPACE_EX_SW2_ROOT = "SPACE_EX_SW2"; public static final String SPACE_EX_SW2_SNMP_RESOURCE = "classpath:/linkd/nms10205/" +SPACE_EX_SW2_NAME+"_"+SPACE_EX_SW2_IP+".txt"; public static final String SPACE_EX_SW2_SNMP_RESOURCE_B = "classpath:/linkd/nms10205b/" +SPACE_EX_SW2_NAME+"_"+SPACE_EX_SW2_IP+".txt"; public static final String SPACE_EX_SW2_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.31"; - public static final Map SPACE_EX_SW2_IP_IF_MAP = new HashMap(); - public static final Map SPACE_EX_SW2_IF_IFNAME_MAP = new HashMap(); - public static final Map SPACE_EX_SW2_IF_IFDESCR_MAP = new HashMap(); - public static final Map SPACE_EX_SW2_IF_MAC_MAP = new HashMap(); - public static final Map SPACE_EX_SW2_IF_IFALIAS_MAP = new HashMap(); - public static final Map SPACE_EX_SW2_IF_NETMASK_MAP = new HashMap(); + public static final Map SPACE_EX_SW2_IP_IF_MAP = new HashMap<>(); + public static final Map SPACE_EX_SW2_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SPACE_EX_SW2_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SPACE_EX_SW2_IF_MAC_MAP = new HashMap<>(); + public static final Map SPACE_EX_SW2_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SPACE_EX_SW2_IF_NETMASK_MAP = new HashMap<>(); public static final String J6350_41_IP = "10.205.56.41"; public static final String J6350_41_NAME = "J6350-41"; - public static final String J6350_41_ROOT = "J6350_41"; public static final String J6350_41_SNMP_RESOURCE = "classpath:/linkd/nms10205/" +J6350_41_NAME+"_"+J6350_41_IP+".txt"; public static final String J6350_41_SNMP_RESOURCE_B = "classpath:/linkd/nms10205b/" +J6350_41_NAME+"_"+J6350_41_IP+".txt"; public static final String J6350_41_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.20"; - public static final Map J6350_41_IP_IF_MAP = new HashMap(); - public static final Map J6350_41_IF_IFNAME_MAP = new HashMap(); - public static final Map J6350_41_IF_IFDESCR_MAP = new HashMap(); - public static final Map J6350_41_IF_MAC_MAP = new HashMap(); - public static final Map J6350_41_IF_IFALIAS_MAP = new HashMap(); - public static final Map J6350_41_IF_NETMASK_MAP = new HashMap(); + public static final Map J6350_41_IP_IF_MAP = new HashMap<>(); + public static final Map J6350_41_IF_IFNAME_MAP = new HashMap<>(); + public static final Map J6350_41_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map J6350_41_IF_MAC_MAP = new HashMap<>(); + public static final Map J6350_41_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map J6350_41_IF_NETMASK_MAP = new HashMap<>(); public static final String J6350_42_IP = "10.205.56.42"; public static final String J6350_42_NAME = "J6350-2"; - public static final String J6350_42_ROOT = "J6350_42"; public static final String J6350_42_SNMP_RESOURCE = "classpath:/linkd/nms10205/" +"J6350-42_"+J6350_42_IP+".txt"; public static final String J6350_42_SNMP_RESOURCE_B = "classpath:/linkd/nms10205b/"+"J6350-42_"+J6350_42_IP+".txt"; public static final String J6350_42_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.20"; public static final String J6350_42_LLDP_CHASSISID = "2c6bf55dc100"; - public static final Map J6350_42_IP_IF_MAP = new HashMap(); - public static final Map J6350_42_IF_IFNAME_MAP = new HashMap(); - public static final Map J6350_42_IF_IFDESCR_MAP = new HashMap(); - public static final Map J6350_42_IF_MAC_MAP = new HashMap(); - public static final Map J6350_42_IF_IFALIAS_MAP = new HashMap(); - public static final Map J6350_42_IF_NETMASK_MAP = new HashMap(); + public static final Map J6350_42_IP_IF_MAP = new HashMap<>(); + public static final Map J6350_42_IF_IFNAME_MAP = new HashMap<>(); + public static final Map J6350_42_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map J6350_42_IF_MAC_MAP = new HashMap<>(); + public static final Map J6350_42_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map J6350_42_IF_NETMASK_MAP = new HashMap<>(); public static final String SRX_100_IP = "10.205.56.23"; public static final String SRX_100_NAME = "SRX_56.23"; - public static final String SRX_100_ROOT = "SRX_100"; public static final String SRX_100_SNMP_RESOURCE = "classpath:/linkd/nms10205/" +"SRX-100_"+SRX_100_IP+".txt"; public static final String SRX_100_SNMP_RESOURCE_B = "classpath:/linkd/nms10205b/"+"SRX-100_"+SRX_100_IP+".txt"; public static final String SRX_100_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.41"; - public static final Map SRX_100_IP_IF_MAP = new HashMap(); - public static final Map SRX_100_IF_IFNAME_MAP = new HashMap(); - public static final Map SRX_100_IF_IFDESCR_MAP = new HashMap(); - public static final Map SRX_100_IF_MAC_MAP = new HashMap(); - public static final Map SRX_100_IF_IFALIAS_MAP = new HashMap(); - public static final Map SRX_100_IF_NETMASK_MAP = new HashMap(); + public static final Map SRX_100_IP_IF_MAP = new HashMap<>(); + public static final Map SRX_100_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SRX_100_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SRX_100_IF_MAC_MAP = new HashMap<>(); + public static final Map SRX_100_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SRX_100_IF_NETMASK_MAP = new HashMap<>(); public static final String SSG550_IP = "10.205.35.100"; public static final String SSG550_NAME = "SSG550"; - public static final String SSG550_ROOT = "SSG550"; public static final String SSG550_SNMP_RESOURCE = "classpath:/linkd/nms10205/" +SSG550_NAME+"_"+SSG550_IP+".txt"; public static final String SSG550_SNMP_RESOURCE_B = "classpath:/linkd/nms10205b/" +SSG550_NAME+"_"+SSG550_IP+".txt"; public static final String SSG550_SYSOID = ".1.3.6.1.4.1.3224.1.51"; - public static final Map SSG550_IP_IF_MAP = new HashMap(); - public static final Map SSG550_IF_IFNAME_MAP = new HashMap(); - public static final Map SSG550_IF_IFDESCR_MAP = new HashMap(); - public static final Map SSG550_IF_MAC_MAP = new HashMap(); - public static final Map SSG550_IF_IFALIAS_MAP = new HashMap(); - public static final Map SSG550_IF_NETMASK_MAP = new HashMap(); + public static final Map SSG550_IP_IF_MAP = new HashMap<>(); + public static final Map SSG550_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SSG550_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SSG550_IF_MAC_MAP = new HashMap<>(); + public static final Map SSG550_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SSG550_IF_NETMASK_MAP = new HashMap<>(); //Nms1055 public static final String PENROSE_IP = "10.155.69.16"; public static final String PENROSE_NAME = "penrose-mx480"; - public static final String PENROSE_ROOT = "PENROSE"; public static final String PENROSE_SNMP_RESOURCE = "classpath:/linkd/nms1055/"+PENROSE_NAME+"_"+PENROSE_IP+".txt"; public static final String PENROSE_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.25"; public static final String PENROSE_LLDP_CHASSISID = "80711f8fafc0"; - public static final Map PENROSE_IP_IF_MAP = new HashMap(); - public static final Map PENROSE_IF_IFNAME_MAP = new HashMap(); - public static final Map PENROSE_IF_IFDESCR_MAP = new HashMap(); - public static final Map PENROSE_IF_MAC_MAP = new HashMap(); - public static final Map PENROSE_IF_IFALIAS_MAP = new HashMap(); - public static final Map PENROSE_IF_NETMASK_MAP = new HashMap(); + public static final Map PENROSE_IP_IF_MAP = new HashMap<>(); + public static final Map PENROSE_IF_IFNAME_MAP = new HashMap<>(); + public static final Map PENROSE_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map PENROSE_IF_MAC_MAP = new HashMap<>(); + public static final Map PENROSE_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map PENROSE_IF_NETMASK_MAP = new HashMap<>(); public static final String DELAWARE_IP = "10.155.69.17"; public static final String DELAWARE_NAME = "delaware"; - public static final String DELAWARE_ROOT = "DELAWARE"; public static final String DELAWARE_SNMP_RESOURCE = "classpath:/linkd/nms1055/"+DELAWARE_NAME+"_"+DELAWARE_IP+".txt"; public static final String DELAWARE_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.25"; public static final String DELAWARE_LLDP_CHASSISID = "0022830957c0"; - public static final Map DELAWARE_IP_IF_MAP = new HashMap(); - public static final Map DELAWARE_IF_IFNAME_MAP = new HashMap(); - public static final Map DELAWARE_IF_IFDESCR_MAP = new HashMap(); - public static final Map DELAWARE_IF_MAC_MAP = new HashMap(); - public static final Map DELAWARE_IF_IFALIAS_MAP = new HashMap(); - public static final Map DELAWARE_IF_NETMASK_MAP = new HashMap(); + public static final Map DELAWARE_IP_IF_MAP = new HashMap<>(); + public static final Map DELAWARE_IF_IFNAME_MAP = new HashMap<>(); + public static final Map DELAWARE_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map DELAWARE_IF_MAC_MAP = new HashMap<>(); + public static final Map DELAWARE_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map DELAWARE_IF_NETMASK_MAP = new HashMap<>(); public static final String PHOENIX_IP = "10.155.69.42"; public static final String PHOENIX_NAME = "phoenix-mx80"; - public static final String PHOENIX_ROOT = "PHOENIX"; public static final String PHOENIX_SNMP_RESOURCE = "classpath:/linkd/nms1055/"+PHOENIX_NAME+"_"+PHOENIX_IP+".txt"; public static final String PHOENIX_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.57"; public static final String PHOENIX_LLDP_CHASSISID = "80711fc414c0"; - public static final Map PHOENIX_IP_IF_MAP = new HashMap(); - public static final Map PHOENIX_IF_IFNAME_MAP = new HashMap(); - public static final Map PHOENIX_IF_IFDESCR_MAP = new HashMap(); - public static final Map PHOENIX_IF_MAC_MAP = new HashMap(); - public static final Map PHOENIX_IF_IFALIAS_MAP = new HashMap(); - public static final Map PHOENIX_IF_NETMASK_MAP = new HashMap(); + public static final Map PHOENIX_IP_IF_MAP = new HashMap<>(); + public static final Map PHOENIX_IF_IFNAME_MAP = new HashMap<>(); + public static final Map PHOENIX_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map PHOENIX_IF_MAC_MAP = new HashMap<>(); + public static final Map PHOENIX_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map PHOENIX_IF_NETMASK_MAP = new HashMap<>(); public static final String AUSTIN_IP = "10.155.69.43"; public static final String AUSTIN_NAME = "Austin"; - public static final String AUSTIN_ROOT = "AUSTIN"; public static final String AUSTIN_SNMP_RESOURCE = "classpath:/linkd/nms1055/"+AUSTIN_NAME+"_"+AUSTIN_IP+".txt"; public static final String AUSTIN_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.57"; public static final String AUSTIN_LLDP_CHASSISID = "80711fc413c0"; - public static final Map AUSTIN_IP_IF_MAP = new HashMap(); - public static final Map AUSTIN_IF_IFNAME_MAP = new HashMap(); - public static final Map AUSTIN_IF_IFDESCR_MAP = new HashMap(); - public static final Map AUSTIN_IF_MAC_MAP = new HashMap(); - public static final Map AUSTIN_IF_IFALIAS_MAP = new HashMap(); - public static final Map AUSTIN_IF_NETMASK_MAP = new HashMap(); + public static final Map AUSTIN_IP_IF_MAP = new HashMap<>(); + public static final Map AUSTIN_IF_IFNAME_MAP = new HashMap<>(); + public static final Map AUSTIN_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map AUSTIN_IF_MAC_MAP = new HashMap<>(); + public static final Map AUSTIN_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map AUSTIN_IF_NETMASK_MAP = new HashMap<>(); public static final String SANJOSE_IP = "10.155.69.12"; public static final String SANJOSE_NAME = "sanjose-mx240"; - public static final String SANJOSE_ROOT = "SANJOSE"; public static final String SANJOSE_SNMP_RESOURCE = "classpath:/linkd/nms1055/"+SANJOSE_NAME+"_"+SANJOSE_IP+".txt"; public static final String SANJOSE_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.29"; public static final String SANJOSE_LLDP_CHASSISID = "002283d857c0"; - public static final Map SANJOSE_IP_IF_MAP = new HashMap(); - public static final Map SANJOSE_IF_IFNAME_MAP = new HashMap(); - public static final Map SANJOSE_IF_IFDESCR_MAP = new HashMap(); - public static final Map SANJOSE_IF_MAC_MAP = new HashMap(); - public static final Map SANJOSE_IF_IFALIAS_MAP = new HashMap(); - public static final Map SANJOSE_IF_NETMASK_MAP = new HashMap(); + public static final Map SANJOSE_IP_IF_MAP = new HashMap<>(); + public static final Map SANJOSE_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SANJOSE_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SANJOSE_IF_MAC_MAP = new HashMap<>(); + public static final Map SANJOSE_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SANJOSE_IF_NETMASK_MAP = new HashMap<>(); public static final String RIOVISTA_IP = "10.155.69.107"; public static final String RIOVISTA_NAME = "Riovista-ce"; - public static final String RIOVISTA_ROOT = "RIOVISTA"; public static final String RIOVISTA_SNMP_RESOURCE = "classpath:/linkd/nms1055/"+RIOVISTA_NAME+"_"+RIOVISTA_IP+".txt"; public static final String RIOVISTA_SYSOID = ".1.3.6.1.4.1.2636.1.1.1.2.10"; public static final String RIOVISTA_LLDP_CHASSISID = "001f12373dc0"; - public static final Map RIOVISTA_IP_IF_MAP = new HashMap(); - public static final Map RIOVISTA_IF_IFNAME_MAP = new HashMap(); - public static final Map RIOVISTA_IF_IFDESCR_MAP = new HashMap(); - public static final Map RIOVISTA_IF_MAC_MAP = new HashMap(); - public static final Map RIOVISTA_IF_IFALIAS_MAP = new HashMap(); - public static final Map RIOVISTA_IF_NETMASK_MAP = new HashMap(); + public static final Map RIOVISTA_IP_IF_MAP = new HashMap<>(); + public static final Map RIOVISTA_IF_IFNAME_MAP = new HashMap<>(); + public static final Map RIOVISTA_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map RIOVISTA_IF_MAC_MAP = new HashMap<>(); + public static final Map RIOVISTA_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map RIOVISTA_IF_NETMASK_MAP = new HashMap<>(); //nms102 public static final String MIKROTIK_IP = "192.168.0.1"; @@ -1289,97 +1186,93 @@ public abstract class NmsNetworkBuilder { public static final String MIKROTIK_SNMP_RESOURCE = "classpath:/linkd/nms102/"+MIKROTIK_NAME+"-"+MIKROTIK_IP+"-walk.txt"; public static final String MIKROTIK_SYSOID = ".1.3.6.1.4.1.14988.1"; - public static final Map MIKROTIK_IP_IF_MAP = new HashMap(); - public static final Map MIKROTIK_IF_IFNAME_MAP = new HashMap(); - public static final Map MIKROTIK_IF_IFDESCR_MAP = new HashMap(); - public static final Map MIKROTIK_IF_MAC_MAP = new HashMap(); - public static final Map MIKROTIK_IF_IFALIAS_MAP = new HashMap(); - public static final Map MIKROTIK_IF_NETMASK_MAP = new HashMap(); + public static final Map MIKROTIK_IP_IF_MAP = new HashMap<>(); + public static final Map MIKROTIK_IF_IFNAME_MAP = new HashMap<>(); + public static final Map MIKROTIK_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map MIKROTIK_IF_MAC_MAP = new HashMap<>(); + public static final Map MIKROTIK_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map MIKROTIK_IF_NETMASK_MAP = new HashMap<>(); public static final String SAMSUNG_IP = "192.168.0.14"; public static final String SAMSUNG_NAME = "samsung"; public static final String SAMSUNG_SNMP_RESOURCE = "classpath:/linkd/nms102/"+SAMSUNG_NAME+"-"+SAMSUNG_IP+"-walk.txt"; public static final String SAMSUNG_SYSOID = ".1.3.6.1.4.1.236.11.5.1"; - public static final Map SAMSUNG_IP_IF_MAP = new HashMap(); - public static final Map SAMSUNG_IF_IFNAME_MAP = new HashMap(); - public static final Map SAMSUNG_IF_IFDESCR_MAP = new HashMap(); - public static final Map SAMSUNG_IF_MAC_MAP = new HashMap(); - public static final Map SAMSUNG_IF_IFALIAS_MAP = new HashMap(); - public static final Map SAMSUNG_IF_NETMASK_MAP = new HashMap(); + public static final Map SAMSUNG_IP_IF_MAP = new HashMap<>(); + public static final Map SAMSUNG_IF_IFNAME_MAP = new HashMap<>(); + public static final Map SAMSUNG_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map SAMSUNG_IF_MAC_MAP = new HashMap<>(); + public static final Map SAMSUNG_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map SAMSUNG_IF_NETMASK_MAP = new HashMap<>(); public static final String MAC1_IP = "192.168.0.16"; public static final String MAC1_NAME = "mac1"; public static final String MAC1_SNMP_RESOURCE = "classpath:/linkd/nms102/"+"mac-"+MAC1_IP+"-walk.txt"; public static final String MAC1_SYSOID = ".1.3.6.1.4.1.8072.3.2.255"; - public static final Map MAC1_IP_IF_MAP = new HashMap(); - public static final Map MAC1_IF_IFNAME_MAP = new HashMap(); - public static final Map MAC1_IF_IFDESCR_MAP = new HashMap(); - public static final Map MAC1_IF_MAC_MAP = new HashMap(); - public static final Map MAC1_IF_IFALIAS_MAP = new HashMap(); - public static final Map MAC1_IF_NETMASK_MAP = new HashMap(); + public static final Map MAC1_IP_IF_MAP = new HashMap<>(); + public static final Map MAC1_IF_IFNAME_MAP = new HashMap<>(); + public static final Map MAC1_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map MAC1_IF_MAC_MAP = new HashMap<>(); + public static final Map MAC1_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map MAC1_IF_NETMASK_MAP = new HashMap<>(); public static final String MAC2_IP = "192.168.0.17"; public static final String MAC2_NAME = "mac2"; public static final String MAC2_SNMP_RESOURCE = "classpath:/linkd/nms102/"+"mac-"+MAC2_IP+"-walk.txt"; public static final String MAC2_SYSOID = ".1.3.6.1.4.1.8072.3.2.255"; - public static final Map MAC2_IP_IF_MAP = new HashMap(); - public static final Map MAC2_IF_IFNAME_MAP = new HashMap(); - public static final Map MAC2_IF_IFDESCR_MAP = new HashMap(); - public static final Map MAC2_IF_MAC_MAP = new HashMap(); - public static final Map MAC2_IF_IFALIAS_MAP = new HashMap(); - public static final Map MAC2_IF_NETMASK_MAP = new HashMap(); + public static final Map MAC2_IP_IF_MAP = new HashMap<>(); + public static final Map MAC2_IF_IFNAME_MAP = new HashMap<>(); + public static final Map MAC2_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map MAC2_IF_MAC_MAP = new HashMap<>(); + public static final Map MAC2_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map MAC2_IF_NETMASK_MAP = new HashMap<>(); //nms4005 public static final String R1_IP = "10.1.1.2"; public static final String R1_NAME = "R1"; public static final String R1_SYSOID = ".1.3.6.1.4.1.9.1.122"; - public static final String R1_LLDP_CHASSISID = ""; - - public static final Map R1_IP_IF_MAP = new HashMap(); - public static final Map R1_IF_IFNAME_MAP = new HashMap(); - public static final Map R1_IF_IFDESCR_MAP = new HashMap(); - public static final Map R1_IF_MAC_MAP = new HashMap(); - public static final Map R1_IF_IFALIAS_MAP = new HashMap(); - public static final Map R1_IF_NETMASK_MAP = new HashMap(); + + public static final Map R1_IP_IF_MAP = new HashMap<>(); + public static final Map R1_IF_IFNAME_MAP = new HashMap<>(); + public static final Map R1_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map R1_IF_MAC_MAP = new HashMap<>(); + public static final Map R1_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map R1_IF_NETMASK_MAP = new HashMap<>(); public static final String R2_IP = "10.1.2.2"; public static final String R2_NAME = "R2"; public static final String R2_SYSOID = ".1.3.6.1.4.1.9.1.122"; - public static final String R2_LLDP_CHASSISID = ""; - - public static final Map R2_IP_IF_MAP = new HashMap(); - public static final Map R2_IF_IFNAME_MAP = new HashMap(); - public static final Map R2_IF_IFDESCR_MAP = new HashMap(); - public static final Map R2_IF_MAC_MAP = new HashMap(); - public static final Map R2_IF_IFALIAS_MAP = new HashMap(); - public static final Map R2_IF_NETMASK_MAP = new HashMap(); + + public static final Map R2_IP_IF_MAP = new HashMap<>(); + public static final Map R2_IF_IFNAME_MAP = new HashMap<>(); + public static final Map R2_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map R2_IF_MAC_MAP = new HashMap<>(); + public static final Map R2_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map R2_IF_NETMASK_MAP = new HashMap<>(); public static final String R3_IP = "10.1.3.2"; public static final String R3_NAME = "R3"; public static final String R3_SYSOID = ".1.3.6.1.4.1.9.1.122"; - public static final String R3_LLDP_CHASSISID = ""; - - public static final Map R3_IP_IF_MAP = new HashMap(); - public static final Map R3_IF_IFNAME_MAP = new HashMap(); - public static final Map R3_IF_IFDESCR_MAP = new HashMap(); - public static final Map R3_IF_MAC_MAP = new HashMap(); - public static final Map R3_IF_IFALIAS_MAP = new HashMap(); - public static final Map R3_IF_NETMASK_MAP = new HashMap(); + + public static final Map R3_IP_IF_MAP = new HashMap<>(); + public static final Map R3_IF_IFNAME_MAP = new HashMap<>(); + public static final Map R3_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map R3_IF_MAC_MAP = new HashMap<>(); + public static final Map R3_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map R3_IF_NETMASK_MAP = new HashMap<>(); public static final String R4_IP = "10.1.4.2"; public static final String R4_NAME = "R4"; public static final String R4_SYSOID = ".1.3.6.1.4.1.9.1.122"; - public static final String R4_LLDP_CHASSISID = ""; - - public static final Map R4_IP_IF_MAP = new HashMap(); - public static final Map R4_IF_IFNAME_MAP = new HashMap(); - public static final Map R4_IF_IFDESCR_MAP = new HashMap(); - public static final Map R4_IF_MAC_MAP = new HashMap(); - public static final Map R4_IF_IFALIAS_MAP = new HashMap(); - public static final Map R4_IF_NETMASK_MAP = new HashMap(); + + public static final Map R4_IP_IF_MAP = new HashMap<>(); + public static final Map R4_IF_IFNAME_MAP = new HashMap<>(); + public static final Map R4_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map R4_IF_MAC_MAP = new HashMap<>(); + public static final Map R4_IF_IFALIAS_MAP = new HashMap<>(); + public static final Map R4_IF_NETMASK_MAP = new HashMap<>(); //nms7467 @@ -1395,56 +1288,126 @@ public abstract class NmsNetworkBuilder { public static final String CISCO_C870_IP = "192.0.2.1"; public static final String CISCO_C870_BRIDGEID = "00000c83d9a8"; public static final String CISCO_C870_SYSOID = ".1.3.6.1.4.1.9.1.569"; - public static final String CISCO_C870_ROOT = "CISCO_C870"; public static final String CISCO_C870_SNMP_RESOURCE = "classpath:/linkd/nms7467/"+CISCO_C870_IP+"-walk.txt"; - public static final Map CISCO_C870_IF_IFDESCR_MAP = new HashMap(); - public static final Map CISCO_C870_IF_IFNAME_MAP = new HashMap(); - public static final Map CISCO_C870_IF_MAC_MAP = new HashMap(); - public static final Map CISCO_C870_IP_IF_MAP = new HashMap(); + public static final Map CISCO_C870_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map CISCO_C870_IF_IFNAME_MAP = new HashMap<>(); + public static final Map CISCO_C870_IF_MAC_MAP = new HashMap<>(); + public static final Map CISCO_C870_IP_IF_MAP = new HashMap<>(); public static final String CISCO_WS_C2948_NAME = "ciscoswitch"; public static final String CISCO_WS_C2948_IP = "192.0.2.7"; public static final String CISCO_WS_C2948_GLOBAL_DEVICEID = "JAB043408B7"; public static final String CISCO_WS_C2948_BRIDGEID = "0002baaacc00"; public static final String CISCO_WS_C2948_SYSOID = ".1.3.6.1.4.1.9.5.42"; - public static final String CISCO_WS_C2948_ROOT = "CISCO_WS_C2948"; public static final String CISCO_WS_C2948_SNMP_RESOURCE = "classpath:/linkd/nms7467/"+CISCO_WS_C2948_IP+"-walk.txt"; - public static final Map CISCO_WS_C2948_IP_IF_MAP = new HashMap(); - public static final Map CISCO_WS_C2948_IF_IFNAME_MAP = new HashMap(); - public static final Map CISCO_WS_C2948_IF_MAC_MAP = new HashMap(); + public static final Map CISCO_WS_C2948_IP_IF_MAP = new HashMap<>(); + public static final Map CISCO_WS_C2948_IF_IFNAME_MAP = new HashMap<>(); + public static final Map CISCO_WS_C2948_IF_MAC_MAP = new HashMap<>(); public static final String NETGEAR_SW_108_NAME = "ng108switch"; public static final String NETGEAR_SW_108_IP = "192.0.2.8"; public static final String NETGEAR_SW_108_BRIDGEID = "00223ff00b7b"; public static final String NETGEAR_SW_108_SYSOID = ".1.3.6.1.4.1.4526.100.4.8"; - public static final String NETGEAR_SW_108_ROOT = "NETGEAR_SW_108"; public static final String NETGEAR_SW_108_SNMP_RESOURCE = "classpath:/linkd/nms7467/"+NETGEAR_SW_108_IP+"-walk.txt"; - public static final Map NETGEAR_SW_108_IP_IF_MAP = new HashMap(); - public static final Map NETGEAR_SW_108_IF_IFNAME_MAP = new HashMap(); - public static final Map NETGEAR_SW_108_IF_MAC_MAP = new HashMap(); + public static final Map NETGEAR_SW_108_IP_IF_MAP = new HashMap<>(); + public static final Map NETGEAR_SW_108_IF_IFNAME_MAP = new HashMap<>(); + public static final Map NETGEAR_SW_108_IF_MAC_MAP = new HashMap<>(); public static final String LINUX_UBUNTU_NAME = "linuxubuntu"; public static final String LINUX_UBUNTU_IP = "192.0.2.14"; public static final String LINUX_UBUNTU_SYSOID = ".1.3.6.1.4.1.8072.3.2.10"; - public static final String LINUX_UBUNTU_ROOT = "LINUX_UBUNTU"; public static final String LINUX_UBUNTU_SNMP_RESOURCE = "classpath:/linkd/nms7467/"+LINUX_UBUNTU_IP+"-walk.txt"; - public static final Map LINUX_UBUNTU_IP_IF_MAP = new HashMap(); - public static final Map LINUX_UBUNTU_IF_IFNAME_MAP = new HashMap(); - public static final Map LINUX_UBUNTU_IF_MAC_MAP = new HashMap(); + public static final Map LINUX_UBUNTU_IP_IF_MAP = new HashMap<>(); + public static final Map LINUX_UBUNTU_IF_IFNAME_MAP = new HashMap<>(); + public static final Map LINUX_UBUNTU_IF_MAC_MAP = new HashMap<>(); public static final String DARWIN_10_8_NAME = "mac"; public static final String DARWIN_10_8_IP = "192.0.2.28"; public static final String DARWIN_10_8_SYSOID = ".1.3.6.1.4.1.8072.3.2.255"; - public static final String DARWIN_10_8_ROOT = "DARWIN_10_8"; public static final String DARWIN_10_8_SNMP_RESOURCE = "classpath:/linkd/nms7467/"+DARWIN_10_8_IP+"-walk.txt"; - public static final Map DARWIN_10_8_IP_IF_MAP = new HashMap(); - public static final Map DARWIN_10_8_IF_IFNAME_MAP = new HashMap(); - public static final Map DARWIN_10_8_IF_MAC_MAP = new HashMap(); + public static final Map DARWIN_10_8_IP_IF_MAP = new HashMap<>(); + public static final Map DARWIN_10_8_IF_IFNAME_MAP = new HashMap<>(); + public static final Map DARWIN_10_8_IF_MAC_MAP = new HashMap<>(); + + //NMS-13593 + public static final String ZHBGO1Zsr001_NAME="ZHBGO1Zsr001"; + public static final String ZHBGO1Zsr001_IP="10.119.41.15"; + public static final String ZHBGO1Zsr001_SYSOID=".1.3.6.1.4.1.6527.1.3.8"; + public static final String ZHBGO1Zsr001_LLDP_ID="24 21 24 EC E2 3F".replaceAll("\\s+","").toLowerCase(Locale.ROOT); + public static final String ZHBGO1Zsr001_RESOURCE="classpath:/linkd/nms13593/srv001-walk.txt"; + public static final Map ZHBGO1Zsr001_IP_IF_MAP = new HashMap<>(); + public static final Map ZHBGO1Zsr001_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ZHBGO1Zsr001_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ZHBGO1Zsr001_IF_MAC_MAP = new HashMap<>(); + public static final Map ZHBGO1Zsr001_IF_IFALIAS_MAP = new HashMap<>(); + + public static final String ZHBGO1Zsr002_NAME="ZHBGO1Zsr002"; + public static final String ZHBGO1Zsr002_IP="10.119.41.16"; + public static final String ZHBGO1Zsr002_SYSOID=".1.3.6.1.4.1.6527.1.3.8"; + public static final String ZHBGO1Zsr002_LLDP_ID="24 21 24 DA F6 3F".replaceAll("\\s+","").toLowerCase(Locale.ROOT); + public static final String ZHBGO1Zsr002_RESOURCE="classpath:/linkd/nms13593/srv002-walk.txt"; + + public static final Map ZHBGO1Zsr002_IP_IF_MAP = new HashMap<>(); + public static final Map ZHBGO1Zsr002_IF_IFNAME_MAP = new HashMap<>(); + public static final Map ZHBGO1Zsr002_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map ZHBGO1Zsr002_IF_MAC_MAP = new HashMap<>(); + public static final Map ZHBGO1Zsr002_IF_IFALIAS_MAP = new HashMap<>(); + + //NMS-13637 + public static final String MKTROUTER1_SYSOID=".1.3.6.1.4.1.14988.1"; + public static final String MKTROUTER1_NAME="router-1"; + public static final String MKTROUTER1_IP="192.168.178.73"; + public static final String MKTROUTER1_RESOURCE="classpath:/linkd/nms13637/router-1-walk.txt"; + public static final String MKTROUTER1_ETHER1_MAC = "00 50 56 82 A1 05".replaceAll("\\s+","").toLowerCase(Locale.ROOT); + + public static final String MKTROUTER2_SYSOID=".1.3.6.1.4.1.14988.1"; + public static final String MKTROUTER2_NAME="router-2"; + public static final String MKTROUTER2_IP="192.168.178.74"; + public static final String MKTROUTER2_RESOURCE="classpath:/linkd/nms13637/router-2-walk.txt"; + public static final String MKTROUTER2_ETHER1_MAC = "00 50 56 82 EF FC".replaceAll("\\s+","").toLowerCase(Locale.ROOT); + + public static final String MKTROUTER3_SYSOID=".1.3.6.1.4.1.14988.1"; + public static final String MKTROUTER3_NAME="router-3"; + public static final String MKTROUTER3_IP="192.168.180.73"; + public static final String MKTROUTER3_RESOURCE="classpath:/linkd/nms13637/router-3-walk.txt"; + public static final String MKTROUTER3_ETHER1_MAC = "00 50 56 82 A1 35".replaceAll("\\s+","").toLowerCase(Locale.ROOT); + public static final String MKTROUTER3_ETHER2_MAC = "00 50 56 82 04 D6".replaceAll("\\s+","").toLowerCase(Locale.ROOT); + public static final String MKTROUTER3_ETHER3_MAC = "00 50 56 82 7D A0".replaceAll("\\s+","").toLowerCase(Locale.ROOT); + + public static final String MKT_CISCO_SW01_SYSOID=".1.3.6.1.4.1.9.6.1.95.10.3"; + public static final String MKT_CISCO_SW01_NAME="sw01-office"; + public static final String MKT_CISCO_SW01_IP="192.168.178.30"; + public static final String MKT_CISCO_SW01_RESOURCE="classpath:/linkd/nms13637/sw01-office-walk.txt"; + public static final String MKT_CISCO_SW01_LLDP_ID= "5C 71 0D 26 AC 3E".replaceAll("\\s+","").toLowerCase(Locale.ROOT); + public static final String MKT_CISCO_SW01_GB05_MAC= "5C 71 0D 26 AC 43".replaceAll("\\s+","").toLowerCase(Locale.ROOT); + + public static final String MKT_HOST3_LLDP_ID="00 50 56 82 23 35".replaceAll("\\s+","").toLowerCase(Locale.ROOT); + public static final String MKT_HOST4_LLDP_ID="00 50 56 82 20 E2".replaceAll("\\s+","").toLowerCase(Locale.ROOT); + public static final String MKT_HOST5_LLDP_ID="00 50 56 82 62 AB".replaceAll("\\s+","").toLowerCase(Locale.ROOT); + + public static final Map MKTROUTER1_IP_IF_MAP = new HashMap<>(); + public static final Map MKTROUTER1_IF_IFNAME_MAP = new HashMap<>(); + public static final Map MKTROUTER1_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map MKTROUTER1_IF_MAC_MAP = new HashMap<>(); + public static final Map MKTROUTER1_IF_IFALIAS_MAP = new HashMap<>(); + + public static final Map MKTROUTER2_IP_IF_MAP = new HashMap<>(); + public static final Map MKTROUTER2_IF_IFNAME_MAP = new HashMap<>(); + public static final Map MKTROUTER2_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map MKTROUTER2_IF_MAC_MAP = new HashMap<>(); + public static final Map MKTROUTER2_IF_IFALIAS_MAP = new HashMap<>(); + + public static final Map MKT_CISCO_SW01_IP_IF_MAP = new HashMap<>(); + public static final Map MKT_CISCO_SW01_IF_IFNAME_MAP = new HashMap<>(); + public static final Map MKT_CISCO_SW01_IF_IFDESCR_MAP = new HashMap<>(); + public static final Map MKT_CISCO_SW01_IF_MAC_MAP = new HashMap<>(); + public static final Map MKT_CISCO_SW01_IF_IFALIAS_MAP = new HashMap<>(); + NetworkBuilder m_networkBuilder; @@ -1460,7 +1423,7 @@ OnmsNode getNode(String name, String sysoid, String primaryip, Map ifindextomacmap, Map ifindextoifdescrmap, Map ifindextoifalias) { - return getNode(name, sysoid, primaryip, ipinterfacemap, ifindextoifnamemap, ifindextomacmap, ifindextoifdescrmap, ifindextoifalias, new HashMap()); + return getNode(name, sysoid, primaryip, ipinterfacemap, ifindextoifnamemap, ifindextomacmap, ifindextoifdescrmap, ifindextoifalias, new HashMap<>()); } OnmsNode getNode(String name, String sysoid, String primaryip, @@ -1473,7 +1436,7 @@ OnmsNode getNode(String name, String sysoid, String primaryip, { NetworkBuilder nb = getNetworkBuilder(); nb.addNode(name).setForeignSource("linkd").setForeignId(name).setSysObjectId(sysoid).setSysName(name).setType(NodeType.ACTIVE); - final Map ifindexsnmpbuildermap = new HashMap(); + final Map ifindexsnmpbuildermap = new HashMap<>(); for (Integer ifIndex: ifindextoifnamemap.keySet()) { ifindexsnmpbuildermap.put(ifIndex, nb.addSnmpInterface(ifIndex). setIfType(6). @@ -1519,11 +1482,4 @@ private String getSuitableString(Map ifindextomacmap, Integer if return value; } - - public OnmsNode getNodeWithoutSnmp(String name, String ipaddr) { - NetworkBuilder nb = getNetworkBuilder(); - nb.addNode(name).setForeignSource("linkd").setForeignId(name).setType(NodeType.ACTIVE); - nb.addInterface(ipaddr).setIsSnmpPrimary("N").setIsManaged("M"); - return nb.getCurrentNode(); - } } diff --git a/features/enlinkd/tests/src/test/resources/linkd/nms13593/srv001-walk.txt b/features/enlinkd/tests/src/test/resources/linkd/nms13593/srv001-walk.txt new file mode 100644 index 000000000000..5297853f4795 --- /dev/null +++ b/features/enlinkd/tests/src/test/resources/linkd/nms13593/srv001-walk.txt @@ -0,0 +1,7913 @@ +.1.0.8802.1.1.2.1.3.1.0 = INTEGER: 4 +.1.0.8802.1.1.2.1.3.2.0 = Hex-STRING: 24 21 24 EC E2 3F +.1.0.8802.1.1.2.1.3.3.0 = STRING: "ZHBGO1Zsr001" +.1.0.8802.1.1.2.1.3.4.0 = STRING: "TiMOS-C-20.10.R4 cpm/hops64 Nokia 7750 SR Copyright (c) 2000-2021 Nokia. All rights reserved. All use subject to applicable license agreements. Built on Wed Apr 14 12:34:25 PDT 2021 by builder in /builds/c/2010B/R4/panos/main/sros" +.1.0.8802.1.1.2.1.3.5.0 = Hex-STRING: 28 00 +.1.0.8802.1.1.2.1.3.6.0 = Hex-STRING: 28 00 +.1.0.8802.1.1.2.1.3.8.1.3.1.4.10.119.41.15 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.8.1.3.1.4.10.119.77.15 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.8.1.4.1.4.10.119.41.15 = INTEGER: 1 +.1.0.8802.1.1.2.1.3.8.1.4.1.4.10.119.77.15 = INTEGER: 2 +.1.0.8802.1.1.2.1.3.8.1.5.1.4.10.119.41.15 = INTEGER: 0 +.1.0.8802.1.1.2.1.3.8.1.5.1.4.10.119.77.15 = INTEGER: 1 +.1.0.8802.1.1.2.1.3.8.1.6.1.4.10.119.41.15 = OID: .1.3.6.1.4.1.6527.1.3.8 +.1.0.8802.1.1.2.1.3.8.1.6.1.4.10.119.77.15 = OID: .1.3.6.1.4.1.6527.1.3.8 +.1.3.6.1.2.1.1.1.0 = STRING: "TiMOS-C-20.10.R4 cpm/hops64 Nokia 7750 SR Copyright (c) 2000-2021 Nokia. All rights reserved. All use subject to applicable license agreements. Built on Wed Apr 14 12:34:25 PDT 2021 by builder in /builds/c/2010B/R4/panos/main/sros" +.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.6527.1.3.8 +.1.3.6.1.2.1.1.3.0 = Timeticks: (949439911) 109 days, 21:19:59.11 +.1.3.6.1.2.1.1.4.0 = "" +.1.3.6.1.2.1.1.5.0 = STRING: "ZHBGO1Zsr001" +.1.3.6.1.2.1.1.6.0 = "" +.1.3.6.1.2.1.1.7.0 = INTEGER: 79 +.1.3.6.1.2.1.2.1.0 = INTEGER: 97 +.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3 +.1.3.6.1.2.1.2.2.1.1.104906752 = INTEGER: 104906752 +.1.3.6.1.2.1.2.2.1.1.104906753 = INTEGER: 104906753 +.1.3.6.1.2.1.2.2.1.1.104939520 = INTEGER: 104939520 +.1.3.6.1.2.1.2.2.1.1.104972288 = INTEGER: 104972288 +.1.3.6.1.2.1.2.2.1.1.104972289 = INTEGER: 104972289 +.1.3.6.1.2.1.2.2.1.1.105005056 = INTEGER: 105005056 +.1.3.6.1.2.1.2.2.1.1.105037824 = INTEGER: 105037824 +.1.3.6.1.2.1.2.2.1.1.105037825 = INTEGER: 105037825 +.1.3.6.1.2.1.2.2.1.1.105070592 = INTEGER: 105070592 +.1.3.6.1.2.1.2.2.1.1.105070593 = INTEGER: 105070593 +.1.3.6.1.2.1.2.2.1.1.335577088 = INTEGER: 335577088 +.1.3.6.1.2.1.2.2.1.1.335642624 = INTEGER: 335642624 +.1.3.6.1.2.1.2.2.1.1.335675392 = INTEGER: 335675392 +.1.3.6.1.2.1.2.2.1.1.369131520 = INTEGER: 369131520 +.1.3.6.1.2.1.2.2.1.1.369197056 = INTEGER: 369197056 +.1.3.6.1.2.1.2.2.1.1.369229824 = INTEGER: 369229824 +.1.3.6.1.2.1.2.2.1.1.1140918273 = INTEGER: 1140918273 +.1.3.6.1.2.1.2.2.1.1.1140918274 = INTEGER: 1140918274 +.1.3.6.1.2.1.2.2.1.1.1140918275 = INTEGER: 1140918275 +.1.3.6.1.2.1.2.2.1.1.1140918276 = INTEGER: 1140918276 +.1.3.6.1.2.1.2.2.1.1.1140918277 = INTEGER: 1140918277 +.1.3.6.1.2.1.2.2.1.1.1140918278 = INTEGER: 1140918278 +.1.3.6.1.2.1.2.2.1.1.1140918279 = INTEGER: 1140918279 +.1.3.6.1.2.1.2.2.1.1.1140918280 = INTEGER: 1140918280 +.1.3.6.1.2.1.2.2.1.1.1140918281 = INTEGER: 1140918281 +.1.3.6.1.2.1.2.2.1.1.1140918282 = INTEGER: 1140918282 +.1.3.6.1.2.1.2.2.1.1.1140918283 = INTEGER: 1140918283 +.1.3.6.1.2.1.2.2.1.1.1140918284 = INTEGER: 1140918284 +.1.3.6.1.2.1.2.2.1.1.1140918285 = INTEGER: 1140918285 +.1.3.6.1.2.1.2.2.1.1.1140918286 = INTEGER: 1140918286 +.1.3.6.1.2.1.2.2.1.1.1140918287 = INTEGER: 1140918287 +.1.3.6.1.2.1.2.2.1.1.1140918288 = INTEGER: 1140918288 +.1.3.6.1.2.1.2.2.1.1.1140918289 = INTEGER: 1140918289 +.1.3.6.1.2.1.2.2.1.1.1140918290 = INTEGER: 1140918290 +.1.3.6.1.2.1.2.2.1.1.1140918291 = INTEGER: 1140918291 +.1.3.6.1.2.1.2.2.1.1.1140918292 = INTEGER: 1140918292 +.1.3.6.1.2.1.2.2.1.1.1140918293 = INTEGER: 1140918293 +.1.3.6.1.2.1.2.2.1.1.1140918294 = INTEGER: 1140918294 +.1.3.6.1.2.1.2.2.1.1.1140918295 = INTEGER: 1140918295 +.1.3.6.1.2.1.2.2.1.1.1140918296 = INTEGER: 1140918296 +.1.3.6.1.2.1.2.2.1.1.1140918297 = INTEGER: 1140918297 +.1.3.6.1.2.1.2.2.1.1.1140918298 = INTEGER: 1140918298 +.1.3.6.1.2.1.2.2.1.1.1140918299 = INTEGER: 1140918299 +.1.3.6.1.2.1.2.2.1.1.1140918300 = INTEGER: 1140918300 +.1.3.6.1.2.1.2.2.1.1.1140918301 = INTEGER: 1140918301 +.1.3.6.1.2.1.2.2.1.1.1140918302 = INTEGER: 1140918302 +.1.3.6.1.2.1.2.2.1.1.1140918303 = INTEGER: 1140918303 +.1.3.6.1.2.1.2.2.1.1.1140918304 = INTEGER: 1140918304 +.1.3.6.1.2.1.2.2.1.1.1140918305 = INTEGER: 1140918305 +.1.3.6.1.2.1.2.2.1.1.1140918306 = INTEGER: 1140918306 +.1.3.6.1.2.1.2.2.1.1.1140918307 = INTEGER: 1140918307 +.1.3.6.1.2.1.2.2.1.1.1140918308 = INTEGER: 1140918308 +.1.3.6.1.2.1.2.2.1.1.1140918309 = INTEGER: 1140918309 +.1.3.6.1.2.1.2.2.1.1.1140918310 = INTEGER: 1140918310 +.1.3.6.1.2.1.2.2.1.1.1140918311 = INTEGER: 1140918311 +.1.3.6.1.2.1.2.2.1.1.1140918312 = INTEGER: 1140918312 +.1.3.6.1.2.1.2.2.1.1.1140918313 = INTEGER: 1140918313 +.1.3.6.1.2.1.2.2.1.1.1140918314 = INTEGER: 1140918314 +.1.3.6.1.2.1.2.2.1.1.1140918315 = INTEGER: 1140918315 +.1.3.6.1.2.1.2.2.1.1.1140918316 = INTEGER: 1140918316 +.1.3.6.1.2.1.2.2.1.1.1140918317 = INTEGER: 1140918317 +.1.3.6.1.2.1.2.2.1.1.1140918318 = INTEGER: 1140918318 +.1.3.6.1.2.1.2.2.1.1.1140918319 = INTEGER: 1140918319 +.1.3.6.1.2.1.2.2.1.1.1140918320 = INTEGER: 1140918320 +.1.3.6.1.2.1.2.2.1.1.1140918321 = INTEGER: 1140918321 +.1.3.6.1.2.1.2.2.1.1.1140918322 = INTEGER: 1140918322 +.1.3.6.1.2.1.2.2.1.1.1140918323 = INTEGER: 1140918323 +.1.3.6.1.2.1.2.2.1.1.1140918324 = INTEGER: 1140918324 +.1.3.6.1.2.1.2.2.1.1.1140918325 = INTEGER: 1140918325 +.1.3.6.1.2.1.2.2.1.1.1140918326 = INTEGER: 1140918326 +.1.3.6.1.2.1.2.2.1.1.1140918327 = INTEGER: 1140918327 +.1.3.6.1.2.1.2.2.1.1.1140918328 = INTEGER: 1140918328 +.1.3.6.1.2.1.2.2.1.1.1140918329 = INTEGER: 1140918329 +.1.3.6.1.2.1.2.2.1.1.1140918330 = INTEGER: 1140918330 +.1.3.6.1.2.1.2.2.1.1.1140918331 = INTEGER: 1140918331 +.1.3.6.1.2.1.2.2.1.1.1140918332 = INTEGER: 1140918332 +.1.3.6.1.2.1.2.2.1.1.1140918333 = INTEGER: 1140918333 +.1.3.6.1.2.1.2.2.1.1.1140918334 = INTEGER: 1140918334 +.1.3.6.1.2.1.2.2.1.1.1140918335 = INTEGER: 1140918335 +.1.3.6.1.2.1.2.2.1.1.1140918336 = INTEGER: 1140918336 +.1.3.6.1.2.1.2.2.1.1.1140940928 = INTEGER: 1140940928 +.1.3.6.1.2.1.2.2.1.1.1140941056 = INTEGER: 1140941056 +.1.3.6.1.2.1.2.2.1.1.1140941184 = INTEGER: 1140941184 +.1.3.6.1.2.1.2.2.1.1.1140941312 = INTEGER: 1140941312 +.1.3.6.1.2.1.2.2.1.1.1140973697 = INTEGER: 1140973697 +.1.3.6.1.2.1.2.2.1.1.1140973953 = INTEGER: 1140973953 +.1.3.6.1.2.1.2.2.1.1.1342177286 = INTEGER: 1342177286 +.1.3.6.1.2.1.2.2.1.1.1342177290 = INTEGER: 1342177290 +.1.3.6.1.2.1.2.2.1.1.1342177315 = INTEGER: 1342177315 +.1.3.6.1.2.1.2.2.1.1.1342177332 = INTEGER: 1342177332 +.1.3.6.1.2.1.2.2.1.1.1342177397 = INTEGER: 1342177397 +.1.3.6.1.2.1.2.2.1.1.1342177801 = INTEGER: 1342177801 +.1.3.6.1.2.1.2.2.1.1.1342177992 = INTEGER: 1342177992 +.1.3.6.1.2.1.2.2.1.1.1342177994 = INTEGER: 1342177994 +.1.3.6.1.2.1.2.2.1.2.1 = STRING: "system, Loopback IP interface" +.1.3.6.1.2.1.2.2.1.2.2 = STRING: "to_HHYWWd-b, IP interface" +.1.3.6.1.2.1.2.2.1.2.3 = STRING: "to_HHYWWd-p, IP interface" +.1.3.6.1.2.1.2.2.1.2.104906752 = STRING: "3/2/c1, IP interface, \"to--SAS-Sx--esat-1/1/65\"" +.1.3.6.1.2.1.2.2.1.2.104906753 = STRING: "3/2/c1/1, 100-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.104939520 = STRING: "3/2/c2, IP interface, \"QSFP28 Connector\"" +.1.3.6.1.2.1.2.2.1.2.104972288 = STRING: "3/2/c3, IP interface, \"to--SAS-Sx--esat-1/1/67\"" +.1.3.6.1.2.1.2.2.1.2.104972289 = STRING: "3/2/c3/1, 100-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.105005056 = STRING: "3/2/c4, IP interface, \"QSFP28 Connector\"" +.1.3.6.1.2.1.2.2.1.2.105037824 = STRING: "3/2/c5, IP interface, \"backup-link-to--gerw3\"" +.1.3.6.1.2.1.2.2.1.2.105037825 = STRING: "3/2/c5/1, 100-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.105070592 = STRING: "3/2/c6, IP interface, \"active--link-to--gerw3\"" +.1.3.6.1.2.1.2.2.1.2.105070593 = STRING: "3/2/c6/1, 100-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.335577088 = STRING: "A/1, 10/100 Ethernet TX" +.1.3.6.1.2.1.2.2.1.2.335642624 = STRING: "A/3, 10/100 Ethernet TX" +.1.3.6.1.2.1.2.2.1.2.335675392 = STRING: "A/4, 10/100 Ethernet TX" +.1.3.6.1.2.1.2.2.1.2.369131520 = STRING: "B/1, 10/100 Ethernet TX" +.1.3.6.1.2.1.2.2.1.2.369197056 = STRING: "B/3, 10/100 Ethernet TX" +.1.3.6.1.2.1.2.2.1.2.369229824 = STRING: "B/4, 10/100 Ethernet TX" +.1.3.6.1.2.1.2.2.1.2.1140918273 = STRING: "esat-1/1/1, 1-Gig/10-Gig Ethernet, \"link-to-CNx\"" +.1.3.6.1.2.1.2.2.1.2.1140918274 = STRING: "esat-1/1/2, 1-Gig/10-Gig Ethernet, \"\"" +.1.3.6.1.2.1.2.2.1.2.1140918275 = STRING: "esat-1/1/3, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918276 = STRING: "esat-1/1/4, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918277 = STRING: "esat-1/1/5, 1-Gig/10-Gig Ethernet, \"to-SPf"" +.1.3.6.1.2.1.2.2.1.2.1140918278 = STRING: "esat-1/1/6, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918279 = STRING: "esat-1/1/7, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918280 = STRING: "esat-1/1/8, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918281 = STRING: "esat-1/1/9, 1-Gig/10-Gig Ethernet, \"to-gewDS"" +.1.3.6.1.2.1.2.2.1.2.1140918282 = STRING: "esat-1/1/10, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918283 = STRING: "esat-1/1/11, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918284 = STRING: "esat-1/1/12, 1-Gig/10-Gig Ethernet, \"to ZHBGO1Zsr001 1/1/8\"" +.1.3.6.1.2.1.2.2.1.2.1140918285 = STRING: "esat-1/1/13, 1-Gig/10-Gig Ethernet, \"to efw not member of lag714 like in production\"" +.1.3.6.1.2.1.2.2.1.2.1140918286 = STRING: "esat-1/1/14, 1-Gig/10-Gig Ethernet, \"to-efw"" +.1.3.6.1.2.1.2.2.1.2.1140918287 = STRING: "esat-1/1/15, 1-Gig/10-Gig Ethernet, \"to-few"" +.1.3.6.1.2.1.2.2.1.2.1140918288 = STRING: "esat-1/1/16, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918289 = STRING: "esat-1/1/17, 1-Gig/10-Gig Ethernet, \"link-to-CNx\"" +.1.3.6.1.2.1.2.2.1.2.1140918290 = STRING: "esat-1/1/18, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918291 = STRING: "esat-1/1/19, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918292 = STRING: "esat-1/1/20, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918293 = STRING: "esat-1/1/21, 1-Gig/10-Gig Ethernet, \"to-gew"" +.1.3.6.1.2.1.2.2.1.2.1140918294 = STRING: "esat-1/1/22, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918295 = STRING: "esat-1/1/23, 1-Gig/10-Gig Ethernet, \"MGMT-GGW FDWSSs Gi0/11\"" +.1.3.6.1.2.1.2.2.1.2.1140918296 = STRING: "esat-1/1/24, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918297 = STRING: "esat-1/1/25, 1-Gig/10-Gig Ethernet, \"to-GTH\"" +.1.3.6.1.2.1.2.2.1.2.1140918298 = STRING: "esat-1/1/26, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918299 = STRING: "esat-1/1/27, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918300 = STRING: "esat-1/1/28, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918301 = STRING: "esat-1/1/29, 1-Gig/10-Gig Ethernet, \"to-efw\"" +.1.3.6.1.2.1.2.2.1.2.1140918302 = STRING: "esat-1/1/30, 1-Gig/10-Gig Ethernet, \"to-efw"" +.1.3.6.1.2.1.2.2.1.2.1140918303 = STRING: "esat-1/1/31, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918304 = STRING: "esat-1/1/32, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918305 = STRING: "esat-1/1/33, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918306 = STRING: "esat-1/1/34, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918307 = STRING: "esat-1/1/35, 1-Gig/10-Gig Ethernet, \"link-to-HYE\"" +.1.3.6.1.2.1.2.2.1.2.1140918308 = STRING: "esat-1/1/36, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918309 = STRING: "esat-1/1/37, 1-Gig/10-Gig Ethernet, \"to-RESS"" +.1.3.6.1.2.1.2.2.1.2.1140918310 = STRING: "esat-1/1/38, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918311 = STRING: "esat-1/1/39, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918312 = STRING: "esat-1/1/40, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918313 = STRING: "esat-1/1/41, 1-Gig/10-Gig Ethernet, \"to-HRR\"" +.1.3.6.1.2.1.2.2.1.2.1140918314 = STRING: "esat-1/1/42, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918315 = STRING: "esat-1/1/43, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918316 = STRING: "esat-1/1/44, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918317 = STRING: "esat-1/1/45, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/4)"" +.1.3.6.1.2.1.2.2.1.2.1140918318 = STRING: "esat-1/1/46, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918319 = STRING: "esat-1/1/47, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/1)"" +.1.3.6.1.2.1.2.2.1.2.1140918320 = STRING: "esat-1/1/48, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918321 = STRING: "esat-1/1/49, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918322 = STRING: "esat-1/1/50, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918323 = STRING: "esat-1/1/51, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918324 = STRING: "esat-1/1/52, 1-Gig/10-Gig Ethernet, \"link-to-CNc\"" +.1.3.6.1.2.1.2.2.1.2.1140918325 = STRING: "esat-1/1/53, 1-Gig/10-Gig Ethernet, \"to tbd"" +.1.3.6.1.2.1.2.2.1.2.1140918326 = STRING: "esat-1/1/54, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918327 = STRING: "esat-1/1/55, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918328 = STRING: "esat-1/1/56, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918329 = STRING: "esat-1/1/57, 1-Gig/10-Gig Ethernet, \"to-SPc"" +.1.3.6.1.2.1.2.2.1.2.1140918330 = STRING: "esat-1/1/58, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918331 = STRING: "esat-1/1/59, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918332 = STRING: "esat-1/1/60, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918333 = STRING: "esat-1/1/61, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/2)"" +.1.3.6.1.2.1.2.2.1.2.1140918334 = STRING: "esat-1/1/62, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918335 = STRING: "esat-1/1/63, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/3)"" +.1.3.6.1.2.1.2.2.1.2.1140918336 = STRING: "esat-1/1/64, 1-Gig/10-Gig Ethernet, \"PORT\"" +.1.3.6.1.2.1.2.2.1.2.1140940928 = STRING: "esat-1/1/c65, IP interface, \"SAS-Sx-port-1/1/c1/1\"" +.1.3.6.1.2.1.2.2.1.2.1140941056 = STRING: "esat-1/1/c66, IP interface, \"QSFP28 Connector\"" +.1.3.6.1.2.1.2.2.1.2.1140941184 = STRING: "esat-1/1/c67, IP interface, \"SAS-Sx-port-1/1/c3/1\"" +.1.3.6.1.2.1.2.2.1.2.1140941312 = STRING: "esat-1/1/c68, IP interface, \"QSFP28 Connector\"" +.1.3.6.1.2.1.2.2.1.2.1140973697 = STRING: "esat-1/1/c65/u1, 100-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140973953 = STRING: "esat-1/1/c67/u1, 100-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1342177286 = STRING: "lag-6, LAG Group" +.1.3.6.1.2.1.2.2.1.2.1342177290 = STRING: "lag-10, LAG Group" +.1.3.6.1.2.1.2.2.1.2.1342177315 = STRING: "lag-35, LAG Group, \"to-HYE\"" +.1.3.6.1.2.1.2.2.1.2.1342177332 = STRING: "lag-52, LAG Group, \"lag-to-CNc\"" +.1.3.6.1.2.1.2.2.1.2.1342177397 = STRING: "lag-117, LAG Group" +.1.3.6.1.2.1.2.2.1.2.1342177801 = STRING: "lag-521, LAG Group, \"to-DAAAFDG\"" +.1.3.6.1.2.1.2.2.1.2.1342177992 = STRING: "lag-712, LAG Group, \"to-SPb\"" +.1.3.6.1.2.1.2.2.1.2.1342177994 = STRING: "lag-714, LAG Group, \"to-efw\"" +.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: 24 +.1.3.6.1.2.1.2.2.1.3.2 = INTEGER: 142 +.1.3.6.1.2.1.2.2.1.3.3 = INTEGER: 142 +.1.3.6.1.2.1.2.2.1.3.104906752 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.104906753 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.104939520 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.104972288 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.104972289 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.105005056 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.105037824 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.105037825 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.105070592 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.105070593 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.335577088 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.335642624 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.335675392 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.369131520 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.369197056 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.369229824 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918273 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918274 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918275 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918276 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918277 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918278 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918279 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918280 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918281 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918282 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918283 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918284 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918285 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918286 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918287 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918288 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918289 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918290 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918291 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918292 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918293 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918294 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918295 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918296 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918297 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918298 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918299 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918300 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918301 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918302 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918303 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918304 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918305 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918306 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918307 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918308 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918309 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918310 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918311 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918312 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918313 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918314 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918315 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918316 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918317 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918318 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918319 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918320 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918321 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918322 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918323 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918324 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918325 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918326 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918327 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918328 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918329 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918330 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918331 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918332 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918333 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918334 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918335 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918336 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140940928 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.1140941056 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.1140941184 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.1140941312 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.1140973697 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140973953 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1342177286 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177290 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177315 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177332 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177397 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177801 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177992 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177994 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.4.1 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.2 = INTEGER: 9198 +.1.3.6.1.2.1.2.2.1.4.3 = INTEGER: 9198 +.1.3.6.1.2.1.2.2.1.4.104906752 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.104906753 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.104939520 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.104972288 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.104972289 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.105005056 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.105037824 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.105037825 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.105070592 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.105070593 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.335577088 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.335642624 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.335675392 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.369131520 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.369197056 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.369229824 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.1140918273 = INTEGER: 1522 +.1.3.6.1.2.1.2.2.1.4.1140918274 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918275 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918276 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918277 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918278 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918279 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918280 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918281 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918282 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918283 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918284 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918285 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918286 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918287 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918288 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918289 = INTEGER: 1522 +.1.3.6.1.2.1.2.2.1.4.1140918290 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918291 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918292 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918293 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918294 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918295 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918296 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918297 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918298 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918299 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918300 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918301 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918302 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918303 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918304 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918305 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918306 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918307 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918308 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918309 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918310 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918311 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918312 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918313 = INTEGER: 1576 +.1.3.6.1.2.1.2.2.1.4.1140918314 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918315 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918316 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918317 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918318 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918319 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918320 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918321 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918322 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918323 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918324 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918325 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918326 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918327 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918328 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918329 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918330 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918331 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918332 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918333 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918334 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918335 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918336 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.1140940928 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1140941056 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1140941184 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1140941312 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1140973697 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1140973953 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1342177286 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1342177290 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1342177315 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1342177332 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1342177397 = INTEGER: 1522 +.1.3.6.1.2.1.2.2.1.4.1342177801 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1342177992 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1342177994 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.2 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.3 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.104906752 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.104906753 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.104939520 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.104972288 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.104972289 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.105005056 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.105037824 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.105037825 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.105070592 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.105070593 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.335577088 = Gauge32: 100000000 +.1.3.6.1.2.1.2.2.1.5.335642624 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.335675392 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.369131520 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.369197056 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.369229824 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1140918273 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918274 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918275 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918276 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918277 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918278 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918279 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918280 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918281 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918282 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918283 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918284 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918285 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918286 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918287 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918288 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918289 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918290 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918291 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918292 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918293 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918294 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918295 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918296 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918297 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918298 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918299 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918300 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918301 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918302 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918303 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918304 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918305 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918306 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918307 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918308 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918309 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918310 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918311 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918312 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918313 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918314 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918315 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918316 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918317 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918318 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918319 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918320 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918321 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918322 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918323 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918324 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918325 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918326 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918327 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918328 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918329 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918330 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918331 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918332 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918333 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918334 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918335 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918336 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140940928 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140941056 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140941184 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140941312 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140973697 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140973953 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1342177286 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1342177290 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1342177315 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1342177332 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1342177397 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1342177801 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1342177992 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1342177994 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.6.1 = Hex-STRING: 24 21 24 EC E2 3F +.1.3.6.1.2.1.2.2.1.6.2 = Hex-STRING: 24 21 24 EC E3 89 +.1.3.6.1.2.1.2.2.1.6.3 = Hex-STRING: 24 21 24 EC E3 85 +.1.3.6.1.2.1.2.2.1.6.104906752 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.104906753 = Hex-STRING: 24 21 24 77 97 DF +.1.3.6.1.2.1.2.2.1.6.104939520 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.104972288 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.104972289 = Hex-STRING: 24 21 24 77 97 F3 +.1.3.6.1.2.1.2.2.1.6.105005056 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.105037824 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.105037825 = Hex-STRING: 24 21 24 77 98 07 +.1.3.6.1.2.1.2.2.1.6.105070592 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.105070593 = Hex-STRING: 24 21 24 77 98 11 +.1.3.6.1.2.1.2.2.1.6.335577088 = Hex-STRING: 14 7B AC 5D F9 00 +.1.3.6.1.2.1.2.2.1.6.335642624 = Hex-STRING: 14 7B AC 5D F9 02 +.1.3.6.1.2.1.2.2.1.6.335675392 = Hex-STRING: 14 7B AC 5D F9 01 +.1.3.6.1.2.1.2.2.1.6.369131520 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.369197056 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.369229824 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.1140918273 = Hex-STRING: 50 E0 EF 00 06 02 +.1.3.6.1.2.1.2.2.1.6.1140918274 = Hex-STRING: 50 E0 EF 00 06 03 +.1.3.6.1.2.1.2.2.1.6.1140918275 = Hex-STRING: 50 E0 EF 00 06 04 +.1.3.6.1.2.1.2.2.1.6.1140918276 = Hex-STRING: 50 E0 EF 00 06 05 +.1.3.6.1.2.1.2.2.1.6.1140918277 = Hex-STRING: 50 E0 EF 00 06 06 +.1.3.6.1.2.1.2.2.1.6.1140918278 = Hex-STRING: 50 E0 EF 00 06 07 +.1.3.6.1.2.1.2.2.1.6.1140918279 = Hex-STRING: 50 E0 EF 00 06 08 +.1.3.6.1.2.1.2.2.1.6.1140918280 = Hex-STRING: 50 E0 EF 00 06 09 +.1.3.6.1.2.1.2.2.1.6.1140918281 = Hex-STRING: 50 E0 EF 00 06 0A +.1.3.6.1.2.1.2.2.1.6.1140918282 = Hex-STRING: 50 E0 EF 00 06 0B +.1.3.6.1.2.1.2.2.1.6.1140918283 = Hex-STRING: 50 E0 EF 00 06 0C +.1.3.6.1.2.1.2.2.1.6.1140918284 = Hex-STRING: 50 E0 EF 00 06 0D +.1.3.6.1.2.1.2.2.1.6.1140918285 = Hex-STRING: 50 E0 EF 00 06 0E +.1.3.6.1.2.1.2.2.1.6.1140918286 = Hex-STRING: 50 E0 EF 00 06 0F +.1.3.6.1.2.1.2.2.1.6.1140918287 = Hex-STRING: 50 E0 EF 00 06 10 +.1.3.6.1.2.1.2.2.1.6.1140918288 = Hex-STRING: 50 E0 EF 00 06 11 +.1.3.6.1.2.1.2.2.1.6.1140918289 = Hex-STRING: 50 E0 EF 00 06 12 +.1.3.6.1.2.1.2.2.1.6.1140918290 = Hex-STRING: 50 E0 EF 00 06 13 +.1.3.6.1.2.1.2.2.1.6.1140918291 = Hex-STRING: 50 E0 EF 00 06 14 +.1.3.6.1.2.1.2.2.1.6.1140918292 = Hex-STRING: 50 E0 EF 00 06 15 +.1.3.6.1.2.1.2.2.1.6.1140918293 = Hex-STRING: 50 E0 EF 00 06 16 +.1.3.6.1.2.1.2.2.1.6.1140918294 = Hex-STRING: 50 E0 EF 00 06 17 +.1.3.6.1.2.1.2.2.1.6.1140918295 = Hex-STRING: 50 E0 EF 00 06 18 +.1.3.6.1.2.1.2.2.1.6.1140918296 = Hex-STRING: 50 E0 EF 00 06 19 +.1.3.6.1.2.1.2.2.1.6.1140918297 = Hex-STRING: 50 E0 EF 00 06 1A +.1.3.6.1.2.1.2.2.1.6.1140918298 = Hex-STRING: 50 E0 EF 00 06 1B +.1.3.6.1.2.1.2.2.1.6.1140918299 = Hex-STRING: 50 E0 EF 00 06 1C +.1.3.6.1.2.1.2.2.1.6.1140918300 = Hex-STRING: 50 E0 EF 00 06 1D +.1.3.6.1.2.1.2.2.1.6.1140918301 = Hex-STRING: 50 E0 EF 00 06 1E +.1.3.6.1.2.1.2.2.1.6.1140918302 = Hex-STRING: 50 E0 EF 00 06 1F +.1.3.6.1.2.1.2.2.1.6.1140918303 = Hex-STRING: 50 E0 EF 00 06 20 +.1.3.6.1.2.1.2.2.1.6.1140918304 = Hex-STRING: 50 E0 EF 00 06 21 +.1.3.6.1.2.1.2.2.1.6.1140918305 = Hex-STRING: 50 E0 EF 00 06 22 +.1.3.6.1.2.1.2.2.1.6.1140918306 = Hex-STRING: 50 E0 EF 00 06 23 +.1.3.6.1.2.1.2.2.1.6.1140918307 = Hex-STRING: 50 E0 EF 00 06 24 +.1.3.6.1.2.1.2.2.1.6.1140918308 = Hex-STRING: 50 E0 EF 00 06 25 +.1.3.6.1.2.1.2.2.1.6.1140918309 = Hex-STRING: 6C 9C ED 1B 75 50 +.1.3.6.1.2.1.2.2.1.6.1140918310 = Hex-STRING: 50 E0 EF 00 06 27 +.1.3.6.1.2.1.2.2.1.6.1140918311 = Hex-STRING: 50 E0 EF 00 06 28 +.1.3.6.1.2.1.2.2.1.6.1140918312 = Hex-STRING: 50 E0 EF 00 06 29 +.1.3.6.1.2.1.2.2.1.6.1140918313 = Hex-STRING: 50 E0 EF 00 06 2A +.1.3.6.1.2.1.2.2.1.6.1140918314 = Hex-STRING: 50 E0 EF 00 06 2B +.1.3.6.1.2.1.2.2.1.6.1140918315 = Hex-STRING: 50 E0 EF 00 06 2C +.1.3.6.1.2.1.2.2.1.6.1140918316 = Hex-STRING: 50 E0 EF 00 06 2D +.1.3.6.1.2.1.2.2.1.6.1140918317 = Hex-STRING: 50 E0 EF 00 06 2E +.1.3.6.1.2.1.2.2.1.6.1140918318 = Hex-STRING: 50 E0 EF 00 06 2F +.1.3.6.1.2.1.2.2.1.6.1140918319 = Hex-STRING: 50 E0 EF 00 06 30 +.1.3.6.1.2.1.2.2.1.6.1140918320 = Hex-STRING: 50 E0 EF 00 06 31 +.1.3.6.1.2.1.2.2.1.6.1140918321 = Hex-STRING: 50 E0 EF 00 06 32 +.1.3.6.1.2.1.2.2.1.6.1140918322 = Hex-STRING: 50 E0 EF 00 06 33 +.1.3.6.1.2.1.2.2.1.6.1140918323 = Hex-STRING: 50 E0 EF 00 06 34 +.1.3.6.1.2.1.2.2.1.6.1140918324 = Hex-STRING: 50 E0 EF 00 06 35 +.1.3.6.1.2.1.2.2.1.6.1140918325 = Hex-STRING: 50 E0 EF 00 06 36 +.1.3.6.1.2.1.2.2.1.6.1140918326 = Hex-STRING: 50 E0 EF 00 06 37 +.1.3.6.1.2.1.2.2.1.6.1140918327 = Hex-STRING: 50 E0 EF 00 06 38 +.1.3.6.1.2.1.2.2.1.6.1140918328 = Hex-STRING: 50 E0 EF 00 06 39 +.1.3.6.1.2.1.2.2.1.6.1140918329 = Hex-STRING: 50 E0 EF 00 06 3A +.1.3.6.1.2.1.2.2.1.6.1140918330 = Hex-STRING: 50 E0 EF 00 06 3B +.1.3.6.1.2.1.2.2.1.6.1140918331 = Hex-STRING: 50 E0 EF 00 06 3C +.1.3.6.1.2.1.2.2.1.6.1140918332 = Hex-STRING: 50 E0 EF 00 06 3D +.1.3.6.1.2.1.2.2.1.6.1140918333 = Hex-STRING: 50 E0 EF 00 06 3E +.1.3.6.1.2.1.2.2.1.6.1140918334 = Hex-STRING: 50 E0 EF 00 06 3F +.1.3.6.1.2.1.2.2.1.6.1140918335 = Hex-STRING: 50 E0 EF 00 06 40 +.1.3.6.1.2.1.2.2.1.6.1140918336 = Hex-STRING: 50 E0 EF 00 06 41 +.1.3.6.1.2.1.2.2.1.6.1140940928 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.1140941056 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.1140941184 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.1140941312 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.1140973697 = Hex-STRING: 50 E0 EF 00 06 42 +.1.3.6.1.2.1.2.2.1.6.1140973953 = Hex-STRING: 50 E0 EF 00 06 44 +.1.3.6.1.2.1.2.2.1.6.1342177286 = Hex-STRING: 24 21 24 EC E3 85 +.1.3.6.1.2.1.2.2.1.6.1342177290 = Hex-STRING: 24 21 24 EC E3 89 +.1.3.6.1.2.1.2.2.1.6.1342177315 = Hex-STRING: 24 21 24 EC E3 A2 +.1.3.6.1.2.1.2.2.1.6.1342177332 = Hex-STRING: 24 21 24 EC E3 B3 +.1.3.6.1.2.1.2.2.1.6.1342177397 = Hex-STRING: 24 21 24 EC E3 F4 +.1.3.6.1.2.1.2.2.1.6.1342177801 = Hex-STRING: 24 21 24 EC E2 40 +.1.3.6.1.2.1.2.2.1.6.1342177992 = Hex-STRING: 24 21 24 EC E2 41 +.1.3.6.1.2.1.2.2.1.6.1342177994 = Hex-STRING: 24 21 24 EC E2 42 +.1.3.6.1.2.1.2.2.1.7.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.2 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.3 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.104906752 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.104906753 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.104939520 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.104972288 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.104972289 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.105005056 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.105037824 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.105037825 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.105070592 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.105070593 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.335577088 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.335642624 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.335675392 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.369131520 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.369197056 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.369229824 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918273 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918274 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918275 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918276 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918277 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918278 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918279 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918280 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918281 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918282 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918283 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918284 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918285 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918286 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918287 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918288 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918289 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918290 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918291 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918292 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918293 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918294 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918295 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918296 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918297 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918298 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918299 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918300 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918301 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918302 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918303 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918304 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918305 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918306 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918307 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918308 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918309 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918310 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918311 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918312 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918313 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918314 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918315 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918316 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918317 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918318 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918319 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918320 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918321 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918322 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918323 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918324 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918325 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918326 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918327 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918328 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918329 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918330 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918331 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918332 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918333 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918334 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918335 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918336 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140940928 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140941056 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140941184 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140941312 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140973697 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140973953 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177286 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177290 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177315 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177332 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177397 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177801 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177992 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177994 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.2 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.3 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.104906752 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.104906753 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.104939520 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.104972288 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.104972289 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.105005056 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.105037824 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.105037825 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.105070592 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.105070593 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.335577088 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.335642624 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.335675392 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.369131520 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.369197056 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.369229824 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.1140918273 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918274 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918275 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918276 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918277 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918278 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918279 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918280 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918281 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918282 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918283 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918284 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1140918285 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918286 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918287 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918288 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918289 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918290 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918291 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918292 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918293 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918294 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918295 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918296 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918297 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918298 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918299 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918300 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918301 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918302 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918303 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918304 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918305 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918306 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918307 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918308 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918309 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918310 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918311 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918312 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918313 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1140918314 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918315 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918316 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918317 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918318 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918319 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918320 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918321 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918322 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918323 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918324 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918325 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918326 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918327 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918328 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918329 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1140918330 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918331 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918332 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918333 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918334 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918335 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918336 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140940928 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1140941056 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140941184 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140941312 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140973697 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1140973953 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1342177286 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1342177290 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1342177315 = INTEGER: 7 +.1.3.6.1.2.1.2.2.1.8.1342177332 = INTEGER: 7 +.1.3.6.1.2.1.2.2.1.8.1342177397 = INTEGER: 7 +.1.3.6.1.2.1.2.2.1.8.1342177801 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1342177992 = INTEGER: 7 +.1.3.6.1.2.1.2.2.1.8.1342177994 = INTEGER: 7 +.1.3.6.1.2.1.2.2.1.9.1 = Timeticks: (4680) 0:00:46.80 +.1.3.6.1.2.1.2.2.1.9.2 = Timeticks: (44094) 0:07:20.94 +.1.3.6.1.2.1.2.2.1.9.3 = Timeticks: (44063) 0:07:20.63 +.1.3.6.1.2.1.2.2.1.9.104906752 = Timeticks: (43596) 0:07:15.96 +.1.3.6.1.2.1.2.2.1.9.104906753 = Timeticks: (43965) 0:07:19.65 +.1.3.6.1.2.1.2.2.1.9.104939520 = Timeticks: (4551) 0:00:45.51 +.1.3.6.1.2.1.2.2.1.9.104972288 = Timeticks: (517461459) 59 days, 21:23:34.59 +.1.3.6.1.2.1.2.2.1.9.104972289 = Timeticks: (517444883) 59 days, 21:20:48.83 +.1.3.6.1.2.1.2.2.1.9.105005056 = Timeticks: (4551) 0:00:45.51 +.1.3.6.1.2.1.2.2.1.9.105037824 = Timeticks: (43631) 0:07:16.31 +.1.3.6.1.2.1.2.2.1.9.105037825 = Timeticks: (44094) 0:07:20.94 +.1.3.6.1.2.1.2.2.1.9.105070592 = Timeticks: (43608) 0:07:16.08 +.1.3.6.1.2.1.2.2.1.9.105070593 = Timeticks: (44063) 0:07:20.63 +.1.3.6.1.2.1.2.2.1.9.335577088 = Timeticks: (132) 0:00:01.32 +.1.3.6.1.2.1.2.2.1.9.335642624 = Timeticks: (2) 0:00:00.02 +.1.3.6.1.2.1.2.2.1.9.335675392 = Timeticks: (132) 0:00:01.32 +.1.3.6.1.2.1.2.2.1.9.369131520 = Timeticks: (32) 0:00:00.32 +.1.3.6.1.2.1.2.2.1.9.369197056 = Timeticks: (32) 0:00:00.32 +.1.3.6.1.2.1.2.2.1.9.369229824 = Timeticks: (32) 0:00:00.32 +.1.3.6.1.2.1.2.2.1.9.1140918273 = Timeticks: (45006) 0:07:30.06 +.1.3.6.1.2.1.2.2.1.9.1140918274 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918275 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918276 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918277 = Timeticks: (45006) 0:07:30.06 +.1.3.6.1.2.1.2.2.1.9.1140918278 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918279 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918280 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918281 = Timeticks: (45011) 0:07:30.11 +.1.3.6.1.2.1.2.2.1.9.1140918282 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918283 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918284 = Timeticks: (45745) 0:07:37.45 +.1.3.6.1.2.1.2.2.1.9.1140918285 = Timeticks: (45017) 0:07:30.17 +.1.3.6.1.2.1.2.2.1.9.1140918286 = Timeticks: (45018) 0:07:30.18 +.1.3.6.1.2.1.2.2.1.9.1140918287 = Timeticks: (45020) 0:07:30.20 +.1.3.6.1.2.1.2.2.1.9.1140918288 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918289 = Timeticks: (45023) 0:07:30.23 +.1.3.6.1.2.1.2.2.1.9.1140918290 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918291 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918292 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918293 = Timeticks: (45034) 0:07:30.34 +.1.3.6.1.2.1.2.2.1.9.1140918294 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918295 = Timeticks: (45040) 0:07:30.40 +.1.3.6.1.2.1.2.2.1.9.1140918296 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918297 = Timeticks: (45044) 0:07:30.44 +.1.3.6.1.2.1.2.2.1.9.1140918298 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918299 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918300 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918301 = Timeticks: (45053) 0:07:30.53 +.1.3.6.1.2.1.2.2.1.9.1140918302 = Timeticks: (45053) 0:07:30.53 +.1.3.6.1.2.1.2.2.1.9.1140918303 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918304 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918305 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918306 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918307 = Timeticks: (45064) 0:07:30.64 +.1.3.6.1.2.1.2.2.1.9.1140918308 = Timeticks: (3896) 0:00:38.96 +.1.3.6.1.2.1.2.2.1.9.1140918309 = Timeticks: (45068) 0:07:30.68 +.1.3.6.1.2.1.2.2.1.9.1140918310 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918311 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918312 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918313 = Timeticks: (533916458) 61 days, 19:06:04.58 +.1.3.6.1.2.1.2.2.1.9.1140918314 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918315 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918316 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918317 = Timeticks: (45082) 0:07:30.82 +.1.3.6.1.2.1.2.2.1.9.1140918318 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918319 = Timeticks: (45083) 0:07:30.83 +.1.3.6.1.2.1.2.2.1.9.1140918320 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918321 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918322 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918323 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918324 = Timeticks: (45090) 0:07:30.90 +.1.3.6.1.2.1.2.2.1.9.1140918325 = Timeticks: (45092) 0:07:30.92 +.1.3.6.1.2.1.2.2.1.9.1140918326 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918327 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918328 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918329 = Timeticks: (466382547) 53 days, 23:30:25.47 +.1.3.6.1.2.1.2.2.1.9.1140918330 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918331 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918332 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918333 = Timeticks: (45104) 0:07:31.04 +.1.3.6.1.2.1.2.2.1.9.1140918334 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140918335 = Timeticks: (45109) 0:07:31.09 +.1.3.6.1.2.1.2.2.1.9.1140918336 = Timeticks: (45109) 0:07:31.09 +.1.3.6.1.2.1.2.2.1.9.1140940928 = Timeticks: (45745) 0:07:37.45 +.1.3.6.1.2.1.2.2.1.9.1140941056 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140941184 = Timeticks: (517444794) 59 days, 21:20:47.94 +.1.3.6.1.2.1.2.2.1.9.1140941312 = Timeticks: (3897) 0:00:38.97 +.1.3.6.1.2.1.2.2.1.9.1140973697 = Timeticks: (45745) 0:07:37.45 +.1.3.6.1.2.1.2.2.1.9.1140973953 = Timeticks: (517444783) 59 days, 21:20:47.83 +.1.3.6.1.2.1.2.2.1.9.1342177286 = Timeticks: (44063) 0:07:20.63 +.1.3.6.1.2.1.2.2.1.9.1342177290 = Timeticks: (44094) 0:07:20.94 +.1.3.6.1.2.1.2.2.1.9.1342177315 = Timeticks: (4652) 0:00:46.52 +.1.3.6.1.2.1.2.2.1.9.1342177332 = Timeticks: (4653) 0:00:46.53 +.1.3.6.1.2.1.2.2.1.9.1342177397 = Timeticks: (4654) 0:00:46.54 +.1.3.6.1.2.1.2.2.1.9.1342177801 = Timeticks: (45745) 0:07:37.45 +.1.3.6.1.2.1.2.2.1.9.1342177992 = Timeticks: (4655) 0:00:46.55 +.1.3.6.1.2.1.2.2.1.9.1342177994 = Timeticks: (4656) 0:00:46.56 +.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.2 = Counter32: 345077314 +.1.3.6.1.2.1.2.2.1.10.3 = Counter32: 420862858 +.1.3.6.1.2.1.2.2.1.10.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.104906753 = Counter32: 3481664218 +.1.3.6.1.2.1.2.2.1.10.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.104972289 = Counter32: 1184478453 +.1.3.6.1.2.1.2.2.1.10.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.105037825 = Counter32: 1207778442 +.1.3.6.1.2.1.2.2.1.10.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.105070593 = Counter32: 2205797569 +.1.3.6.1.2.1.2.2.1.10.335577088 = Counter32: 842109449 +.1.3.6.1.2.1.2.2.1.10.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918284 = Counter32: 2057566158 +.1.3.6.1.2.1.2.2.1.10.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918313 = Counter32: 1215950162 +.1.3.6.1.2.1.2.2.1.10.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918329 = Counter32: 91899556 +.1.3.6.1.2.1.2.2.1.10.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140973697 = Counter32: 1639964609 +.1.3.6.1.2.1.2.2.1.10.1140973953 = Counter32: 205967041 +.1.3.6.1.2.1.2.2.1.10.1342177286 = Counter32: 2205797569 +.1.3.6.1.2.1.2.2.1.10.1342177290 = Counter32: 1207778442 +.1.3.6.1.2.1.2.2.1.10.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1342177801 = Counter32: 2057566158 +.1.3.6.1.2.1.2.2.1.10.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.2 = Counter32: 4380717 +.1.3.6.1.2.1.2.2.1.11.3 = Counter32: 5095123 +.1.3.6.1.2.1.2.2.1.11.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.104906753 = Counter32: 1147653058 +.1.3.6.1.2.1.2.2.1.11.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.104972289 = Counter32: 480347 +.1.3.6.1.2.1.2.2.1.11.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.105037825 = Counter32: 1163313702 +.1.3.6.1.2.1.2.2.1.11.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.105070593 = Counter32: 1197303561 +.1.3.6.1.2.1.2.2.1.11.335577088 = Counter32: 2438923 +.1.3.6.1.2.1.2.2.1.11.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918284 = Counter32: 60 +.1.3.6.1.2.1.2.2.1.11.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918313 = Counter32: 739013 +.1.3.6.1.2.1.2.2.1.11.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918329 = Counter32: 794757 +.1.3.6.1.2.1.2.2.1.11.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140973697 = Counter32: 1804899014 +.1.3.6.1.2.1.2.2.1.11.1140973953 = Counter32: 5560 +.1.3.6.1.2.1.2.2.1.11.1342177286 = Counter32: 1197303561 +.1.3.6.1.2.1.2.2.1.11.1342177290 = Counter32: 1163313702 +.1.3.6.1.2.1.2.2.1.11.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1342177801 = Counter32: 60 +.1.3.6.1.2.1.2.2.1.11.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.2 = Counter32: 3 +.1.3.6.1.2.1.2.2.1.12.3 = Counter32: 3 +.1.3.6.1.2.1.2.2.1.12.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.104906753 = Counter32: 21423573 +.1.3.6.1.2.1.2.2.1.12.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.104972289 = Counter32: 14891131 +.1.3.6.1.2.1.2.2.1.12.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.105037825 = Counter32: 10731744 +.1.3.6.1.2.1.2.2.1.12.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.105070593 = Counter32: 10731770 +.1.3.6.1.2.1.2.2.1.12.335577088 = Counter32: 5143592 +.1.3.6.1.2.1.2.2.1.12.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918284 = Counter32: 20469325 +.1.3.6.1.2.1.2.2.1.12.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918313 = Counter32: 15265171 +.1.3.6.1.2.1.2.2.1.12.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918329 = Counter32: 91255 +.1.3.6.1.2.1.2.2.1.12.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140973697 = Counter32: 150774247 +.1.3.6.1.2.1.2.2.1.12.1140973953 = Counter32: 3134377 +.1.3.6.1.2.1.2.2.1.12.1342177286 = Counter32: 10731772 +.1.3.6.1.2.1.2.2.1.12.1342177290 = Counter32: 10731745 +.1.3.6.1.2.1.2.2.1.12.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1342177801 = Counter32: 20469325 +.1.3.6.1.2.1.2.2.1.12.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.104906753 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.104972289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.105037825 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.105070593 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.335577088 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918284 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918313 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918329 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140973697 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140973953 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177801 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.104906753 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.104972289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.105037825 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.105070593 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.335577088 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918284 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918313 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918329 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140973697 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140973953 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177801 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.104906753 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.104972289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.105037825 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.105070593 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.335577088 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918284 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918313 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918329 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140973697 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140973953 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177801 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.2 = Counter32: 4268883134 +.1.3.6.1.2.1.2.2.1.16.3 = Counter32: 971950486 +.1.3.6.1.2.1.2.2.1.16.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.104906753 = Counter32: 2715748071 +.1.3.6.1.2.1.2.2.1.16.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.104972289 = Counter32: 184882321 +.1.3.6.1.2.1.2.2.1.16.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.105037825 = Counter32: 1207287530 +.1.3.6.1.2.1.2.2.1.16.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.105070593 = Counter32: 2205343331 +.1.3.6.1.2.1.2.2.1.16.335577088 = Counter32: 860113196 +.1.3.6.1.2.1.2.2.1.16.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918284 = Counter32: 1528127592 +.1.3.6.1.2.1.2.2.1.16.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918313 = Counter32: 25465624 +.1.3.6.1.2.1.2.2.1.16.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918329 = Counter32: 51281286 +.1.3.6.1.2.1.2.2.1.16.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140973697 = Counter32: 3198456105 +.1.3.6.1.2.1.2.2.1.16.1140973953 = Counter32: 1186089301 +.1.3.6.1.2.1.2.2.1.16.1342177286 = Counter32: 2205343331 +.1.3.6.1.2.1.2.2.1.16.1342177290 = Counter32: 1207287530 +.1.3.6.1.2.1.2.2.1.16.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1342177801 = Counter32: 1528127592 +.1.3.6.1.2.1.2.2.1.16.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.2 = Counter32: 1164351065 +.1.3.6.1.2.1.2.2.1.17.3 = Counter32: 1198341166 +.1.3.6.1.2.1.2.2.1.17.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.104906753 = Counter32: 1720835495 +.1.3.6.1.2.1.2.2.1.17.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.104972289 = Counter32: 5559 +.1.3.6.1.2.1.2.2.1.17.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.105037825 = Counter32: 1163310869 +.1.3.6.1.2.1.2.2.1.17.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.105070593 = Counter32: 1197301015 +.1.3.6.1.2.1.2.2.1.17.335577088 = Counter32: 3707133 +.1.3.6.1.2.1.2.2.1.17.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918284 = Counter32: 29 +.1.3.6.1.2.1.2.2.1.17.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918313 = Counter32: 309569 +.1.3.6.1.2.1.2.2.1.17.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918329 = Counter32: 302730 +.1.3.6.1.2.1.2.2.1.17.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140973697 = Counter32: 1208367818 +.1.3.6.1.2.1.2.2.1.17.1140973953 = Counter32: 480347 +.1.3.6.1.2.1.2.2.1.17.1342177286 = Counter32: 1197301015 +.1.3.6.1.2.1.2.2.1.17.1342177290 = Counter32: 1163310869 +.1.3.6.1.2.1.2.2.1.17.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1342177801 = Counter32: 29 +.1.3.6.1.2.1.2.2.1.17.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.104906753 = Counter32: 150452346 +.1.3.6.1.2.1.2.2.1.18.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.104972289 = Counter32: 2812478 +.1.3.6.1.2.1.2.2.1.18.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.105037825 = Counter32: 10731745 +.1.3.6.1.2.1.2.2.1.18.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.105070593 = Counter32: 10731767 +.1.3.6.1.2.1.2.2.1.18.335577088 = Counter32: 4985 +.1.3.6.1.2.1.2.2.1.18.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918284 = Counter32: 145009566 +.1.3.6.1.2.1.2.2.1.18.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918313 = Counter32: 119 +.1.3.6.1.2.1.2.2.1.18.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918329 = Counter32: 432152 +.1.3.6.1.2.1.2.2.1.18.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140973697 = Counter32: 21443718 +.1.3.6.1.2.1.2.2.1.18.1140973953 = Counter32: 14911268 +.1.3.6.1.2.1.2.2.1.18.1342177286 = Counter32: 10731767 +.1.3.6.1.2.1.2.2.1.18.1342177290 = Counter32: 10731745 +.1.3.6.1.2.1.2.2.1.18.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1342177801 = Counter32: 145009566 +.1.3.6.1.2.1.2.2.1.18.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.104906753 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.104972289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.105037825 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.105070593 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.335577088 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918284 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918313 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918329 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140973697 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140973953 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177801 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.104906753 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.104972289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.105037825 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.105070593 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.335577088 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918284 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918313 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918329 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140973697 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140973953 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177801 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.21.1 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.2 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.3 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.104906752 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.104906753 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.104939520 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.104972288 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.104972289 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.105005056 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.105037824 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.105037825 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.105070592 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.105070593 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.335577088 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.335642624 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.335675392 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.369131520 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.369197056 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.369229824 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918273 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918274 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918275 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918276 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918277 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918278 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918279 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918280 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918281 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918282 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918283 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918284 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918285 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918286 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918287 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918288 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918289 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918290 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918291 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918292 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918293 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918294 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918295 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918296 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918297 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918298 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918299 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918300 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918301 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918302 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918303 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918304 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918305 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918306 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918307 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918308 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918309 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918310 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918311 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918312 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918313 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918314 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918315 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918316 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918317 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918318 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918319 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918320 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918321 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918322 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918323 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918324 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918325 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918326 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918327 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918328 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918329 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918330 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918331 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918332 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918333 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918334 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918335 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918336 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140940928 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140941056 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140941184 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140941312 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140973697 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140973953 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177286 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177290 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177315 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177332 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177397 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177801 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177992 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177994 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.22.1 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.2 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.3 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.104906752 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.104906753 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.104939520 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.104972288 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.104972289 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.105005056 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.105037824 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.105037825 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.105070592 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.105070593 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.335577088 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.335642624 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.335675392 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.369131520 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.369197056 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.369229824 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918273 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918274 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918275 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918276 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918277 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918278 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918279 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918280 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918281 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918282 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918283 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918284 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918285 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918286 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918287 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918288 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918289 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918290 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918291 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918292 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918293 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918294 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918295 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918296 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918297 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918298 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918299 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918300 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918301 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918302 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918303 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918304 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918305 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918306 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918307 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918308 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918309 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918310 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918311 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918312 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918313 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918314 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918315 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918316 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918317 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918318 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918319 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918320 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918321 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918322 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918323 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918324 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918325 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918326 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918327 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918328 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918329 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918330 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918331 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918332 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918333 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918334 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918335 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918336 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140940928 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140941056 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140941184 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140941312 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140973697 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140973953 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177286 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177290 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177315 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177332 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177397 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177801 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177992 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177994 = OID: ccitt.0 +.1.3.6.1.2.1.31.1.1.1.1.1 = STRING: "lo0" +.1.3.6.1.2.1.31.1.1.1.1.104906753 = STRING: "3/2/c1/1" +.1.3.6.1.2.1.31.1.1.1.1.105037825 = STRING: "3/2/c5/1" +.1.3.6.1.2.1.31.1.1.1.1.105070593 = STRING: "3/2/c6/1" +.1.3.6.1.2.1.31.1.1.1.18.1 = STRING: "" +.1.3.6.1.2.1.31.1.1.1.18.104906753 = STRING: "" +.1.3.6.1.2.1.31.1.1.1.18.105037825 = STRING: "" +.1.3.6.1.2.1.31.1.1.1.18.105070593 = STRING: "" +.1.3.6.1.4.1.6527.3.1.2.59.1.1.0 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.3.0 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.4.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.104906753.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.104906753.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.104906753.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.104972289.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.104972289.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.104972289.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.105037825.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.105037825.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.105037825.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.105070593.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.105070593.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.105070593.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918273.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918273.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918273.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918274.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918274.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918274.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918275.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918275.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918275.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918276.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918276.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918276.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918277.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918277.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918277.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918278.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918278.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918278.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918279.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918279.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918279.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918280.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918280.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918280.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918281.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918281.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918281.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918282.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918282.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918282.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918283.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918283.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918283.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918284.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918284.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918284.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918285.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918285.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918285.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918286.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918286.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918286.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918287.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918287.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918287.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918288.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918288.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918288.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918289.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918289.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918289.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918290.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918290.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918290.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918291.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918291.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918291.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918292.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918292.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918292.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918293.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918293.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918293.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918294.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918294.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918294.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918295.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918295.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918295.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918296.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918296.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918296.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918297.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918297.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918297.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918298.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918298.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918298.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918299.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918299.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918299.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918300.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918300.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918300.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918301.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918301.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918301.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918302.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918302.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918302.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918303.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918303.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918303.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918304.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918304.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918304.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918305.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918305.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918305.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918306.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918306.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918306.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918307.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918307.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918307.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918308.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918308.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918308.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918309.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918309.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918309.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918310.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918310.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918310.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918311.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918311.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918311.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918312.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918312.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918312.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918313.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918313.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918313.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918314.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918314.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918314.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918315.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918315.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918315.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918316.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918316.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918316.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918317.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918317.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918317.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918318.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918318.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918318.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918319.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918319.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918319.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918320.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918320.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918320.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918321.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918321.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918321.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918322.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918322.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918322.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918323.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918323.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918323.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918324.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918324.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918324.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918325.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918325.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918325.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918326.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918326.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918326.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918327.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918327.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918327.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918328.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918328.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918328.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918329.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918329.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918329.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918330.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918330.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918330.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918331.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918331.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918331.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918332.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918332.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918332.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918333.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918333.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918333.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918334.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918334.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918334.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918335.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918335.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918335.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918336.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918336.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918336.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.104906753.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.104906753.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.104906753.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.104972289.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.104972289.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.104972289.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.105037825.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.105037825.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.105037825.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.105070593.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.105070593.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.105070593.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918273.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918273.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918273.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918274.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918274.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918274.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918275.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918275.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918275.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918276.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918276.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918276.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918277.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918277.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918277.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918278.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918278.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918278.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918279.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918279.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918279.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918280.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918280.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918280.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918281.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918281.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918281.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918282.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918282.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918282.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918283.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918283.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918283.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918284.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918284.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918284.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918285.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918285.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918285.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918286.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918286.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918286.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918287.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918287.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918287.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918288.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918288.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918288.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918289.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918289.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918289.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918290.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918290.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918290.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918291.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918291.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918291.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918292.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918292.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918292.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918293.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918293.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918293.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918294.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918294.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918294.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918295.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918295.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918295.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918296.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918296.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918296.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918297.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918297.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918297.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918298.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918298.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918298.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918299.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918299.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918299.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918300.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918300.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918300.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918301.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918301.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918301.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918302.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918302.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918302.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918303.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918303.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918303.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918304.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918304.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918304.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918305.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918305.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918305.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918306.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918306.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918306.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918307.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918307.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918307.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918308.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918308.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918308.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918309.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918309.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918309.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918310.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918310.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918310.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918311.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918311.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918311.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918312.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918312.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918312.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918313.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918313.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918313.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918314.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918314.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918314.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918315.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918315.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918315.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918316.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918316.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918316.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918317.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918317.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918317.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918318.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918318.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918318.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918319.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918319.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918319.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918320.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918320.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918320.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918321.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918321.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918321.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918322.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918322.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918322.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918323.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918323.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918323.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918324.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918324.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918324.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918325.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918325.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918325.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918326.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918326.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918326.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918327.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918327.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918327.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918328.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918328.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918328.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918329.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918329.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918329.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918330.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918330.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918330.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918331.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918331.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918331.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918332.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918332.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918332.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918333.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918333.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918333.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918334.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918334.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918334.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918335.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918335.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918335.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918336.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918336.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918336.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.104906753.1 = Hex-STRING: C0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.104906753.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.104906753.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.104972289.1 = Hex-STRING: C0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.104972289.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.104972289.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.105037825.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.105037825.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.105037825.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.105070593.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.105070593.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.105070593.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918273.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918273.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918273.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918274.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918274.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918274.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918275.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918275.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918275.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918276.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918276.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918276.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918277.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918277.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918277.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918278.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918278.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918278.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918279.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918279.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918279.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918280.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918280.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918280.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918281.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918281.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918281.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918282.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918282.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918282.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918283.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918283.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918283.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918284.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918284.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918284.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918285.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918285.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918285.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918286.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918286.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918286.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918287.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918287.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918287.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918288.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918288.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918288.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918289.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918289.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918289.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918290.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918290.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918290.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918291.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918291.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918291.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918292.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918292.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918292.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918293.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918293.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918293.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918294.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918294.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918294.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918295.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918295.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918295.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918296.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918296.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918296.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918297.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918297.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918297.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918298.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918298.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918298.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918299.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918299.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918299.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918300.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918300.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918300.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918301.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918301.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918301.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918302.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918302.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918302.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918303.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918303.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918303.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918304.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918304.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918304.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918305.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918305.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918305.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918306.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918306.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918306.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918307.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918307.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918307.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918308.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918308.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918308.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918309.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918309.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918309.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918310.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918310.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918310.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918311.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918311.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918311.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918312.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918312.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918312.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918313.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918313.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918313.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918314.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918314.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918314.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918315.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918315.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918315.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918316.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918316.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918316.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918317.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918317.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918317.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918318.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918318.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918318.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918319.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918319.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918319.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918320.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918320.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918320.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918321.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918321.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918321.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918322.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918322.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918322.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918323.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918323.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918323.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918324.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918324.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918324.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918325.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918325.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918325.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918326.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918326.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918326.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918327.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918327.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918327.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918328.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918328.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918328.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918329.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918329.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918329.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918330.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918330.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918330.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918331.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918331.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918331.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918332.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918332.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918332.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918333.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918333.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918333.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918334.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918334.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918334.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918335.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918335.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918335.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918336.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918336.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918336.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.104906753.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.104906753.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.104906753.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.104972289.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.104972289.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.104972289.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.105037825.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.105037825.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.105037825.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.105070593.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.105070593.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.105070593.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918273.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918273.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918273.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918274.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918274.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918274.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918275.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918275.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918275.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918276.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918276.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918276.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918277.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918277.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918277.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918278.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918278.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918278.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918279.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918279.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918279.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918280.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918280.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918280.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918281.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918281.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918281.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918282.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918282.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918282.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918283.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918283.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918283.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918284.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918284.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918284.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918285.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918285.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918285.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918286.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918286.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918286.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918287.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918287.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918287.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918288.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918288.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918288.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918289.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918289.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918289.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918290.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918290.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918290.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918291.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918291.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918291.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918292.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918292.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918292.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918293.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918293.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918293.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918294.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918294.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918294.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918295.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918295.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918295.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918296.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918296.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918296.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918297.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918297.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918297.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918298.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918298.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918298.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918299.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918299.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918299.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918300.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918300.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918300.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918301.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918301.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918301.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918302.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918302.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918302.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918303.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918303.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918303.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918304.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918304.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918304.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918305.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918305.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918305.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918306.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918306.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918306.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918307.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918307.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918307.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918308.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918308.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918308.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918309.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918309.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918309.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918310.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918310.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918310.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918311.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918311.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918311.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918312.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918312.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918312.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918313.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918313.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918313.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918314.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918314.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918314.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918315.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918315.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918315.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918316.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918316.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918316.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918317.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918317.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918317.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918318.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918318.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918318.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918319.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918319.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918319.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918320.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918320.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918320.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918321.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918321.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918321.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918322.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918322.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918322.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918323.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918323.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918323.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918324.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918324.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918324.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918325.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918325.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918325.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918326.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918326.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918326.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918327.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918327.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918327.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918328.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918328.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918328.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918329.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918329.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918329.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918330.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918330.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918330.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918331.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918331.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918331.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918332.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918332.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918332.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918333.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918333.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918333.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918334.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918334.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918334.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918335.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918335.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918335.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918336.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918336.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918336.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.104906753.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.104906753.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.104906753.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.104972289.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.104972289.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.104972289.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.105037825.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.105037825.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.105037825.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.105070593.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.105070593.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.105070593.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918273.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918273.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918273.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918274.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918274.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918274.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918275.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918275.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918275.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918276.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918276.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918276.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918277.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918277.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918277.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918278.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918278.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918278.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918279.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918279.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918279.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918280.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918280.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918280.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918281.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918281.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918281.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918282.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918282.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918282.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918283.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918283.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918283.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918284.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918284.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918284.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918285.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918285.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918285.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918286.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918286.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918286.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918287.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918287.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918287.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918288.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918288.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918288.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918289.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918289.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918289.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918290.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918290.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918290.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918291.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918291.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918291.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918292.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918292.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918292.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918293.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918293.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918293.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918294.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918294.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918294.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918295.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918295.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918295.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918296.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918296.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918296.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918297.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918297.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918297.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918298.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918298.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918298.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918299.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918299.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918299.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918300.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918300.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918300.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918301.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918301.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918301.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918302.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918302.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918302.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918303.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918303.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918303.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918304.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918304.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918304.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918305.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918305.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918305.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918306.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918306.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918306.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918307.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918307.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918307.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918308.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918308.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918308.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918309.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918309.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918309.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918310.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918310.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918310.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918311.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918311.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918311.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918312.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918312.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918312.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918313.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918313.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918313.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918314.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918314.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918314.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918315.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918315.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918315.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918316.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918316.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918316.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918317.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918317.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918317.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918318.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918318.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918318.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918319.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918319.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918319.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918320.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918320.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918320.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918321.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918321.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918321.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918322.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918322.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918322.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918323.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918323.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918323.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918324.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918324.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918324.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918325.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918325.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918325.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918326.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918326.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918326.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918327.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918327.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918327.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918328.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918328.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918328.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918329.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918329.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918329.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918330.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918330.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918330.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918331.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918331.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918331.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918332.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918332.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918332.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918333.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918333.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918333.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918334.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918334.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918334.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918335.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918335.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918335.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918336.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918336.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918336.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.1.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.1.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.2.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.2.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.3.0 = Hex-STRING: 0A 77 29 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.3.1 = Hex-STRING: 0A 77 4D 0F +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.7.1.2.1 = Hex-STRING: 01 80 C2 00 00 0E +.1.3.6.1.4.1.6527.3.1.2.59.1.7.1.2.2 = Hex-STRING: 01 80 C2 00 00 03 +.1.3.6.1.4.1.6527.3.1.2.59.1.7.1.2.3 = Hex-STRING: 01 80 C2 00 00 00 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.104906753.1 = Counter32: 316470 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.104972289.1 = Counter32: 172471 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.105037825.1 = Counter32: 196191 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.105070593.1 = Counter32: 196191 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918299.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.104906753.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.104972289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.105037825.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.105070593.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918299.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.104906753.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.104972289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.105037825.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.105070593.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918299.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.104906753.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.104972289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.105037825.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.105070593.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918299.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.104906753.1 = Counter32: 316474 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.104972289.1 = Counter32: 172472 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.105037825.1 = Counter32: 196188 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.105070593.1 = Counter32: 196186 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918299.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.104906753.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.104972289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.105037825.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.105070593.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918299.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.104906753.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.104972289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.105037825.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.105070593.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918299.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.104906753.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.104906753.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.104906753.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.104972289.1 = Gauge32: 1 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.104972289.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.104972289.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.105037825.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.105037825.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.105037825.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.105070593.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.105070593.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.105070593.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918273.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918273.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918273.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918274.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918274.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918274.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918275.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918275.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918275.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918276.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918276.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918276.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918277.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918277.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918277.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918278.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918278.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918278.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918279.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918279.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918279.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918280.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918280.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918280.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918281.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918281.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918281.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918282.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918282.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918282.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918283.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918283.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918283.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918284.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918284.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918284.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918285.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918285.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918285.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918286.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918286.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918286.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918287.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918287.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918287.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918288.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918288.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918288.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918289.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918289.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918289.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918290.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918290.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918290.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918291.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918291.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918291.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918292.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918292.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918292.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918293.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918293.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918293.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918294.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918294.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918294.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918295.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918295.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918295.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918296.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918296.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918296.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918297.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918297.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918297.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918298.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918298.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918298.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918299.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918299.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918299.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918300.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918300.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918300.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918301.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918301.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918301.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918302.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918302.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918302.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918303.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918303.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918303.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918304.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918304.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918304.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918305.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918305.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918305.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918306.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918306.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918306.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918307.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918307.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918307.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918308.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918308.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918308.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918309.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918309.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918309.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918310.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918310.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918310.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918311.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918311.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918311.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918312.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918312.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918312.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918313.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918313.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918313.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918314.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918314.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918314.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918315.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918315.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918315.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918316.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918316.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918316.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918317.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918317.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918317.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918318.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918318.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918318.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918319.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918319.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918319.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918320.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918320.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918320.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918321.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918321.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918321.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918322.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918322.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918322.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918323.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918323.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918323.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918324.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918324.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918324.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918325.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918325.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918325.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918326.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918326.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918326.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918327.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918327.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918327.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918328.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918328.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918328.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918329.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918329.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918329.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918330.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918330.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918330.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918331.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918331.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918331.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918332.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918332.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918332.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918333.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918333.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918333.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918334.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918334.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918334.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918335.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918335.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918335.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918336.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918336.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918336.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.104906753.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.104906753.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.104906753.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.104972289.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.104972289.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.104972289.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.105037825.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.105037825.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.105037825.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.105070593.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.105070593.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.105070593.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918273.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918273.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918273.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918274.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918274.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918274.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918275.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918275.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918275.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918276.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918276.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918276.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918277.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918277.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918277.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918278.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918278.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918278.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918279.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918279.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918279.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918280.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918280.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918280.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918281.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918281.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918281.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918282.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918282.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918282.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918283.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918283.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918283.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918284.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918284.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918284.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918285.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918285.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918285.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918286.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918286.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918286.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918287.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918287.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918287.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918288.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918288.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918288.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918289.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918289.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918289.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918290.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918290.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918290.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918291.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918291.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918291.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918292.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918292.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918292.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918293.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918293.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918293.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918294.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918294.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918294.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918295.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918295.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918295.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918296.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918296.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918296.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918297.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918297.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918297.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918298.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918298.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918298.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918299.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918299.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918299.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918300.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918300.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918300.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918301.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918301.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918301.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918302.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918302.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918302.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918303.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918303.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918303.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918304.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918304.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918304.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918305.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918305.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918305.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918306.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918306.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918306.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918307.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918307.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918307.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918308.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918308.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918308.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918309.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918309.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918309.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918310.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918310.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918310.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918311.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918311.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918311.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918312.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918312.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918312.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918313.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918313.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918313.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918314.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918314.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918314.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918315.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918315.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918315.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918316.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918316.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918316.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918317.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918317.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918317.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918318.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918318.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918318.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918319.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918319.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918319.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918320.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918320.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918320.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918321.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918321.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918321.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918322.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918322.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918322.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918323.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918323.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918323.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918324.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918324.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918324.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918325.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918325.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918325.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918326.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918326.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918326.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918327.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918327.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918327.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918328.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918328.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918328.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918329.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918329.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918329.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918330.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918330.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918330.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918331.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918331.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918331.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918332.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918332.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918332.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918333.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918333.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918333.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918334.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918334.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918334.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918335.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918335.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918335.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918336.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918336.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918336.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.104906753.1 = Hex-STRING: 06 40 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.104906753.2 = Hex-STRING: 06 40 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.104906753.3 = Hex-STRING: 06 40 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.104972289.1 = Hex-STRING: 06 41 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.104972289.2 = Hex-STRING: 06 41 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.104972289.3 = Hex-STRING: 06 41 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.105037825.1 = Hex-STRING: 06 42 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.105037825.2 = Hex-STRING: 06 42 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.105037825.3 = Hex-STRING: 06 42 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.105070593.1 = Hex-STRING: 06 43 40 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.105070593.2 = Hex-STRING: 06 43 40 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.105070593.3 = Hex-STRING: 06 43 40 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918273.1 = Hex-STRING: 44 01 08 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918273.2 = Hex-STRING: 44 01 08 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918273.3 = Hex-STRING: 44 01 08 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918274.1 = Hex-STRING: 44 01 08 02 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918274.2 = Hex-STRING: 44 01 08 02 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918274.3 = Hex-STRING: 44 01 08 02 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918275.1 = Hex-STRING: 44 01 08 03 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918275.2 = Hex-STRING: 44 01 08 03 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918275.3 = Hex-STRING: 44 01 08 03 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918276.1 = Hex-STRING: 44 01 08 04 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918276.2 = Hex-STRING: 44 01 08 04 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918276.3 = Hex-STRING: 44 01 08 04 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918277.1 = Hex-STRING: 44 01 08 05 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918277.2 = Hex-STRING: 44 01 08 05 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918277.3 = Hex-STRING: 44 01 08 05 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918278.1 = Hex-STRING: 44 01 08 06 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918278.2 = Hex-STRING: 44 01 08 06 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918278.3 = Hex-STRING: 44 01 08 06 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918279.1 = Hex-STRING: 44 01 08 07 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918279.2 = Hex-STRING: 44 01 08 07 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918279.3 = Hex-STRING: 44 01 08 07 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918280.1 = Hex-STRING: 44 01 08 08 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918280.2 = Hex-STRING: 44 01 08 08 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918280.3 = Hex-STRING: 44 01 08 08 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918281.1 = Hex-STRING: 44 01 08 09 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918281.2 = Hex-STRING: 44 01 08 09 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918281.3 = Hex-STRING: 44 01 08 09 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918282.1 = Hex-STRING: 44 01 08 0A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918282.2 = Hex-STRING: 44 01 08 0A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918282.3 = Hex-STRING: 44 01 08 0A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918283.1 = Hex-STRING: 44 01 08 0B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918283.2 = Hex-STRING: 44 01 08 0B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918283.3 = Hex-STRING: 44 01 08 0B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918284.1 = Hex-STRING: 44 01 08 0C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918284.2 = Hex-STRING: 44 01 08 0C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918284.3 = Hex-STRING: 44 01 08 0C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918285.1 = Hex-STRING: 44 01 08 0D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918285.2 = Hex-STRING: 44 01 08 0D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918285.3 = Hex-STRING: 44 01 08 0D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918286.1 = Hex-STRING: 44 01 08 0E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918286.2 = Hex-STRING: 44 01 08 0E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918286.3 = Hex-STRING: 44 01 08 0E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918287.1 = Hex-STRING: 44 01 08 0F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918287.2 = Hex-STRING: 44 01 08 0F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918287.3 = Hex-STRING: 44 01 08 0F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918288.1 = Hex-STRING: 44 01 08 10 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918288.2 = Hex-STRING: 44 01 08 10 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918288.3 = Hex-STRING: 44 01 08 10 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918289.1 = Hex-STRING: 44 01 08 11 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918289.2 = Hex-STRING: 44 01 08 11 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918289.3 = Hex-STRING: 44 01 08 11 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918290.1 = Hex-STRING: 44 01 08 12 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918290.2 = Hex-STRING: 44 01 08 12 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918290.3 = Hex-STRING: 44 01 08 12 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918291.1 = Hex-STRING: 44 01 08 13 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918291.2 = Hex-STRING: 44 01 08 13 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918291.3 = Hex-STRING: 44 01 08 13 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918292.1 = Hex-STRING: 44 01 08 14 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918292.2 = Hex-STRING: 44 01 08 14 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918292.3 = Hex-STRING: 44 01 08 14 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918293.1 = Hex-STRING: 44 01 08 15 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918293.2 = Hex-STRING: 44 01 08 15 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918293.3 = Hex-STRING: 44 01 08 15 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918294.1 = Hex-STRING: 44 01 08 16 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918294.2 = Hex-STRING: 44 01 08 16 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918294.3 = Hex-STRING: 44 01 08 16 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918295.1 = Hex-STRING: 44 01 08 17 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918295.2 = Hex-STRING: 44 01 08 17 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918295.3 = Hex-STRING: 44 01 08 17 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918296.1 = Hex-STRING: 44 01 08 18 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918296.2 = Hex-STRING: 44 01 08 18 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918296.3 = Hex-STRING: 44 01 08 18 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918297.1 = Hex-STRING: 44 01 08 19 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918297.2 = Hex-STRING: 44 01 08 19 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918297.3 = Hex-STRING: 44 01 08 19 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918298.1 = Hex-STRING: 44 01 08 1A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918298.2 = Hex-STRING: 44 01 08 1A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918298.3 = Hex-STRING: 44 01 08 1A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918299.1 = Hex-STRING: 44 01 08 1B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918299.2 = Hex-STRING: 44 01 08 1B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918299.3 = Hex-STRING: 44 01 08 1B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918300.1 = Hex-STRING: 44 01 08 1C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918300.2 = Hex-STRING: 44 01 08 1C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918300.3 = Hex-STRING: 44 01 08 1C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918301.1 = Hex-STRING: 44 01 08 1D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918301.2 = Hex-STRING: 44 01 08 1D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918301.3 = Hex-STRING: 44 01 08 1D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918302.1 = Hex-STRING: 44 01 08 1E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918302.2 = Hex-STRING: 44 01 08 1E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918302.3 = Hex-STRING: 44 01 08 1E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918303.1 = Hex-STRING: 44 01 08 1F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918303.2 = Hex-STRING: 44 01 08 1F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918303.3 = Hex-STRING: 44 01 08 1F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918304.1 = Hex-STRING: 44 01 08 20 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918304.2 = Hex-STRING: 44 01 08 20 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918304.3 = Hex-STRING: 44 01 08 20 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918305.1 = Hex-STRING: 44 01 08 21 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918305.2 = Hex-STRING: 44 01 08 21 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918305.3 = Hex-STRING: 44 01 08 21 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918306.1 = Hex-STRING: 44 01 08 22 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918306.2 = Hex-STRING: 44 01 08 22 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918306.3 = Hex-STRING: 44 01 08 22 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918307.1 = Hex-STRING: 44 01 08 23 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918307.2 = Hex-STRING: 44 01 08 23 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918307.3 = Hex-STRING: 44 01 08 23 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918308.1 = Hex-STRING: 44 01 08 24 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918308.2 = Hex-STRING: 44 01 08 24 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918308.3 = Hex-STRING: 44 01 08 24 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918309.1 = Hex-STRING: 44 01 08 25 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918309.2 = Hex-STRING: 44 01 08 25 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918309.3 = Hex-STRING: 44 01 08 25 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918310.1 = Hex-STRING: 44 01 08 26 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918310.2 = Hex-STRING: 44 01 08 26 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918310.3 = Hex-STRING: 44 01 08 26 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918311.1 = Hex-STRING: 44 01 08 27 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918311.2 = Hex-STRING: 44 01 08 27 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918311.3 = Hex-STRING: 44 01 08 27 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918312.1 = Hex-STRING: 44 01 08 28 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918312.2 = Hex-STRING: 44 01 08 28 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918312.3 = Hex-STRING: 44 01 08 28 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918313.1 = Hex-STRING: 44 01 08 29 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918313.2 = Hex-STRING: 44 01 08 29 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918313.3 = Hex-STRING: 44 01 08 29 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918314.1 = Hex-STRING: 44 01 08 2A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918314.2 = Hex-STRING: 44 01 08 2A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918314.3 = Hex-STRING: 44 01 08 2A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918315.1 = Hex-STRING: 44 01 08 2B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918315.2 = Hex-STRING: 44 01 08 2B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918315.3 = Hex-STRING: 44 01 08 2B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918316.1 = Hex-STRING: 44 01 08 2C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918316.2 = Hex-STRING: 44 01 08 2C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918316.3 = Hex-STRING: 44 01 08 2C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918317.1 = Hex-STRING: 44 01 08 2D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918317.2 = Hex-STRING: 44 01 08 2D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918317.3 = Hex-STRING: 44 01 08 2D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918318.1 = Hex-STRING: 44 01 08 2E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918318.2 = Hex-STRING: 44 01 08 2E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918318.3 = Hex-STRING: 44 01 08 2E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918319.1 = Hex-STRING: 44 01 08 2F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918319.2 = Hex-STRING: 44 01 08 2F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918319.3 = Hex-STRING: 44 01 08 2F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918320.1 = Hex-STRING: 44 01 08 30 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918320.2 = Hex-STRING: 44 01 08 30 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918320.3 = Hex-STRING: 44 01 08 30 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918321.1 = Hex-STRING: 44 01 08 31 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918321.2 = Hex-STRING: 44 01 08 31 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918321.3 = Hex-STRING: 44 01 08 31 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918322.1 = Hex-STRING: 44 01 08 32 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918322.2 = Hex-STRING: 44 01 08 32 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918322.3 = Hex-STRING: 44 01 08 32 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918323.1 = Hex-STRING: 44 01 08 33 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918323.2 = Hex-STRING: 44 01 08 33 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918323.3 = Hex-STRING: 44 01 08 33 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918324.1 = Hex-STRING: 44 01 08 34 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918324.2 = Hex-STRING: 44 01 08 34 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918324.3 = Hex-STRING: 44 01 08 34 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918325.1 = Hex-STRING: 44 01 08 35 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918325.2 = Hex-STRING: 44 01 08 35 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918325.3 = Hex-STRING: 44 01 08 35 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918326.1 = Hex-STRING: 44 01 08 36 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918326.2 = Hex-STRING: 44 01 08 36 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918326.3 = Hex-STRING: 44 01 08 36 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918327.1 = Hex-STRING: 44 01 08 37 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918327.2 = Hex-STRING: 44 01 08 37 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918327.3 = Hex-STRING: 44 01 08 37 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918328.1 = Hex-STRING: 44 01 08 38 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918328.2 = Hex-STRING: 44 01 08 38 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918328.3 = Hex-STRING: 44 01 08 38 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918329.1 = Hex-STRING: 44 01 08 39 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918329.2 = Hex-STRING: 44 01 08 39 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918329.3 = Hex-STRING: 44 01 08 39 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918330.1 = Hex-STRING: 44 01 08 3A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918330.2 = Hex-STRING: 44 01 08 3A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918330.3 = Hex-STRING: 44 01 08 3A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918331.1 = Hex-STRING: 44 01 08 3B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918331.2 = Hex-STRING: 44 01 08 3B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918331.3 = Hex-STRING: 44 01 08 3B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918332.1 = Hex-STRING: 44 01 08 3C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918332.2 = Hex-STRING: 44 01 08 3C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918332.3 = Hex-STRING: 44 01 08 3C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918333.1 = Hex-STRING: 44 01 08 3D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918333.2 = Hex-STRING: 44 01 08 3D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918333.3 = Hex-STRING: 44 01 08 3D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918334.1 = Hex-STRING: 44 01 08 3E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918334.2 = Hex-STRING: 44 01 08 3E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918334.3 = Hex-STRING: 44 01 08 3E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918335.1 = Hex-STRING: 44 01 08 3F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918335.2 = Hex-STRING: 44 01 08 3F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918335.3 = Hex-STRING: 44 01 08 3F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918336.1 = Hex-STRING: 44 01 08 40 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918336.2 = Hex-STRING: 44 01 08 40 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918336.3 = Hex-STRING: 44 01 08 40 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.104906753.1 = STRING: "3/2/c1/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.104906753.2 = STRING: "3/2/c1/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.104906753.3 = STRING: "3/2/c1/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.104972289.1 = STRING: "3/2/c3/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.104972289.2 = STRING: "3/2/c3/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.104972289.3 = STRING: "3/2/c3/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.105037825.1 = STRING: "3/2/c5/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.105037825.2 = STRING: "3/2/c5/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.105037825.3 = STRING: "3/2/c5/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.105070593.1 = STRING: "3/2/c6/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.105070593.2 = STRING: "3/2/c6/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.105070593.3 = STRING: "3/2/c6/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918273.1 = STRING: "esat-1/1/1, 1-Gig/10-Gig Ethernet, \"link-to-CNx\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918273.2 = STRING: "esat-1/1/1, 1-Gig/10-Gig Ethernet, \"link-to-CNx\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918273.3 = STRING: "esat-1/1/1, 1-Gig/10-Gig Ethernet, \"link-to-CNx\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918274.1 = STRING: "esat-1/1/2, 1-Gig/10-Gig Ethernet, \"\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918274.2 = STRING: "esat-1/1/2, 1-Gig/10-Gig Ethernet, \"\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918274.3 = STRING: "esat-1/1/2, 1-Gig/10-Gig Ethernet, \"\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918275.1 = STRING: "esat-1/1/3, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918275.2 = STRING: "esat-1/1/3, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918275.3 = STRING: "esat-1/1/3, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918276.1 = STRING: "esat-1/1/4, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918276.2 = STRING: "esat-1/1/4, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918276.3 = STRING: "esat-1/1/4, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918277.1 = STRING: "esat-1/1/5, 1-Gig/10-Gig Ethernet, \"to-SPf"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918277.2 = STRING: "esat-1/1/5, 1-Gig/10-Gig Ethernet, \"to-SPf"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918277.3 = STRING: "esat-1/1/5, 1-Gig/10-Gig Ethernet, \"to-SPf"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918278.1 = STRING: "esat-1/1/6, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918278.2 = STRING: "esat-1/1/6, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918278.3 = STRING: "esat-1/1/6, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918279.1 = STRING: "esat-1/1/7, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918279.2 = STRING: "esat-1/1/7, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918279.3 = STRING: "esat-1/1/7, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918280.1 = STRING: "esat-1/1/8, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918280.2 = STRING: "esat-1/1/8, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918280.3 = STRING: "esat-1/1/8, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918281.1 = STRING: "esat-1/1/9, 1-Gig/10-Gig Ethernet, \"to-gewDS"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918281.2 = STRING: "esat-1/1/9, 1-Gig/10-Gig Ethernet, \"to-gewDS"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918281.3 = STRING: "esat-1/1/9, 1-Gig/10-Gig Ethernet, \"to-gewDS"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918282.1 = STRING: "esat-1/1/10, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918282.2 = STRING: "esat-1/1/10, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918282.3 = STRING: "esat-1/1/10, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918283.1 = STRING: "esat-1/1/11, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918283.2 = STRING: "esat-1/1/11, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918283.3 = STRING: "esat-1/1/11, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918284.1 = STRING: "esat-1/1/12, 1-Gig/10-Gig Ethernet, \"to ZHBGO1Zsr001 1/1/8\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918284.2 = STRING: "esat-1/1/12, 1-Gig/10-Gig Ethernet, \"to ZHBGO1Zsr001 1/1/8\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918284.3 = STRING: "esat-1/1/12, 1-Gig/10-Gig Ethernet, \"to ZHBGO1Zsr001 1/1/8\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918285.1 = STRING: "esat-1/1/13, 1-Gig/10-Gig Ethernet, \"to efw not member of lag714 like in production\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918285.2 = STRING: "esat-1/1/13, 1-Gig/10-Gig Ethernet, \"to efw not member of lag714 like in production\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918285.3 = STRING: "esat-1/1/13, 1-Gig/10-Gig Ethernet, \"to efw not member of lag714 like in production\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918286.1 = STRING: "esat-1/1/14, 1-Gig/10-Gig Ethernet, \"to-efw"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918286.2 = STRING: "esat-1/1/14, 1-Gig/10-Gig Ethernet, \"to-efw"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918286.3 = STRING: "esat-1/1/14, 1-Gig/10-Gig Ethernet, \"to-efw"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918287.1 = STRING: "esat-1/1/15, 1-Gig/10-Gig Ethernet, \"to-few"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918287.2 = STRING: "esat-1/1/15, 1-Gig/10-Gig Ethernet, \"to-few"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918287.3 = STRING: "esat-1/1/15, 1-Gig/10-Gig Ethernet, \"to-few"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918288.1 = STRING: "esat-1/1/16, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918288.2 = STRING: "esat-1/1/16, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918288.3 = STRING: "esat-1/1/16, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918289.1 = STRING: "esat-1/1/17, 1-Gig/10-Gig Ethernet, \"link-to-CNx\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918289.2 = STRING: "esat-1/1/17, 1-Gig/10-Gig Ethernet, \"link-to-CNx\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918289.3 = STRING: "esat-1/1/17, 1-Gig/10-Gig Ethernet, \"link-to-CNx\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918290.1 = STRING: "esat-1/1/18, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918290.2 = STRING: "esat-1/1/18, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918290.3 = STRING: "esat-1/1/18, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918291.1 = STRING: "esat-1/1/19, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918291.2 = STRING: "esat-1/1/19, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918291.3 = STRING: "esat-1/1/19, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918292.1 = STRING: "esat-1/1/20, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918292.2 = STRING: "esat-1/1/20, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918292.3 = STRING: "esat-1/1/20, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918293.1 = STRING: "esat-1/1/21, 1-Gig/10-Gig Ethernet, \"to-gew"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918293.2 = STRING: "esat-1/1/21, 1-Gig/10-Gig Ethernet, \"to-gew"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918293.3 = STRING: "esat-1/1/21, 1-Gig/10-Gig Ethernet, \"to-gew"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918294.1 = STRING: "esat-1/1/22, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918294.2 = STRING: "esat-1/1/22, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918294.3 = STRING: "esat-1/1/22, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918295.1 = STRING: "esat-1/1/23, 1-Gig/10-Gig Ethernet, \"MGMT-GGW FDWSSs Gi0/11\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918295.2 = STRING: "esat-1/1/23, 1-Gig/10-Gig Ethernet, \"MGMT-GGW FDWSSs Gi0/11\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918295.3 = STRING: "esat-1/1/23, 1-Gig/10-Gig Ethernet, \"MGMT-GGW FDWSSs Gi0/11\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918296.1 = STRING: "esat-1/1/24, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918296.2 = STRING: "esat-1/1/24, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918296.3 = STRING: "esat-1/1/24, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918297.1 = STRING: "esat-1/1/25, 1-Gig/10-Gig Ethernet, \"to-GTH\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918297.2 = STRING: "esat-1/1/25, 1-Gig/10-Gig Ethernet, \"to-GTH\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918297.3 = STRING: "esat-1/1/25, 1-Gig/10-Gig Ethernet, \"to-GTH\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918298.1 = STRING: "esat-1/1/26, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918298.2 = STRING: "esat-1/1/26, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918298.3 = STRING: "esat-1/1/26, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918299.1 = STRING: "esat-1/1/27, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918299.2 = STRING: "esat-1/1/27, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918299.3 = STRING: "esat-1/1/27, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918300.1 = STRING: "esat-1/1/28, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918300.2 = STRING: "esat-1/1/28, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918300.3 = STRING: "esat-1/1/28, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918301.1 = STRING: "esat-1/1/29, 1-Gig/10-Gig Ethernet, \"to-efw\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918301.2 = STRING: "esat-1/1/29, 1-Gig/10-Gig Ethernet, \"to-efw\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918301.3 = STRING: "esat-1/1/29, 1-Gig/10-Gig Ethernet, \"to-efw\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918302.1 = STRING: "esat-1/1/30, 1-Gig/10-Gig Ethernet, \"to-efw"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918302.2 = STRING: "esat-1/1/30, 1-Gig/10-Gig Ethernet, \"to-efw"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918302.3 = STRING: "esat-1/1/30, 1-Gig/10-Gig Ethernet, \"to-efw"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918303.1 = STRING: "esat-1/1/31, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918303.2 = STRING: "esat-1/1/31, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918303.3 = STRING: "esat-1/1/31, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918304.1 = STRING: "esat-1/1/32, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918304.2 = STRING: "esat-1/1/32, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918304.3 = STRING: "esat-1/1/32, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918305.1 = STRING: "esat-1/1/33, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918305.2 = STRING: "esat-1/1/33, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918305.3 = STRING: "esat-1/1/33, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918306.1 = STRING: "esat-1/1/34, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918306.2 = STRING: "esat-1/1/34, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918306.3 = STRING: "esat-1/1/34, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918307.1 = STRING: "esat-1/1/35, 1-Gig/10-Gig Ethernet, \"link-to-HYE\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918307.2 = STRING: "esat-1/1/35, 1-Gig/10-Gig Ethernet, \"link-to-HYE\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918307.3 = STRING: "esat-1/1/35, 1-Gig/10-Gig Ethernet, \"link-to-HYE\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918308.1 = STRING: "esat-1/1/36, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918308.2 = STRING: "esat-1/1/36, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918308.3 = STRING: "esat-1/1/36, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918309.1 = STRING: "esat-1/1/37, 1-Gig/10-Gig Ethernet, \"to-RESS"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918309.2 = STRING: "esat-1/1/37, 1-Gig/10-Gig Ethernet, \"to-RESS"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918309.3 = STRING: "esat-1/1/37, 1-Gig/10-Gig Ethernet, \"to-RESS"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918310.1 = STRING: "esat-1/1/38, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918310.2 = STRING: "esat-1/1/38, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918310.3 = STRING: "esat-1/1/38, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918311.1 = STRING: "esat-1/1/39, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918311.2 = STRING: "esat-1/1/39, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918311.3 = STRING: "esat-1/1/39, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918312.1 = STRING: "esat-1/1/40, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918312.2 = STRING: "esat-1/1/40, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918312.3 = STRING: "esat-1/1/40, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918313.1 = STRING: "esat-1/1/41, 1-Gig/10-Gig Ethernet, \"to-HRR\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918313.2 = STRING: "esat-1/1/41, 1-Gig/10-Gig Ethernet, \"to-HRR\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918313.3 = STRING: "esat-1/1/41, 1-Gig/10-Gig Ethernet, \"to-HRR\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918314.1 = STRING: "esat-1/1/42, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918314.2 = STRING: "esat-1/1/42, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918314.3 = STRING: "esat-1/1/42, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918315.1 = STRING: "esat-1/1/43, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918315.2 = STRING: "esat-1/1/43, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918315.3 = STRING: "esat-1/1/43, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918316.1 = STRING: "esat-1/1/44, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918316.2 = STRING: "esat-1/1/44, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918316.3 = STRING: "esat-1/1/44, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918317.1 = STRING: "esat-1/1/45, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/4)"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918317.2 = STRING: "esat-1/1/45, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/4)"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918317.3 = STRING: "esat-1/1/45, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/4)"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918318.1 = STRING: "esat-1/1/46, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918318.2 = STRING: "esat-1/1/46, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918318.3 = STRING: "esat-1/1/46, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918319.1 = STRING: "esat-1/1/47, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/1)"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918319.2 = STRING: "esat-1/1/47, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/1)"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918319.3 = STRING: "esat-1/1/47, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/1)"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918320.1 = STRING: "esat-1/1/48, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918320.2 = STRING: "esat-1/1/48, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918320.3 = STRING: "esat-1/1/48, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918321.1 = STRING: "esat-1/1/49, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918321.2 = STRING: "esat-1/1/49, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918321.3 = STRING: "esat-1/1/49, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918322.1 = STRING: "esat-1/1/50, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918322.2 = STRING: "esat-1/1/50, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918322.3 = STRING: "esat-1/1/50, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918323.1 = STRING: "esat-1/1/51, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918323.2 = STRING: "esat-1/1/51, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918323.3 = STRING: "esat-1/1/51, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918324.1 = STRING: "esat-1/1/52, 1-Gig/10-Gig Ethernet, \"link-to-CNc\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918324.2 = STRING: "esat-1/1/52, 1-Gig/10-Gig Ethernet, \"link-to-CNc\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918324.3 = STRING: "esat-1/1/52, 1-Gig/10-Gig Ethernet, \"link-to-CNc\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918325.1 = STRING: "esat-1/1/53, 1-Gig/10-Gig Ethernet, \"to tbd"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918325.2 = STRING: "esat-1/1/53, 1-Gig/10-Gig Ethernet, \"to tbd"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918325.3 = STRING: "esat-1/1/53, 1-Gig/10-Gig Ethernet, \"to tbd"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918326.1 = STRING: "esat-1/1/54, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918326.2 = STRING: "esat-1/1/54, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918326.3 = STRING: "esat-1/1/54, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918327.1 = STRING: "esat-1/1/55, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918327.2 = STRING: "esat-1/1/55, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918327.3 = STRING: "esat-1/1/55, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918328.1 = STRING: "esat-1/1/56, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918328.2 = STRING: "esat-1/1/56, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918328.3 = STRING: "esat-1/1/56, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918329.1 = STRING: "esat-1/1/57, 1-Gig/10-Gig Ethernet, \"to-SPc"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918329.2 = STRING: "esat-1/1/57, 1-Gig/10-Gig Ethernet, \"to-SPc"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918329.3 = STRING: "esat-1/1/57, 1-Gig/10-Gig Ethernet, \"to-SPc"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918330.1 = STRING: "esat-1/1/58, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918330.2 = STRING: "esat-1/1/58, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918330.3 = STRING: "esat-1/1/58, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918331.1 = STRING: "esat-1/1/59, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918331.2 = STRING: "esat-1/1/59, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918331.3 = STRING: "esat-1/1/59, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918332.1 = STRING: "esat-1/1/60, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918332.2 = STRING: "esat-1/1/60, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918332.3 = STRING: "esat-1/1/60, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918333.1 = STRING: "esat-1/1/61, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/2)"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918333.2 = STRING: "esat-1/1/61, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/2)"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918333.3 = STRING: "esat-1/1/61, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/2)"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918334.1 = STRING: "esat-1/1/62, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918334.2 = STRING: "esat-1/1/62, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918334.3 = STRING: "esat-1/1/62, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918335.1 = STRING: "esat-1/1/63, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/3)"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918335.2 = STRING: "esat-1/1/63, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/3)"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918335.3 = STRING: "esat-1/1/63, 1-Gig/10-Gig Ethernet, \"to-SPb (deva|10GigabitEthernet3/3)"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918336.1 = STRING: "esat-1/1/64, 1-Gig/10-Gig Ethernet, \"PORT\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918336.2 = STRING: "esat-1/1/64, 1-Gig/10-Gig Ethernet, \"PORT\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918336.3 = STRING: "esat-1/1/64, 1-Gig/10-Gig Ethernet, \"PORT\"" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.4.44052.104906753.1.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.4.360894383.105037825.1.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.4.360898783.105070593.1.4 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.5.44052.104906753.1.1 = Hex-STRING: 50 E0 EF 00 06 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.5.360894383.105037825.1.3 = Hex-STRING: 24 21 24 DA F6 3F +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.5.360898783.105070593.1.4 = Hex-STRING: 24 21 24 DA F6 3F +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.6.44052.104906753.1.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.6.360894383.105037825.1.3 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.6.360898783.105070593.1.4 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.7.44052.104906753.1.1 = STRING: "35700737" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.7.360894383.105037825.1.3 = STRING: "3/2/c5/1" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.7.360898783.105070593.1.4 = STRING: "3/2/c6/1" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.8.44052.104906753.1.1 = STRING: "1/1/c1/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.8.360894383.105037825.1.3 = STRING: "3/2/c5/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.8.360898783.105070593.1.4 = STRING: "3/2/c6/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.9.44052.104906753.1.1 = STRING: "esat-1" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.9.360894383.105037825.1.3 = STRING: "ZHBGO1Zsr002" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.9.360898783.105070593.1.4 = STRING: "ZHBGO1Zsr002" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.10.44052.104906753.1.1 = "" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.10.360894383.105037825.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.10.360898783.105070593.1.4 = "" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.11.44052.104906753.1.1 = Hex-STRING: 00 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.11.360894383.105037825.1.3 = Hex-STRING: 28 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.11.360898783.105070593.1.4 = Hex-STRING: 28 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.12.44052.104906753.1.1 = Hex-STRING: 00 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.12.360894383.105037825.1.3 = Hex-STRING: 28 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.12.360898783.105070593.1.4 = Hex-STRING: 28 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.13.44052.104906753.1.1 = Counter64: 9494004 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.13.360894383.105037825.1.3 = Counter64: 5885501 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.13.360898783.105070593.1.4 = Counter64: 5885457 diff --git a/features/enlinkd/tests/src/test/resources/linkd/nms13593/srv002-walk.txt b/features/enlinkd/tests/src/test/resources/linkd/nms13593/srv002-walk.txt new file mode 100644 index 000000000000..a684c2cb4022 --- /dev/null +++ b/features/enlinkd/tests/src/test/resources/linkd/nms13593/srv002-walk.txt @@ -0,0 +1,7929 @@ +.1.0.8802.1.1.2.1.3.1.0 = INTEGER: 4 +.1.0.8802.1.1.2.1.3.2.0 = Hex-STRING: 24 21 24 DA F6 3F +.1.0.8802.1.1.2.1.3.3.0 = STRING: "ZHBGO1Zsr002" +.1.0.8802.1.1.2.1.3.4.0 = STRING: "TiMOS-C-20.10.R4 cpm/hops64 Nokia 7750 SR Copyright (c) 2000-2021 Nokia. All rights reserved. All use subject to applicable license agreements. Built on Wed Apr 14 12:34:25 PDT 2021 by builder in /builds/c/2010B/R4/panos/main/sros" +.1.0.8802.1.1.2.1.3.5.0 = Hex-STRING: 28 00 +.1.0.8802.1.1.2.1.3.6.0 = Hex-STRING: 28 00 +.1.0.8802.1.1.2.1.3.8.1.3.1.4.10.119.41.16 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.8.1.3.1.4.10.119.77.16 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.8.1.4.1.4.10.119.41.16 = INTEGER: 1 +.1.0.8802.1.1.2.1.3.8.1.4.1.4.10.119.77.16 = INTEGER: 2 +.1.0.8802.1.1.2.1.3.8.1.5.1.4.10.119.41.16 = INTEGER: 0 +.1.0.8802.1.1.2.1.3.8.1.5.1.4.10.119.77.16 = INTEGER: 1 +.1.0.8802.1.1.2.1.3.8.1.6.1.4.10.119.41.16 = OID: .1.3.6.1.4.1.6527.1.3.8 +.1.0.8802.1.1.2.1.3.8.1.6.1.4.10.119.77.16 = OID: .1.3.6.1.4.1.6527.1.3.8 +.1.3.6.1.2.1.1.1.0 = STRING: "TiMOS-C-20.10.R4 cpm/hops64 Nokia 7750 SR Copyright (c) 2000-2021 Nokia. All rights reserved. All use subject to applicable license agreements. Built on Wed Apr 14 12:34:25 PDT 2021 by builder in /builds/c/2010B/R4/panos/main/sros" +.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.6527.1.3.8 +.1.3.6.1.2.1.1.3.0 = Timeticks: (1018910217) 117 days, 22:18:22.17 +.1.3.6.1.2.1.1.4.0 = "" +.1.3.6.1.2.1.1.5.0 = STRING: "ZHBGO1Zsr002" +.1.3.6.1.2.1.1.6.0 = "" +.1.3.6.1.2.1.1.7.0 = INTEGER: 79 +.1.3.6.1.2.1.2.1.0 = INTEGER: 97 +.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3 +.1.3.6.1.2.1.2.2.1.1.104906752 = INTEGER: 104906752 +.1.3.6.1.2.1.2.2.1.1.104906753 = INTEGER: 104906753 +.1.3.6.1.2.1.2.2.1.1.104939520 = INTEGER: 104939520 +.1.3.6.1.2.1.2.2.1.1.104972288 = INTEGER: 104972288 +.1.3.6.1.2.1.2.2.1.1.104972289 = INTEGER: 104972289 +.1.3.6.1.2.1.2.2.1.1.105005056 = INTEGER: 105005056 +.1.3.6.1.2.1.2.2.1.1.105037824 = INTEGER: 105037824 +.1.3.6.1.2.1.2.2.1.1.105037825 = INTEGER: 105037825 +.1.3.6.1.2.1.2.2.1.1.105070592 = INTEGER: 105070592 +.1.3.6.1.2.1.2.2.1.1.105070593 = INTEGER: 105070593 +.1.3.6.1.2.1.2.2.1.1.335577088 = INTEGER: 335577088 +.1.3.6.1.2.1.2.2.1.1.335642624 = INTEGER: 335642624 +.1.3.6.1.2.1.2.2.1.1.335675392 = INTEGER: 335675392 +.1.3.6.1.2.1.2.2.1.1.369131520 = INTEGER: 369131520 +.1.3.6.1.2.1.2.2.1.1.369197056 = INTEGER: 369197056 +.1.3.6.1.2.1.2.2.1.1.369229824 = INTEGER: 369229824 +.1.3.6.1.2.1.2.2.1.1.1140918273 = INTEGER: 1140918273 +.1.3.6.1.2.1.2.2.1.1.1140918274 = INTEGER: 1140918274 +.1.3.6.1.2.1.2.2.1.1.1140918275 = INTEGER: 1140918275 +.1.3.6.1.2.1.2.2.1.1.1140918276 = INTEGER: 1140918276 +.1.3.6.1.2.1.2.2.1.1.1140918277 = INTEGER: 1140918277 +.1.3.6.1.2.1.2.2.1.1.1140918278 = INTEGER: 1140918278 +.1.3.6.1.2.1.2.2.1.1.1140918279 = INTEGER: 1140918279 +.1.3.6.1.2.1.2.2.1.1.1140918280 = INTEGER: 1140918280 +.1.3.6.1.2.1.2.2.1.1.1140918281 = INTEGER: 1140918281 +.1.3.6.1.2.1.2.2.1.1.1140918282 = INTEGER: 1140918282 +.1.3.6.1.2.1.2.2.1.1.1140918283 = INTEGER: 1140918283 +.1.3.6.1.2.1.2.2.1.1.1140918284 = INTEGER: 1140918284 +.1.3.6.1.2.1.2.2.1.1.1140918285 = INTEGER: 1140918285 +.1.3.6.1.2.1.2.2.1.1.1140918286 = INTEGER: 1140918286 +.1.3.6.1.2.1.2.2.1.1.1140918287 = INTEGER: 1140918287 +.1.3.6.1.2.1.2.2.1.1.1140918288 = INTEGER: 1140918288 +.1.3.6.1.2.1.2.2.1.1.1140918289 = INTEGER: 1140918289 +.1.3.6.1.2.1.2.2.1.1.1140918290 = INTEGER: 1140918290 +.1.3.6.1.2.1.2.2.1.1.1140918291 = INTEGER: 1140918291 +.1.3.6.1.2.1.2.2.1.1.1140918292 = INTEGER: 1140918292 +.1.3.6.1.2.1.2.2.1.1.1140918293 = INTEGER: 1140918293 +.1.3.6.1.2.1.2.2.1.1.1140918294 = INTEGER: 1140918294 +.1.3.6.1.2.1.2.2.1.1.1140918295 = INTEGER: 1140918295 +.1.3.6.1.2.1.2.2.1.1.1140918296 = INTEGER: 1140918296 +.1.3.6.1.2.1.2.2.1.1.1140918297 = INTEGER: 1140918297 +.1.3.6.1.2.1.2.2.1.1.1140918298 = INTEGER: 1140918298 +.1.3.6.1.2.1.2.2.1.1.1140918299 = INTEGER: 1140918299 +.1.3.6.1.2.1.2.2.1.1.1140918300 = INTEGER: 1140918300 +.1.3.6.1.2.1.2.2.1.1.1140918301 = INTEGER: 1140918301 +.1.3.6.1.2.1.2.2.1.1.1140918302 = INTEGER: 1140918302 +.1.3.6.1.2.1.2.2.1.1.1140918303 = INTEGER: 1140918303 +.1.3.6.1.2.1.2.2.1.1.1140918304 = INTEGER: 1140918304 +.1.3.6.1.2.1.2.2.1.1.1140918305 = INTEGER: 1140918305 +.1.3.6.1.2.1.2.2.1.1.1140918306 = INTEGER: 1140918306 +.1.3.6.1.2.1.2.2.1.1.1140918307 = INTEGER: 1140918307 +.1.3.6.1.2.1.2.2.1.1.1140918308 = INTEGER: 1140918308 +.1.3.6.1.2.1.2.2.1.1.1140918309 = INTEGER: 1140918309 +.1.3.6.1.2.1.2.2.1.1.1140918310 = INTEGER: 1140918310 +.1.3.6.1.2.1.2.2.1.1.1140918311 = INTEGER: 1140918311 +.1.3.6.1.2.1.2.2.1.1.1140918312 = INTEGER: 1140918312 +.1.3.6.1.2.1.2.2.1.1.1140918313 = INTEGER: 1140918313 +.1.3.6.1.2.1.2.2.1.1.1140918314 = INTEGER: 1140918314 +.1.3.6.1.2.1.2.2.1.1.1140918315 = INTEGER: 1140918315 +.1.3.6.1.2.1.2.2.1.1.1140918316 = INTEGER: 1140918316 +.1.3.6.1.2.1.2.2.1.1.1140918317 = INTEGER: 1140918317 +.1.3.6.1.2.1.2.2.1.1.1140918318 = INTEGER: 1140918318 +.1.3.6.1.2.1.2.2.1.1.1140918319 = INTEGER: 1140918319 +.1.3.6.1.2.1.2.2.1.1.1140918320 = INTEGER: 1140918320 +.1.3.6.1.2.1.2.2.1.1.1140918321 = INTEGER: 1140918321 +.1.3.6.1.2.1.2.2.1.1.1140918322 = INTEGER: 1140918322 +.1.3.6.1.2.1.2.2.1.1.1140918323 = INTEGER: 1140918323 +.1.3.6.1.2.1.2.2.1.1.1140918324 = INTEGER: 1140918324 +.1.3.6.1.2.1.2.2.1.1.1140918325 = INTEGER: 1140918325 +.1.3.6.1.2.1.2.2.1.1.1140918326 = INTEGER: 1140918326 +.1.3.6.1.2.1.2.2.1.1.1140918327 = INTEGER: 1140918327 +.1.3.6.1.2.1.2.2.1.1.1140918328 = INTEGER: 1140918328 +.1.3.6.1.2.1.2.2.1.1.1140918329 = INTEGER: 1140918329 +.1.3.6.1.2.1.2.2.1.1.1140918330 = INTEGER: 1140918330 +.1.3.6.1.2.1.2.2.1.1.1140918331 = INTEGER: 1140918331 +.1.3.6.1.2.1.2.2.1.1.1140918332 = INTEGER: 1140918332 +.1.3.6.1.2.1.2.2.1.1.1140918333 = INTEGER: 1140918333 +.1.3.6.1.2.1.2.2.1.1.1140918334 = INTEGER: 1140918334 +.1.3.6.1.2.1.2.2.1.1.1140918335 = INTEGER: 1140918335 +.1.3.6.1.2.1.2.2.1.1.1140918336 = INTEGER: 1140918336 +.1.3.6.1.2.1.2.2.1.1.1140940928 = INTEGER: 1140940928 +.1.3.6.1.2.1.2.2.1.1.1140941056 = INTEGER: 1140941056 +.1.3.6.1.2.1.2.2.1.1.1140941184 = INTEGER: 1140941184 +.1.3.6.1.2.1.2.2.1.1.1140941312 = INTEGER: 1140941312 +.1.3.6.1.2.1.2.2.1.1.1140973697 = INTEGER: 1140973697 +.1.3.6.1.2.1.2.2.1.1.1140973953 = INTEGER: 1140973953 +.1.3.6.1.2.1.2.2.1.1.1342177285 = INTEGER: 1342177285 +.1.3.6.1.2.1.2.2.1.1.1342177289 = INTEGER: 1342177289 +.1.3.6.1.2.1.2.2.1.1.1342177315 = INTEGER: 1342177315 +.1.3.6.1.2.1.2.2.1.1.1342177332 = INTEGER: 1342177332 +.1.3.6.1.2.1.2.2.1.1.1342177397 = INTEGER: 1342177397 +.1.3.6.1.2.1.2.2.1.1.1342177801 = INTEGER: 1342177801 +.1.3.6.1.2.1.2.2.1.1.1342177992 = INTEGER: 1342177992 +.1.3.6.1.2.1.2.2.1.1.1342177994 = INTEGER: 1342177994 +.1.3.6.1.2.1.2.2.1.2.1 = STRING: "system, Loopback IP interface" +.1.3.6.1.2.1.2.2.1.2.2 = STRING: "to_GGSSES-b, IP interface" +.1.3.6.1.2.1.2.2.1.2.3 = STRING: "to_GGSSES-p, IP interface" +.1.3.6.1.2.1.2.2.1.2.104906752 = STRING: "3/2/c1, IP interface, \"to--SAS-Sx--esat-1/1/65\"" +.1.3.6.1.2.1.2.2.1.2.104906753 = STRING: "3/2/c1/1, 100-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.104939520 = STRING: "3/2/c2, IP interface, \"QSFP28 Connector\"" +.1.3.6.1.2.1.2.2.1.2.104972288 = STRING: "3/2/c3, IP interface, \"to--SAS-Sx--esat-1/1/67\"" +.1.3.6.1.2.1.2.2.1.2.104972289 = STRING: "3/2/c3/1, 100-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.105005056 = STRING: "3/2/c4, IP interface, \"QSFP28 Connector\"" +.1.3.6.1.2.1.2.2.1.2.105037824 = STRING: "3/2/c5, IP interface, \"backup-link-to--JJJSss\"" +.1.3.6.1.2.1.2.2.1.2.105037825 = STRING: "3/2/c5/1, 100-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.105070592 = STRING: "3/2/c6, IP interface, \"active--link-to--JJJSss\"" +.1.3.6.1.2.1.2.2.1.2.105070593 = STRING: "3/2/c6/1, 100-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.335577088 = STRING: "A/1, 10/100 Ethernet TX" +.1.3.6.1.2.1.2.2.1.2.335642624 = STRING: "A/3, 10/100 Ethernet TX" +.1.3.6.1.2.1.2.2.1.2.335675392 = STRING: "A/4, 10/100 Ethernet TX" +.1.3.6.1.2.1.2.2.1.2.369131520 = STRING: "B/1, 10/100 Ethernet TX" +.1.3.6.1.2.1.2.2.1.2.369197056 = STRING: "B/3, 10/100 Ethernet TX" +.1.3.6.1.2.1.2.2.1.2.369229824 = STRING: "B/4, 10/100 Ethernet TX" +.1.3.6.1.2.1.2.2.1.2.1140918273 = STRING: "esat-1/1/1, 1-Gig/10-Gig Ethernet, \"link-to-dsaA\"" +.1.3.6.1.2.1.2.2.1.2.1140918274 = STRING: "esat-1/1/2, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918275 = STRING: "esat-1/1/3, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918276 = STRING: "esat-1/1/4, 1-Gig/10-Gig Ethernet, \"\"" +.1.3.6.1.2.1.2.2.1.2.1140918277 = STRING: "esat-1/1/5, 1-Gig/10-Gig Ethernet, \"to-QQXs\"" +.1.3.6.1.2.1.2.2.1.2.1140918278 = STRING: "esat-1/1/6, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918279 = STRING: "esat-1/1/7, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918280 = STRING: "esat-1/1/8, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918281 = STRING: "esat-1/1/9, 1-Gig/10-Gig Ethernet, \"to-HHYT "" +.1.3.6.1.2.1.2.2.1.2.1140918282 = STRING: "esat-1/1/10, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918283 = STRING: "esat-1/1/11, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918284 = STRING: "esat-1/1/12, 1-Gig/10-Gig Ethernet, \"to ZHBGO1Zsr002 1/1/8\"" +.1.3.6.1.2.1.2.2.1.2.1140918285 = STRING: "esat-1/1/13, 1-Gig/10-Gig Ethernet, \"to-SDfa "" +.1.3.6.1.2.1.2.2.1.2.1140918286 = STRING: "esat-1/1/14, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918287 = STRING: "esat-1/1/15, 1-Gig/10-Gig Ethernet, \"to-HDD "" +.1.3.6.1.2.1.2.2.1.2.1140918288 = STRING: "esat-1/1/16, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918289 = STRING: "esat-1/1/17, 1-Gig/10-Gig Ethernet, \"link-to-dsaA\"" +.1.3.6.1.2.1.2.2.1.2.1140918290 = STRING: "esat-1/1/18, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918291 = STRING: "esat-1/1/19, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918292 = STRING: "esat-1/1/20, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918293 = STRING: "esat-1/1/21, 1-Gig/10-Gig Ethernet, \"to-tEE "" +.1.3.6.1.2.1.2.2.1.2.1140918294 = STRING: "esat-1/1/22, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918295 = STRING: "esat-1/1/23, 1-Gig/10-Gig Ethernet, \"MGMT-dsds fsds Gi0/11\"" +.1.3.6.1.2.1.2.2.1.2.1140918296 = STRING: "esat-1/1/24, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918297 = STRING: "esat-1/1/25, 1-Gig/10-Gig Ethernet, \"to-Assd "" +.1.3.6.1.2.1.2.2.1.2.1140918298 = STRING: "esat-1/1/26, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918299 = STRING: "esat-1/1/27, 1-Gig/10-Gig Ethernet, \"to-sq342g4 1/1/c36/3 "" +.1.3.6.1.2.1.2.2.1.2.1140918300 = STRING: "esat-1/1/28, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918301 = STRING: "esat-1/1/29, 1-Gig/10-Gig Ethernet, \"to-SDfa "" +.1.3.6.1.2.1.2.2.1.2.1140918302 = STRING: "esat-1/1/30, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918303 = STRING: "esat-1/1/31, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918304 = STRING: "esat-1/1/32, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918305 = STRING: "esat-1/1/33, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918306 = STRING: "esat-1/1/34, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918307 = STRING: "esat-1/1/35, 1-Gig/10-Gig Ethernet, \"link-to-fdj\"" +.1.3.6.1.2.1.2.2.1.2.1140918308 = STRING: "esat-1/1/36, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918309 = STRING: "esat-1/1/37, 1-Gig/10-Gig Ethernet, \"to-55gs "" +.1.3.6.1.2.1.2.2.1.2.1140918310 = STRING: "esat-1/1/38, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918311 = STRING: "esat-1/1/39, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918312 = STRING: "esat-1/1/40, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918313 = STRING: "esat-1/1/41, 1-Gig/10-Gig Ethernet, \"to-w13 "" +.1.3.6.1.2.1.2.2.1.2.1140918314 = STRING: "esat-1/1/42, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918315 = STRING: "esat-1/1/43, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918316 = STRING: "esat-1/1/44, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918317 = STRING: "esat-1/1/45, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/4) "" +.1.3.6.1.2.1.2.2.1.2.1140918318 = STRING: "esat-1/1/46, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918319 = STRING: "esat-1/1/47, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/1) "" +.1.3.6.1.2.1.2.2.1.2.1140918320 = STRING: "esat-1/1/48, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918321 = STRING: "esat-1/1/49, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918322 = STRING: "esat-1/1/50, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918323 = STRING: "esat-1/1/51, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918324 = STRING: "esat-1/1/52, 1-Gig/10-Gig Ethernet, \"link-to-s43g\"" +.1.3.6.1.2.1.2.2.1.2.1140918325 = STRING: "esat-1/1/53, 1-Gig/10-Gig Ethernet, \"to "" +.1.3.6.1.2.1.2.2.1.2.1140918326 = STRING: "esat-1/1/54, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918327 = STRING: "esat-1/1/55, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918328 = STRING: "esat-1/1/56, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918329 = STRING: "esat-1/1/57, 1-Gig/10-Gig Ethernet, \"to-hf3-for-future-link\"" +.1.3.6.1.2.1.2.2.1.2.1140918330 = STRING: "esat-1/1/58, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918331 = STRING: "esat-1/1/59, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918332 = STRING: "esat-1/1/60, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918333 = STRING: "esat-1/1/61, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/2) "" +.1.3.6.1.2.1.2.2.1.2.1140918334 = STRING: "esat-1/1/62, 1-Gig/10-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140918335 = STRING: "esat-1/1/63, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/3) "" +.1.3.6.1.2.1.2.2.1.2.1140918336 = STRING: "esat-1/1/64, 1-Gig/10-Gig Ethernet, \"\"" +.1.3.6.1.2.1.2.2.1.2.1140940928 = STRING: "esat-1/1/c65, IP interface, \"SAS-Sx-port-1/1/c1/1\"" +.1.3.6.1.2.1.2.2.1.2.1140941056 = STRING: "esat-1/1/c66, IP interface, \"QSFP28 Connector\"" +.1.3.6.1.2.1.2.2.1.2.1140941184 = STRING: "esat-1/1/c67, IP interface, \"SAS-Sx-port-1/1/c3/1\"" +.1.3.6.1.2.1.2.2.1.2.1140941312 = STRING: "esat-1/1/c68, IP interface, \"QSFP28 Connector\"" +.1.3.6.1.2.1.2.2.1.2.1140973697 = STRING: "esat-1/1/c65/u1, 100-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1140973953 = STRING: "esat-1/1/c67/u1, 100-Gig Ethernet" +.1.3.6.1.2.1.2.2.1.2.1342177285 = STRING: "lag-5, LAG Group" +.1.3.6.1.2.1.2.2.1.2.1342177289 = STRING: "lag-9, LAG Group" +.1.3.6.1.2.1.2.2.1.2.1342177315 = STRING: "lag-35, LAG Group, \"to-fdj\"" +.1.3.6.1.2.1.2.2.1.2.1342177332 = STRING: "lag-52, LAG Group, \"lag-to-s43g\"" +.1.3.6.1.2.1.2.2.1.2.1342177397 = STRING: "lag-117, LAG Group" +.1.3.6.1.2.1.2.2.1.2.1342177801 = STRING: "lag-521, LAG Group, \"to-WAAAWw-lag521\"" +.1.3.6.1.2.1.2.2.1.2.1342177992 = STRING: "lag-712, LAG Group, \"to-st2\"" +.1.3.6.1.2.1.2.2.1.2.1342177994 = STRING: "lag-714, LAG Group, \"to-SDfa\"" +.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: 24 +.1.3.6.1.2.1.2.2.1.3.2 = INTEGER: 142 +.1.3.6.1.2.1.2.2.1.3.3 = INTEGER: 142 +.1.3.6.1.2.1.2.2.1.3.104906752 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.104906753 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.104939520 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.104972288 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.104972289 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.105005056 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.105037824 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.105037825 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.105070592 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.105070593 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.335577088 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.335642624 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.335675392 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.369131520 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.369197056 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.369229824 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918273 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918274 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918275 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918276 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918277 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918278 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918279 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918280 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918281 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918282 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918283 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918284 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918285 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918286 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918287 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918288 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918289 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918290 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918291 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918292 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918293 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918294 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918295 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918296 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918297 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918298 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918299 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918300 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918301 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918302 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918303 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918304 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918305 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918306 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918307 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918308 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918309 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918310 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918311 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918312 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918313 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918314 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918315 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918316 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918317 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918318 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918319 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918320 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918321 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918322 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918323 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918324 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918325 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918326 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918327 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918328 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918329 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918330 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918331 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918332 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918333 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918334 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918335 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140918336 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140940928 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.1140941056 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.1140941184 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.1140941312 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.3.1140973697 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1140973953 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1342177285 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177289 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177315 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177332 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177397 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177801 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177992 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1342177994 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.4.1 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.2 = INTEGER: 9198 +.1.3.6.1.2.1.2.2.1.4.3 = INTEGER: 9198 +.1.3.6.1.2.1.2.2.1.4.104906752 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.104906753 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.104939520 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.104972288 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.104972289 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.105005056 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.105037824 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.105037825 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.105070592 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.105070593 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.335577088 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.335642624 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.335675392 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.369131520 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.369197056 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.369229824 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.1140918273 = INTEGER: 1522 +.1.3.6.1.2.1.2.2.1.4.1140918274 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918275 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918276 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.1140918277 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918278 = INTEGER: 1522 +.1.3.6.1.2.1.2.2.1.4.1140918279 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918280 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918281 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918282 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918283 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918284 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918285 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918286 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918287 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918288 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918289 = INTEGER: 1522 +.1.3.6.1.2.1.2.2.1.4.1140918290 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918291 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918292 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918293 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918294 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918295 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918296 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918297 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918298 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918299 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918300 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918301 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918302 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918303 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918304 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918305 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918306 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918307 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918308 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918309 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918310 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918311 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918312 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918313 = INTEGER: 1576 +.1.3.6.1.2.1.2.2.1.4.1140918314 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918315 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918316 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918317 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918318 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918319 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918320 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918321 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918322 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918323 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918324 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918325 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918326 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918327 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918328 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918329 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918330 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918331 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918332 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918333 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918334 = INTEGER: 9208 +.1.3.6.1.2.1.2.2.1.4.1140918335 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1140918336 = INTEGER: 1514 +.1.3.6.1.2.1.2.2.1.4.1140940928 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1140941056 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1140941184 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1140941312 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1140973697 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1140973953 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1342177285 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1342177289 = INTEGER: 9212 +.1.3.6.1.2.1.2.2.1.4.1342177315 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1342177332 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1342177397 = INTEGER: 1522 +.1.3.6.1.2.1.2.2.1.4.1342177801 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1342177992 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.4.1342177994 = INTEGER: 1518 +.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.2 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.3 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.104906752 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.104906753 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.104939520 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.104972288 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.104972289 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.105005056 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.105037824 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.105037825 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.105070592 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.105070593 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.335577088 = Gauge32: 100000000 +.1.3.6.1.2.1.2.2.1.5.335642624 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.335675392 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.369131520 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.369197056 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.369229824 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1140918273 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918274 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918275 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918276 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918277 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918278 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918279 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918280 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918281 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918282 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918283 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918284 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918285 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918286 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918287 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918288 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918289 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918290 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918291 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918292 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918293 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918294 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918295 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918296 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918297 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918298 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918299 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918300 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918301 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918302 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918303 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918304 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918305 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918306 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918307 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918308 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918309 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918310 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918311 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918312 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918313 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918314 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918315 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918316 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918317 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918318 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918319 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918320 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918321 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918322 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918323 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918324 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918325 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918326 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918327 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918328 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918329 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140918330 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918331 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918332 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918333 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918334 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918335 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140918336 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1140940928 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140941056 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140941184 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140941312 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140973697 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1140973953 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1342177285 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1342177289 = Gauge32: 4294967295 +.1.3.6.1.2.1.2.2.1.5.1342177315 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1342177332 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1342177397 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1342177801 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1342177992 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1342177994 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.6.1 = Hex-STRING: 24 21 24 DA F6 3F +.1.3.6.1.2.1.2.2.1.6.2 = Hex-STRING: 24 21 24 DA F7 88 +.1.3.6.1.2.1.2.2.1.6.3 = Hex-STRING: 24 21 24 DA F7 84 +.1.3.6.1.2.1.2.2.1.6.104906752 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.104906753 = Hex-STRING: 24 21 24 77 4F 37 +.1.3.6.1.2.1.2.2.1.6.104939520 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.104972288 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.104972289 = hex-STRING: 24 21 24 77 4F 4B +.1.3.6.1.2.1.2.2.1.6.105005056 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.105037824 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.105037825 = Hex-STRING: 24 21 24 77 4F 5F +.1.3.6.1.2.1.2.2.1.6.105070592 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.105070593 = Hex-STRING: 24 21 24 77 4F 69 +.1.3.6.1.2.1.2.2.1.6.335577088 = Hex-STRING: 20 E0 9C DC 23 99 +.1.3.6.1.2.1.2.2.1.6.335642624 = Hex-STRING: 20 E0 9C DC 23 9B +.1.3.6.1.2.1.2.2.1.6.335675392 = Hex-STRING: 20 E0 9C DC 23 9A +.1.3.6.1.2.1.2.2.1.6.369131520 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.369197056 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.369229824 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.1140918273 = Hex-STRING: 50 E0 EF 00 50 02 +.1.3.6.1.2.1.2.2.1.6.1140918274 = Hex-STRING: 50 E0 EF 00 50 03 +.1.3.6.1.2.1.2.2.1.6.1140918275 = Hex-STRING: 50 E0 EF 00 50 04 +.1.3.6.1.2.1.2.2.1.6.1140918276 = Hex-STRING: 50 E0 EF 00 50 05 +.1.3.6.1.2.1.2.2.1.6.1140918277 = Hex-STRING: 50 E0 EF 00 50 06 +.1.3.6.1.2.1.2.2.1.6.1140918278 = Hex-STRING: 50 E0 EF 00 50 07 +.1.3.6.1.2.1.2.2.1.6.1140918279 = Hex-STRING: 50 E0 EF 00 50 08 +.1.3.6.1.2.1.2.2.1.6.1140918280 = Hex-STRING: 50 E0 EF 00 50 09 +.1.3.6.1.2.1.2.2.1.6.1140918281 = Hex-STRING: 50 E0 EF 00 50 0A +.1.3.6.1.2.1.2.2.1.6.1140918282 = Hex-STRING: 50 E0 EF 00 50 0B +.1.3.6.1.2.1.2.2.1.6.1140918283 = Hex-STRING: 50 E0 EF 00 50 0C +.1.3.6.1.2.1.2.2.1.6.1140918284 = Hex-STRING: 50 E0 EF 00 50 0D +.1.3.6.1.2.1.2.2.1.6.1140918285 = Hex-STRING: 50 E0 EF 00 50 0E +.1.3.6.1.2.1.2.2.1.6.1140918286 = Hex-STRING: 50 E0 EF 00 50 0F +.1.3.6.1.2.1.2.2.1.6.1140918287 = Hex-STRING: 50 E0 EF 00 50 10 +.1.3.6.1.2.1.2.2.1.6.1140918288 = Hex-STRING: 50 E0 EF 00 50 11 +.1.3.6.1.2.1.2.2.1.6.1140918289 = Hex-STRING: 50 E0 EF 00 50 12 +.1.3.6.1.2.1.2.2.1.6.1140918290 = Hex-STRING: 50 E0 EF 00 50 13 +.1.3.6.1.2.1.2.2.1.6.1140918291 = Hex-STRING: 50 E0 EF 00 50 14 +.1.3.6.1.2.1.2.2.1.6.1140918292 = Hex-STRING: 50 E0 EF 00 50 15 +.1.3.6.1.2.1.2.2.1.6.1140918293 = Hex-STRING: 50 E0 EF 00 50 16 +.1.3.6.1.2.1.2.2.1.6.1140918294 = Hex-STRING: 50 E0 EF 00 50 17 +.1.3.6.1.2.1.2.2.1.6.1140918295 = Hex-STRING: 50 E0 EF 00 50 18 +.1.3.6.1.2.1.2.2.1.6.1140918296 = Hex-STRING: 50 E0 EF 00 50 19 +.1.3.6.1.2.1.2.2.1.6.1140918297 = Hex-STRING: 50 E0 EF 00 50 1A +.1.3.6.1.2.1.2.2.1.6.1140918298 = Hex-STRING: 50 E0 EF 00 50 1B +.1.3.6.1.2.1.2.2.1.6.1140918299 = Hex-STRING: 50 E0 EF 00 50 1C +.1.3.6.1.2.1.2.2.1.6.1140918300 = Hex-STRING: 50 E0 EF 00 50 1D +.1.3.6.1.2.1.2.2.1.6.1140918301 = Hex-STRING: 50 E0 EF 00 50 1E +.1.3.6.1.2.1.2.2.1.6.1140918302 = Hex-STRING: 50 E0 EF 00 50 1F +.1.3.6.1.2.1.2.2.1.6.1140918303 = Hex-STRING: 50 E0 EF 00 50 20 +.1.3.6.1.2.1.2.2.1.6.1140918304 = Hex-STRING: 50 E0 EF 00 50 21 +.1.3.6.1.2.1.2.2.1.6.1140918305 = Hex-STRING: 50 E0 EF 00 50 22 +.1.3.6.1.2.1.2.2.1.6.1140918306 = Hex-STRING: 50 E0 EF 00 50 23 +.1.3.6.1.2.1.2.2.1.6.1140918307 = Hex-STRING: 50 E0 EF 00 50 24 +.1.3.6.1.2.1.2.2.1.6.1140918308 = Hex-STRING: 50 E0 EF 00 50 25 +.1.3.6.1.2.1.2.2.1.6.1140918309 = Hex-STRING: 6C 9C ED 1B 75 64 +.1.3.6.1.2.1.2.2.1.6.1140918310 = Hex-STRING: 50 E0 EF 00 50 27 +.1.3.6.1.2.1.2.2.1.6.1140918311 = Hex-STRING: 50 E0 EF 00 50 28 +.1.3.6.1.2.1.2.2.1.6.1140918312 = Hex-STRING: 50 E0 EF 00 50 29 +.1.3.6.1.2.1.2.2.1.6.1140918313 = Hex-STRING: 50 E0 EF 00 50 2A +.1.3.6.1.2.1.2.2.1.6.1140918314 = Hex-STRING: 50 E0 EF 00 50 2B +.1.3.6.1.2.1.2.2.1.6.1140918315 = Hex-STRING: 50 E0 EF 00 50 2C +.1.3.6.1.2.1.2.2.1.6.1140918316 = Hex-STRING: 50 E0 EF 00 50 2D +.1.3.6.1.2.1.2.2.1.6.1140918317 = Hex-STRING: 50 E0 EF 00 50 2E +.1.3.6.1.2.1.2.2.1.6.1140918318 = Hex-STRING: 50 E0 EF 00 50 2F +.1.3.6.1.2.1.2.2.1.6.1140918319 = Hex-STRING: 50 E0 EF 00 50 30 +.1.3.6.1.2.1.2.2.1.6.1140918320 = Hex-STRING: 50 E0 EF 00 50 31 +.1.3.6.1.2.1.2.2.1.6.1140918321 = Hex-STRING: 50 E0 EF 00 50 32 +.1.3.6.1.2.1.2.2.1.6.1140918322 = Hex-STRING: 50 E0 EF 00 50 33 +.1.3.6.1.2.1.2.2.1.6.1140918323 = Hex-STRING: 50 E0 EF 00 50 34 +.1.3.6.1.2.1.2.2.1.6.1140918324 = Hex-STRING: 50 E0 EF 00 50 35 +.1.3.6.1.2.1.2.2.1.6.1140918325 = Hex-STRING: 50 E0 EF 00 50 36 +.1.3.6.1.2.1.2.2.1.6.1140918326 = Hex-STRING: 50 E0 EF 00 50 37 +.1.3.6.1.2.1.2.2.1.6.1140918327 = Hex-STRING: 50 E0 EF 00 50 38 +.1.3.6.1.2.1.2.2.1.6.1140918328 = Hex-STRING: 50 E0 EF 00 50 39 +.1.3.6.1.2.1.2.2.1.6.1140918329 = Hex-STRING: 50 E0 EF 00 50 3A +.1.3.6.1.2.1.2.2.1.6.1140918330 = Hex-STRING: 50 E0 EF 00 50 3B +.1.3.6.1.2.1.2.2.1.6.1140918331 = Hex-STRING: 50 E0 EF 00 50 3C +.1.3.6.1.2.1.2.2.1.6.1140918332 = Hex-STRING: 50 E0 EF 00 50 3D +.1.3.6.1.2.1.2.2.1.6.1140918333 = Hex-STRING: 50 E0 EF 00 50 3E +.1.3.6.1.2.1.2.2.1.6.1140918334 = Hex-STRING: 50 E0 EF 00 50 3F +.1.3.6.1.2.1.2.2.1.6.1140918335 = Hex-STRING: 50 E0 EF 00 50 40 +.1.3.6.1.2.1.2.2.1.6.1140918336 = Hex-STRING: 50 E0 EF 00 50 41 +.1.3.6.1.2.1.2.2.1.6.1140940928 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.1140941056 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.1140941184 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.1140941312 = Hex-STRING: 00 00 00 00 00 00 +.1.3.6.1.2.1.2.2.1.6.1140973697 = Hex-STRING: 50 E0 EF 00 50 42 +.1.3.6.1.2.1.2.2.1.6.1140973953 = Hex-STRING: 50 E0 EF 00 50 44 +.1.3.6.1.2.1.2.2.1.6.1342177285 = Hex-STRING: 24 21 24 DA F7 84 +.1.3.6.1.2.1.2.2.1.6.1342177289 = Hex-STRING: 24 21 24 DA F7 88 +.1.3.6.1.2.1.2.2.1.6.1342177315 = Hex-STRING: 24 21 24 DA F7 A2 +.1.3.6.1.2.1.2.2.1.6.1342177332 = Hex-STRING: 24 21 24 DA F7 B3 +.1.3.6.1.2.1.2.2.1.6.1342177397 = Hex-STRING: 24 21 24 DA F7 F4 +.1.3.6.1.2.1.2.2.1.6.1342177801 = Hex-STRING: 24 21 24 DA F6 40 +.1.3.6.1.2.1.2.2.1.6.1342177992 = Hex-STRING: 24 21 24 DA F6 41 +.1.3.6.1.2.1.2.2.1.6.1342177994 = Hex-STRING: 24 21 24 DA F6 42 +.1.3.6.1.2.1.2.2.1.7.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.2 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.3 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.104906752 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.104906753 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.104939520 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.104972288 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.104972289 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.105005056 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.105037824 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.105037825 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.105070592 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.105070593 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.335577088 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.335642624 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.335675392 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.369131520 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.369197056 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.369229824 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918273 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918274 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918275 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918276 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918277 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918278 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918279 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918280 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918281 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918282 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918283 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918284 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918285 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918286 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918287 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918288 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918289 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918290 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918291 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918292 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918293 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918294 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918295 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918296 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918297 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918298 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918299 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918300 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918301 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918302 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918303 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918304 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918305 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918306 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918307 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918308 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918309 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918310 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918311 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918312 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918313 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918314 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918315 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918316 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918317 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918318 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918319 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918320 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918321 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918322 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918323 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918324 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918325 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918326 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918327 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918328 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918329 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918330 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918331 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918332 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918333 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918334 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140918335 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140918336 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140940928 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140941056 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140941184 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140941312 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.7.1140973697 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1140973953 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177285 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177289 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177315 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177332 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177397 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177801 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177992 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1342177994 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.2 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.3 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.104906752 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.104906753 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.104939520 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.104972288 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.104972289 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.105005056 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.105037824 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.105037825 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.105070592 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.105070593 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.335577088 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.335642624 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.335675392 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.369131520 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.369197056 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.369229824 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.1140918273 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918274 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918275 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918276 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918277 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918278 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918279 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918280 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918281 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918282 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918283 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918284 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1140918285 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918286 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918287 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918288 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918289 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918290 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918291 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918292 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918293 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918294 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918295 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918296 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918297 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918298 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918299 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1140918300 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918301 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918302 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918303 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918304 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918305 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918306 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918307 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918308 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918309 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918310 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918311 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918312 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918313 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1140918314 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918315 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918316 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918317 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918318 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918319 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918320 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918321 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918322 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918323 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918324 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918325 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918326 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918327 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918328 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918329 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1140918330 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918331 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918332 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918333 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918334 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918335 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140918336 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140940928 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1140941056 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140941184 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140941312 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1140973697 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1140973953 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.1342177285 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1342177289 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1342177315 = INTEGER: 7 +.1.3.6.1.2.1.2.2.1.8.1342177332 = INTEGER: 7 +.1.3.6.1.2.1.2.2.1.8.1342177397 = INTEGER: 7 +.1.3.6.1.2.1.2.2.1.8.1342177801 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1342177992 = INTEGER: 7 +.1.3.6.1.2.1.2.2.1.8.1342177994 = INTEGER: 7 +.1.3.6.1.2.1.2.2.1.9.1 = Timeticks: (245088) 0:40:50.88 +.1.3.6.1.2.1.2.2.1.9.2 = Timeticks: (69506821) 8 days, 1:04:28.21 +.1.3.6.1.2.1.2.2.1.9.3 = Timeticks: (69506790) 8 days, 1:04:27.90 +.1.3.6.1.2.1.2.2.1.9.104906752 = Timeticks: (242110) 0:40:21.10 +.1.3.6.1.2.1.2.2.1.9.104906753 = Timeticks: (273845) 0:45:38.45 +.1.3.6.1.2.1.2.2.1.9.104939520 = Timeticks: (238964) 0:39:49.64 +.1.3.6.1.2.1.2.2.1.9.104972288 = Timeticks: (586946481) 67 days, 22:24:24.81 +.1.3.6.1.2.1.2.2.1.9.104972289 = Timeticks: (586936957) 67 days, 22:22:49.57 +.1.3.6.1.2.1.2.2.1.9.105005056 = Timeticks: (238964) 0:39:49.64 +.1.3.6.1.2.1.2.2.1.9.105037824 = Timeticks: (242145) 0:40:21.45 +.1.3.6.1.2.1.2.2.1.9.105037825 = Timeticks: (69506821) 8 days, 1:04:28.21 +.1.3.6.1.2.1.2.2.1.9.105070592 = Timeticks: (242122) 0:40:21.22 +.1.3.6.1.2.1.2.2.1.9.105070593 = Timeticks: (69506790) 8 days, 1:04:27.90 +.1.3.6.1.2.1.2.2.1.9.335577088 = Timeticks: (132) 0:00:01.32 +.1.3.6.1.2.1.2.2.1.9.335642624 = Timeticks: (2) 0:00:00.02 +.1.3.6.1.2.1.2.2.1.9.335675392 = Timeticks: (132) 0:00:01.32 +.1.3.6.1.2.1.2.2.1.9.369131520 = Timeticks: (32) 0:00:00.32 +.1.3.6.1.2.1.2.2.1.9.369197056 = Timeticks: (32) 0:00:00.32 +.1.3.6.1.2.1.2.2.1.9.369229824 = Timeticks: (32) 0:00:00.32 +.1.3.6.1.2.1.2.2.1.9.1140918273 = Timeticks: (274717) 0:45:47.17 +.1.3.6.1.2.1.2.2.1.9.1140918274 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918275 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918276 = Timeticks: (274717) 0:45:47.17 +.1.3.6.1.2.1.2.2.1.9.1140918277 = Timeticks: (274717) 0:45:47.17 +.1.3.6.1.2.1.2.2.1.9.1140918278 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918279 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918280 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918281 = Timeticks: (274724) 0:45:47.24 +.1.3.6.1.2.1.2.2.1.9.1140918282 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918283 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918284 = Timeticks: (275601) 0:45:56.01 +.1.3.6.1.2.1.2.2.1.9.1140918285 = Timeticks: (274730) 0:45:47.30 +.1.3.6.1.2.1.2.2.1.9.1140918286 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918287 = Timeticks: (274732) 0:45:47.32 +.1.3.6.1.2.1.2.2.1.9.1140918288 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918289 = Timeticks: (274735) 0:45:47.35 +.1.3.6.1.2.1.2.2.1.9.1140918290 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918291 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918292 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918293 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918294 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918295 = Timeticks: (274750) 0:45:47.50 +.1.3.6.1.2.1.2.2.1.9.1140918296 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918297 = Timeticks: (274756) 0:45:47.56 +.1.3.6.1.2.1.2.2.1.9.1140918298 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918299 = Timeticks: (905362021) 104 days, 18:53:40.21 +.1.3.6.1.2.1.2.2.1.9.1140918300 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918301 = Timeticks: (274761) 0:45:47.61 +.1.3.6.1.2.1.2.2.1.9.1140918302 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918303 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918304 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918305 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918306 = Timeticks: (3894) 0:00:38.94 +.1.3.6.1.2.1.2.2.1.9.1140918307 = Timeticks: (274774) 0:45:47.74 +.1.3.6.1.2.1.2.2.1.9.1140918308 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918309 = Timeticks: (274780) 0:45:47.80 +.1.3.6.1.2.1.2.2.1.9.1140918310 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918311 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918312 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918313 = Timeticks: (587467117) 67 days, 23:51:11.17 +.1.3.6.1.2.1.2.2.1.9.1140918314 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918315 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918316 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918317 = Timeticks: (274790) 0:45:47.90 +.1.3.6.1.2.1.2.2.1.9.1140918318 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918319 = Timeticks: (274794) 0:45:47.94 +.1.3.6.1.2.1.2.2.1.9.1140918320 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918321 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918322 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918323 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918324 = Timeticks: (274801) 0:45:48.01 +.1.3.6.1.2.1.2.2.1.9.1140918325 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918326 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918327 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918328 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918329 = Timeticks: (535840792) 62 days, 0:26:47.92 +.1.3.6.1.2.1.2.2.1.9.1140918330 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918331 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918332 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918333 = Timeticks: (274815) 0:45:48.15 +.1.3.6.1.2.1.2.2.1.9.1140918334 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140918335 = Timeticks: (274818) 0:45:48.18 +.1.3.6.1.2.1.2.2.1.9.1140918336 = Timeticks: (274820) 0:45:48.20 +.1.3.6.1.2.1.2.2.1.9.1140940928 = Timeticks: (275522) 0:45:55.22 +.1.3.6.1.2.1.2.2.1.9.1140941056 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140941184 = Timeticks: (586936969) 67 days, 22:22:49.69 +.1.3.6.1.2.1.2.2.1.9.1140941312 = Timeticks: (3895) 0:00:38.95 +.1.3.6.1.2.1.2.2.1.9.1140973697 = Timeticks: (275522) 0:45:55.22 +.1.3.6.1.2.1.2.2.1.9.1140973953 = Timeticks: (586936957) 67 days, 22:22:49.57 +.1.3.6.1.2.1.2.2.1.9.1342177285 = Timeticks: (69506790) 8 days, 1:04:27.90 +.1.3.6.1.2.1.2.2.1.9.1342177289 = Timeticks: (69506821) 8 days, 1:04:28.21 +.1.3.6.1.2.1.2.2.1.9.1342177315 = Timeticks: (244957) 0:40:49.57 +.1.3.6.1.2.1.2.2.1.9.1342177332 = Timeticks: (244963) 0:40:49.63 +.1.3.6.1.2.1.2.2.1.9.1342177397 = Timeticks: (244969) 0:40:49.69 +.1.3.6.1.2.1.2.2.1.9.1342177801 = Timeticks: (275601) 0:45:56.01 +.1.3.6.1.2.1.2.2.1.9.1342177992 = Timeticks: (244984) 0:40:49.84 +.1.3.6.1.2.1.2.2.1.9.1342177994 = Timeticks: (244991) 0:40:49.91 +.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 2768348 +.1.3.6.1.2.1.2.2.1.10.2 = Counter32: 372965336 +.1.3.6.1.2.1.2.2.1.10.3 = Counter32: 451166786 +.1.3.6.1.2.1.2.2.1.10.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.104906753 = Counter32: 2869238153 +.1.3.6.1.2.1.2.2.1.10.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.104972289 = Counter32: 1279217902 +.1.3.6.1.2.1.2.2.1.10.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.105037825 = Counter32: 1351706095 +.1.3.6.1.2.1.2.2.1.10.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.105070593 = Counter32: 10254617 +.1.3.6.1.2.1.2.2.1.10.335577088 = Counter32: 864612649 +.1.3.6.1.2.1.2.2.1.10.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918284 = Counter32: 4058765788 +.1.3.6.1.2.1.2.2.1.10.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918299 = Counter32: 1639589202 +.1.3.6.1.2.1.2.2.1.10.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918313 = Counter32: 1287789154 +.1.3.6.1.2.1.2.2.1.10.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918329 = Counter32: 236934832 +.1.3.6.1.2.1.2.2.1.10.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1140973697 = Counter32: 3966326073 +.1.3.6.1.2.1.2.2.1.10.1140973953 = Counter32: 208598987 +.1.3.6.1.2.1.2.2.1.10.1342177285 = Counter32: 10254617 +.1.3.6.1.2.1.2.2.1.10.1342177289 = Counter32: 1351706095 +.1.3.6.1.2.1.2.2.1.10.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1342177801 = Counter32: 4058765788 +.1.3.6.1.2.1.2.2.1.10.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1 = Counter32: 19228 +.1.3.6.1.2.1.2.2.1.11.2 = Counter32: 4754858 +.1.3.6.1.2.1.2.2.1.11.3 = Counter32: 5466211 +.1.3.6.1.2.1.2.2.1.11.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.104906753 = Counter32: 1220632691 +.1.3.6.1.2.1.2.2.1.11.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.104972289 = Counter32: 552332 +.1.3.6.1.2.1.2.2.1.11.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.105037825 = Counter32: 1163349052 +.1.3.6.1.2.1.2.2.1.11.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.105070593 = Counter32: 1284178606 +.1.3.6.1.2.1.2.2.1.11.335577088 = Counter32: 2501523 +.1.3.6.1.2.1.2.2.1.11.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918284 = Counter32: 5063281 +.1.3.6.1.2.1.2.2.1.11.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918299 = Counter32: 7433747 +.1.3.6.1.2.1.2.2.1.11.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918313 = Counter32: 794521 +.1.3.6.1.2.1.2.2.1.11.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918329 = Counter32: 483058 +.1.3.6.1.2.1.2.2.1.11.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1140973697 = Counter32: 1825598218 +.1.3.6.1.2.1.2.2.1.11.1140973953 = Counter32: 19564 +.1.3.6.1.2.1.2.2.1.11.1342177285 = Counter32: 1284178606 +.1.3.6.1.2.1.2.2.1.11.1342177289 = Counter32: 1163349052 +.1.3.6.1.2.1.2.2.1.11.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1342177801 = Counter32: 5063281 +.1.3.6.1.2.1.2.2.1.11.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.2 = Counter32: 5 +.1.3.6.1.2.1.2.2.1.12.3 = Counter32: 16 +.1.3.6.1.2.1.2.2.1.12.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.104906753 = Counter32: 58343811 +.1.3.6.1.2.1.2.2.1.12.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.104972289 = Counter32: 15598758 +.1.3.6.1.2.1.2.2.1.12.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.105037825 = Counter32: 12132282 +.1.3.6.1.2.1.2.2.1.12.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.105070593 = Counter32: 11518545 +.1.3.6.1.2.1.2.2.1.12.335577088 = Counter32: 5435585 +.1.3.6.1.2.1.2.2.1.12.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918284 = Counter32: 41430245 +.1.3.6.1.2.1.2.2.1.12.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918299 = Counter32: 13619899 +.1.3.6.1.2.1.2.2.1.12.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918313 = Counter32: 15691966 +.1.3.6.1.2.1.2.2.1.12.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918329 = Counter32: 2665317 +.1.3.6.1.2.1.2.2.1.12.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1140973697 = Counter32: 155394702 +.1.3.6.1.2.1.2.2.1.12.1140973953 = Counter32: 3151379 +.1.3.6.1.2.1.2.2.1.12.1342177285 = Counter32: 11518546 +.1.3.6.1.2.1.2.2.1.12.1342177289 = Counter32: 12132283 +.1.3.6.1.2.1.2.2.1.12.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1342177801 = Counter32: 41430245 +.1.3.6.1.2.1.2.2.1.12.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.104906753 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.104972289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.105037825 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.105070593 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.335577088 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918284 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918313 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918329 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140973697 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1140973953 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177801 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.104906753 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.104972289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.105037825 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.105070593 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.335577088 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918284 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918313 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918329 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140973697 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1140973953 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177801 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.104906753 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.104972289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.105037825 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.105070593 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.335577088 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918284 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918313 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918329 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140973697 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1140973953 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177801 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.2 = Counter32: 4278570325 +.1.3.6.1.2.1.2.2.1.16.3 = Counter32: 2981379264 +.1.3.6.1.2.1.2.2.1.16.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.104906753 = Counter32: 3966504245 +.1.3.6.1.2.1.2.2.1.16.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.104972289 = Counter32: 208598987 +.1.3.6.1.2.1.2.2.1.16.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.105037825 = Counter32: 1313380231 +.1.3.6.1.2.1.2.2.1.16.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.105070593 = Counter32: 7972112 +.1.3.6.1.2.1.2.2.1.16.335577088 = Counter32: 878004885 +.1.3.6.1.2.1.2.2.1.16.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918284 = Counter32: 2417719355 +.1.3.6.1.2.1.2.2.1.16.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918299 = Counter32: 690672933 +.1.3.6.1.2.1.2.2.1.16.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918313 = Counter32: 26407021 +.1.3.6.1.2.1.2.2.1.16.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918329 = Counter32: 14421848 +.1.3.6.1.2.1.2.2.1.16.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1140973697 = Counter32: 2869288774 +.1.3.6.1.2.1.2.2.1.16.1140973953 = Counter32: 1279217902 +.1.3.6.1.2.1.2.2.1.16.1342177285 = Counter32: 7972112 +.1.3.6.1.2.1.2.2.1.16.1342177289 = Counter32: 1313380231 +.1.3.6.1.2.1.2.2.1.16.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1342177801 = Counter32: 2417719355 +.1.3.6.1.2.1.2.2.1.16.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.2 = Counter32: 1164472769 +.1.3.6.1.2.1.2.2.1.17.3 = Counter32: 1285304369 +.1.3.6.1.2.1.2.2.1.17.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.104906753 = Counter32: 1825598530 +.1.3.6.1.2.1.2.2.1.17.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.104972289 = Counter32: 19564 +.1.3.6.1.2.1.2.2.1.17.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.105037825 = Counter32: 1163359963 +.1.3.6.1.2.1.2.2.1.17.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.105070593 = Counter32: 1284189266 +.1.3.6.1.2.1.2.2.1.17.335577088 = Counter32: 3891996 +.1.3.6.1.2.1.2.2.1.17.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918284 = Counter32: 7439426 +.1.3.6.1.2.1.2.2.1.17.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918299 = Counter32: 5044426 +.1.3.6.1.2.1.2.2.1.17.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918313 = Counter32: 312854 +.1.3.6.1.2.1.2.2.1.17.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918329 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1140973697 = Counter32: 1220632430 +.1.3.6.1.2.1.2.2.1.17.1140973953 = Counter32: 552332 +.1.3.6.1.2.1.2.2.1.17.1342177285 = Counter32: 1284189266 +.1.3.6.1.2.1.2.2.1.17.1342177289 = Counter32: 1163359963 +.1.3.6.1.2.1.2.2.1.17.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1342177801 = Counter32: 7439426 +.1.3.6.1.2.1.2.2.1.17.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.104906753 = Counter32: 155394741 +.1.3.6.1.2.1.2.2.1.18.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.104972289 = Counter32: 3151379 +.1.3.6.1.2.1.2.2.1.18.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.105037825 = Counter32: 11621740 +.1.3.6.1.2.1.2.2.1.18.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.105070593 = Counter32: 11495620 +.1.3.6.1.2.1.2.2.1.18.335577088 = Counter32: 4982 +.1.3.6.1.2.1.2.2.1.18.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918284 = Counter32: 149277184 +.1.3.6.1.2.1.2.2.1.18.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918299 = Counter32: 495156 +.1.3.6.1.2.1.2.2.1.18.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918313 = Counter32: 37 +.1.3.6.1.2.1.2.2.1.18.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918329 = Counter32: 212086 +.1.3.6.1.2.1.2.2.1.18.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1140973697 = Counter32: 58343784 +.1.3.6.1.2.1.2.2.1.18.1140973953 = Counter32: 15598758 +.1.3.6.1.2.1.2.2.1.18.1342177285 = Counter32: 11495620 +.1.3.6.1.2.1.2.2.1.18.1342177289 = Counter32: 11621740 +.1.3.6.1.2.1.2.2.1.18.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1342177801 = Counter32: 149277184 +.1.3.6.1.2.1.2.2.1.18.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.104906753 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.104972289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.105037825 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.105070593 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.335577088 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918284 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918313 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918329 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140973697 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1140973953 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177801 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.2 = Counter32: 8 +.1.3.6.1.2.1.2.2.1.20.3 = Counter32: 57 +.1.3.6.1.2.1.2.2.1.20.104906752 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.104906753 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.104939520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.104972288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.104972289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.105005056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.105037824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.105037825 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.105070592 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.105070593 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.335577088 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.335642624 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.335675392 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.369131520 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.369197056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.369229824 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918273 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918274 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918275 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918276 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918277 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918278 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918279 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918280 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918281 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918282 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918283 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918284 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918286 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918287 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918288 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918290 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918291 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918292 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918293 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918294 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918295 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918296 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918297 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918298 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918299 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918300 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918301 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918302 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918303 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918304 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918305 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918306 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918307 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918308 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918309 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918310 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918311 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918313 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918314 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918316 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918317 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918318 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918319 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918320 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918321 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918322 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918323 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918324 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918325 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918326 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918327 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918328 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918329 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918330 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918331 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918333 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918334 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918335 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140918336 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140940928 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140941056 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140941184 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140941312 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140973697 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1140973953 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177285 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177289 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177315 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177332 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177397 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177801 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177992 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1342177994 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.21.1 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.2 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.3 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.104906752 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.104906753 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.104939520 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.104972288 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.104972289 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.105005056 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.105037824 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.105037825 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.105070592 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.105070593 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.335577088 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.335642624 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.335675392 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.369131520 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.369197056 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.369229824 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918273 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918274 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918275 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918276 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918277 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918278 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918279 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918280 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918281 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918282 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918283 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918284 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918285 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918286 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918287 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918288 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918289 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918290 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918291 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918292 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918293 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918294 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918295 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918296 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918297 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918298 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918299 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918300 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918301 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918302 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918303 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918304 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918305 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918306 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918307 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918308 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918309 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918310 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918311 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918312 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918313 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918314 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918315 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918316 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918317 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918318 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918319 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918320 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918321 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918322 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918323 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918324 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918325 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918326 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918327 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918328 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918329 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918330 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918331 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918332 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918333 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918334 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918335 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140918336 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140940928 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140941056 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140941184 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140941312 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140973697 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1140973953 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177285 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177289 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177315 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177332 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177397 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177801 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177992 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.1342177994 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.22.1 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.2 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.3 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.104906752 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.104906753 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.104939520 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.104972288 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.104972289 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.105005056 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.105037824 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.105037825 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.105070592 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.105070593 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.335577088 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.335642624 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.335675392 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.369131520 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.369197056 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.369229824 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918273 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918274 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918275 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918276 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918277 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918278 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918279 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918280 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918281 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918282 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918283 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918284 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918285 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918286 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918287 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918288 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918289 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918290 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918291 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918292 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918293 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918294 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918295 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918296 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918297 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918298 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918299 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918300 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918301 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918302 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918303 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918304 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918305 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918306 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918307 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918308 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918309 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918310 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918311 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918312 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918313 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918314 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918315 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918316 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918317 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918318 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918319 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918320 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918321 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918322 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918323 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918324 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918325 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918326 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918327 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918328 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918329 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918330 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918331 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918332 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918333 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918334 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918335 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140918336 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140940928 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140941056 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140941184 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140941312 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140973697 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1140973953 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177285 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177289 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177315 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177332 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177397 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177801 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177992 = OID: ccitt.0 +.1.3.6.1.2.1.2.2.1.22.1342177994 = OID: ccitt.0 +.1.3.6.1.2.1.31.1.1.1.1.1 = STRING: "lo0" +.1.3.6.1.2.1.31.1.1.1.1.104906753 = STRING: "3/2/c1/1" +.1.3.6.1.2.1.31.1.1.1.1.105037825 = STRING: "3/2/c5/1" +.1.3.6.1.2.1.31.1.1.1.1.105070593 = STRING: "3/2/c6/1" +.1.3.6.1.2.1.31.1.1.1.18.1 = STRING: "" +.1.3.6.1.2.1.31.1.1.1.18.104906753 = STRING: "" +.1.3.6.1.2.1.31.1.1.1.18.105037825 = STRING: "" +.1.3.6.1.2.1.31.1.1.1.18.105070593 = STRING: "" +.1.3.6.1.4.1.6527.3.1.2.59.1.1.0 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.3.0 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.4.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.104906753.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.104906753.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.104906753.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.104972289.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.104972289.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.104972289.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.105037825.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.105037825.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.105037825.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.105070593.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.105070593.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.105070593.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918273.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918273.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918273.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918274.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918274.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918274.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918275.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918275.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918275.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918276.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918276.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918276.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918277.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918277.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918277.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918278.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918278.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918278.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918279.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918279.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918279.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918280.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918280.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918280.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918281.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918281.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918281.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918282.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918282.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918282.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918283.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918283.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918283.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918284.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918284.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918284.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918285.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918285.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918285.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918286.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918286.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918286.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918287.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918287.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918287.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918288.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918288.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918288.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918289.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918289.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918289.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918290.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918290.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918290.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918291.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918291.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918291.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918292.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918292.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918292.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918293.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918293.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918293.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918294.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918294.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918294.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918295.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918295.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918295.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918296.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918296.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918296.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918297.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918297.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918297.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918298.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918298.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918298.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918299.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918299.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918299.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918300.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918300.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918300.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918301.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918301.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918301.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918302.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918302.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918302.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918303.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918303.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918303.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918304.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918304.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918304.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918305.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918305.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918305.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918306.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918306.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918306.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918307.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918307.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918307.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918308.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918308.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918308.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918309.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918309.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918309.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918310.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918310.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918310.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918311.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918311.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918311.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918312.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918312.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918312.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918313.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918313.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918313.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918314.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918314.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918314.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918315.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918315.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918315.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918316.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918316.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918316.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918317.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918317.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918317.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918318.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918318.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918318.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918319.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918319.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918319.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918320.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918320.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918320.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918321.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918321.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918321.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918322.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918322.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918322.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918323.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918323.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918323.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918324.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918324.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918324.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918325.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918325.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918325.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918326.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918326.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918326.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918327.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918327.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918327.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918328.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918328.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918328.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918329.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918329.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918329.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918330.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918330.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918330.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918331.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918331.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918331.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918332.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918332.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918332.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918333.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918333.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918333.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918334.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918334.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918334.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918335.1 = INTEGER: 3 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918335.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918335.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918336.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918336.2 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.2.1140918336.3 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.104906753.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.104906753.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.104906753.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.104972289.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.104972289.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.104972289.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.105037825.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.105037825.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.105037825.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.105070593.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.105070593.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.105070593.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918273.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918273.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918273.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918274.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918274.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918274.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918275.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918275.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918275.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918276.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918276.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918276.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918277.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918277.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918277.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918278.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918278.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918278.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918279.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918279.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918279.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918280.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918280.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918280.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918281.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918281.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918281.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918282.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918282.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918282.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918283.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918283.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918283.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918284.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918284.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918284.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918285.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918285.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918285.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918286.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918286.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918286.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918287.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918287.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918287.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918288.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918288.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918288.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918289.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918289.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918289.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918290.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918290.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918290.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918291.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918291.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918291.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918292.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918292.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918292.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918293.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918293.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918293.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918294.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918294.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918294.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918295.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918295.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918295.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918296.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918296.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918296.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918297.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918297.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918297.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918298.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918298.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918298.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918299.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918299.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918299.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918300.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918300.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918300.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918301.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918301.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918301.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918302.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918302.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918302.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918303.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918303.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918303.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918304.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918304.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918304.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918305.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918305.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918305.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918306.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918306.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918306.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918307.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918307.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918307.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918308.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918308.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918308.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918309.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918309.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918309.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918310.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918310.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918310.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918311.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918311.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918311.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918312.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918312.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918312.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918313.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918313.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918313.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918314.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918314.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918314.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918315.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918315.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918315.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918316.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918316.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918316.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918317.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918317.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918317.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918318.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918318.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918318.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918319.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918319.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918319.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918320.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918320.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918320.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918321.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918321.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918321.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918322.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918322.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918322.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918323.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918323.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918323.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918324.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918324.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918324.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918325.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918325.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918325.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918326.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918326.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918326.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918327.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918327.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918327.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918328.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918328.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918328.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918329.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918329.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918329.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918330.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918330.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918330.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918331.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918331.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918331.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918332.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918332.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918332.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918333.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918333.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918333.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918334.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918334.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918334.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918335.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918335.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918335.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918336.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918336.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.3.1140918336.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.104906753.1 = Hex-STRING: C0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.104906753.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.104906753.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.104972289.1 = Hex-STRING: C0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.104972289.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.104972289.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.105037825.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.105037825.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.105037825.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.105070593.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.105070593.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.105070593.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918273.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918273.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918273.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918274.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918274.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918274.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918275.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918275.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918275.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918276.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918276.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918276.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918277.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918277.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918277.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918278.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918278.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918278.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918279.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918279.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918279.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918280.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918280.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918280.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918281.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918281.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918281.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918282.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918282.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918282.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918283.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918283.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918283.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918284.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918284.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918284.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918285.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918285.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918285.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918286.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918286.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918286.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918287.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918287.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918287.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918288.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918288.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918288.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918289.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918289.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918289.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918290.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918290.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918290.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918291.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918291.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918291.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918292.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918292.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918292.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918293.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918293.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918293.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918294.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918294.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918294.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918295.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918295.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918295.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918296.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918296.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918296.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918297.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918297.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918297.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918298.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918298.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918298.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918299.1 = Hex-STRING: F0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918299.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918299.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918300.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918300.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918300.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918301.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918301.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918301.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918302.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918302.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918302.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918303.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918303.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918303.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918304.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918304.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918304.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918305.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918305.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918305.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918306.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918306.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918306.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918307.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918307.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918307.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918308.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918308.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918308.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918309.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918309.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918309.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918310.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918310.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918310.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918311.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918311.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918311.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918312.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918312.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918312.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918313.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918313.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918313.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918314.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918314.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918314.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918315.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918315.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918315.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918316.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918316.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918316.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918317.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918317.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918317.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918318.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918318.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918318.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918319.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918319.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918319.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918320.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918320.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918320.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918321.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918321.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918321.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918322.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918322.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918322.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918323.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918323.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918323.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918324.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918324.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918324.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918325.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918325.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918325.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918326.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918326.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918326.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918327.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918327.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918327.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918328.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918328.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918328.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918329.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918329.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918329.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918330.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918330.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918330.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918331.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918331.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918331.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918332.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918332.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918332.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918333.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918333.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918333.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918334.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918334.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918334.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918335.1 = Hex-STRING: D0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918335.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918335.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918336.1 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918336.2 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.4.1140918336.3 = Hex-STRING: 00 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.104906753.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.104906753.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.104906753.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.104972289.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.104972289.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.104972289.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.105037825.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.105037825.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.105037825.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.105070593.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.105070593.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.105070593.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918273.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918273.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918273.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918274.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918274.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918274.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918275.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918275.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918275.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918276.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918276.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918276.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918277.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918277.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918277.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918278.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918278.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918278.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918279.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918279.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918279.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918280.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918280.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918280.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918281.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918281.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918281.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918282.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918282.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918282.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918283.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918283.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918283.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918284.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918284.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918284.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918285.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918285.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918285.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918286.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918286.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918286.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918287.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918287.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918287.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918288.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918288.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918288.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918289.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918289.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918289.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918290.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918290.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918290.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918291.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918291.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918291.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918292.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918292.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918292.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918293.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918293.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918293.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918294.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918294.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918294.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918295.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918295.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918295.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918296.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918296.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918296.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918297.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918297.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918297.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918298.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918298.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918298.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918299.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918299.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918299.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918300.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918300.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918300.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918301.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918301.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918301.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918302.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918302.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918302.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918303.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918303.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918303.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918304.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918304.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918304.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918305.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918305.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918305.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918306.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918306.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918306.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918307.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918307.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918307.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918308.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918308.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918308.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918309.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918309.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918309.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918310.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918310.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918310.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918311.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918311.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918311.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918312.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918312.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918312.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918313.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918313.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918313.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918314.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918314.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918314.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918315.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918315.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918315.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918316.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918316.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918316.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918317.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918317.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918317.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918318.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918318.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918318.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918319.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918319.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918319.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918320.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918320.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918320.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918321.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918321.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918321.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918322.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918322.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918322.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918323.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918323.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918323.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918324.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918324.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918324.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918325.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918325.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918325.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918326.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918326.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918326.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918327.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918327.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918327.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918328.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918328.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918328.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918329.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918329.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918329.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918330.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918330.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918330.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918331.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918331.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918331.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918332.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918332.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918332.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918333.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918333.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918333.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918334.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918334.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918334.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918335.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918335.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918335.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918336.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918336.2 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.5.1140918336.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.104906753.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.104906753.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.104906753.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.104972289.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.104972289.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.104972289.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.105037825.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.105037825.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.105037825.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.105070593.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.105070593.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.105070593.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918273.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918273.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918273.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918274.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918274.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918274.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918275.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918275.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918275.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918276.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918276.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918276.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918277.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918277.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918277.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918278.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918278.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918278.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918279.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918279.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918279.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918280.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918280.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918280.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918281.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918281.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918281.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918282.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918282.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918282.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918283.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918283.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918283.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918284.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918284.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918284.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918285.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918285.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918285.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918286.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918286.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918286.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918287.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918287.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918287.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918288.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918288.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918288.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918289.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918289.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918289.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918290.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918290.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918290.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918291.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918291.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918291.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918292.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918292.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918292.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918293.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918293.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918293.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918294.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918294.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918294.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918295.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918295.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918295.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918296.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918296.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918296.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918297.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918297.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918297.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918298.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918298.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918298.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918299.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918299.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918299.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918300.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918300.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918300.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918301.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918301.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918301.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918302.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918302.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918302.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918303.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918303.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918303.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918304.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918304.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918304.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918305.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918305.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918305.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918306.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918306.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918306.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918307.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918307.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918307.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918308.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918308.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918308.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918309.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918309.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918309.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918310.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918310.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918310.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918311.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918311.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918311.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918312.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918312.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918312.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918313.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918313.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918313.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918314.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918314.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918314.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918315.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918315.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918315.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918316.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918316.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918316.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918317.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918317.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918317.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918318.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918318.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918318.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918319.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918319.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918319.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918320.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918320.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918320.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918321.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918321.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918321.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918322.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918322.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918322.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918323.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918323.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918323.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918324.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918324.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918324.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918325.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918325.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918325.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918326.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918326.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918326.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918327.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918327.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918327.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918328.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918328.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918328.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918329.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918329.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918329.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918330.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918330.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918330.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918331.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918331.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918331.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918332.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918332.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918332.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918333.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918333.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918333.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918334.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918334.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918334.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918335.1 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918335.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918335.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918336.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918336.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.5.1.6.1140918336.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104906753.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.104972289.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105037825.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.105070593.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918273.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918274.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918275.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918276.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918277.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918278.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918279.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918280.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918281.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918282.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918283.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918284.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918285.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918286.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918287.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918288.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918289.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918290.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918291.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918292.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918293.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918294.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918295.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918296.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918297.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918298.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918299.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918300.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918301.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918302.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918303.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918304.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918305.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918306.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918307.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918308.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918309.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918310.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918311.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918312.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918313.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918314.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918315.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918316.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918317.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918318.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918319.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918320.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918321.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918322.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918323.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918324.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918325.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918326.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918327.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918328.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918329.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918330.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918331.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918332.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918333.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918334.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918335.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.1.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.1.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.1.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.2.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.2.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.2.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.3.0 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.3.1 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.2.1140918336.3.3 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104906753.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.104972289.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105037825.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.105070593.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918273.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918274.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918275.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918276.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918277.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918278.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918279.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918280.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918281.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918282.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918283.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918284.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918285.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918286.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918287.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918288.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918289.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918290.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918291.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918292.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918293.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918294.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918295.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918296.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918297.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918298.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918299.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918300.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918301.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918302.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918303.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918304.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918305.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918306.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918307.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918308.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918309.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918310.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918311.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918312.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918313.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918314.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918315.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918316.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918317.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918318.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918319.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918320.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918321.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918322.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918323.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918324.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918325.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918326.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918327.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918328.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918329.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918330.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918331.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918332.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918333.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918334.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918335.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.1.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.1.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.1.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.1.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.2.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.2.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.2.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.2.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.3.0 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.3.1 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.3.2 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.3.1140918336.3.3 = INTEGER: 0 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104906753.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.104972289.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105037825.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.105070593.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918273.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918274.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918275.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918276.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918277.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918278.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918279.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918280.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918281.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918282.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918283.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918284.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918285.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918286.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918287.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918288.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918289.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918290.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918291.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918292.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918293.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918294.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918295.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918296.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918297.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918298.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918299.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918300.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918301.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918302.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918303.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918304.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918305.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918306.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918307.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918308.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918309.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918310.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918311.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918312.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918313.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918314.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918315.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918316.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918317.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918318.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918319.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918320.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918321.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918322.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918323.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918324.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918325.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918326.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918327.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918328.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918329.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918330.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918331.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918332.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918333.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918334.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918335.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.1.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.1.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.1.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.1.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.2.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.2.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.2.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.2.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.3.0 = Hex-STRING: 0A 77 29 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.3.1 = Hex-STRING: 0A 77 4D 10 +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.3.2 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.6.1.4.1140918336.3.3 = "" +.1.3.6.1.4.1.6527.3.1.2.59.1.7.1.2.1 = Hex-STRING: 01 80 C2 00 00 0E +.1.3.6.1.4.1.6527.3.1.2.59.1.7.1.2.2 = Hex-STRING: 01 80 C2 00 00 03 +.1.3.6.1.4.1.6527.3.1.2.59.1.7.1.2.3 = Hex-STRING: 01 80 C2 00 00 00 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.104906753.1 = Counter32: 339553 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.104972289.1 = Counter32: 195558 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.105037825.1 = Counter32: 196189 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.105070593.1 = Counter32: 196188 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918299.1 = Counter32: 339376 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.2.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.104906753.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.104972289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.105037825.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.105070593.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918299.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.1.1.3.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.104906753.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.104972289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.105037825.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.105070593.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918299.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.2.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.104906753.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.104972289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.105037825.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.105070593.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918299.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.3.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.104906753.1 = Counter32: 339550 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.104972289.1 = Counter32: 195559 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.105037825.1 = Counter32: 196189 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.105070593.1 = Counter32: 196187 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918299.1 = Counter32: 339378 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.4.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.104906753.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.104972289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.105037825.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.105070593.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918299.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.5.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.104906753.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.104906753.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.104906753.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.104972289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.104972289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.104972289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.105037825.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.105037825.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.105037825.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.105070593.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.105070593.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.105070593.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918273.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918273.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918273.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918274.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918274.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918274.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918275.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918275.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918275.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918276.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918276.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918276.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918277.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918277.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918277.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918278.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918278.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918278.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918279.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918279.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918279.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918280.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918280.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918280.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918281.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918281.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918281.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918282.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918282.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918282.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918283.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918283.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918283.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918284.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918284.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918284.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918285.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918285.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918285.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918286.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918286.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918286.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918287.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918287.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918287.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918288.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918288.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918288.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918289.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918289.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918289.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918290.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918290.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918290.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918291.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918291.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918291.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918292.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918292.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918292.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918293.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918293.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918293.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918294.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918294.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918294.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918295.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918295.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918295.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918296.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918296.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918296.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918297.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918297.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918297.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918298.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918298.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918298.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918299.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918299.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918299.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918300.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918300.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918300.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918301.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918301.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918301.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918302.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918302.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918302.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918303.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918303.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918303.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918304.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918304.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918304.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918305.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918305.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918305.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918306.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918306.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918306.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918307.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918307.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918307.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918308.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918308.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918308.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918309.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918309.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918309.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918310.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918310.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918310.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918311.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918311.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918311.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918312.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918312.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918312.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918313.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918313.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918313.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918314.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918314.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918314.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918315.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918315.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918315.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918316.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918316.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918316.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918317.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918317.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918317.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918318.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918318.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918318.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918319.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918319.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918319.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918320.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918320.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918320.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918321.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918321.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918321.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918322.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918322.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918322.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918323.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918323.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918323.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918324.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918324.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918324.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918325.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918325.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918325.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918326.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918326.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918326.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918327.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918327.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918327.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918328.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918328.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918328.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918329.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918329.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918329.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918330.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918330.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918330.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918331.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918331.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918331.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918332.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918332.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918332.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918333.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918333.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918333.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918334.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918334.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918334.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918335.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918335.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918335.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918336.1 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918336.2 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.6.1140918336.3 = Counter32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.104906753.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.104906753.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.104906753.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.104972289.1 = Gauge32: 1 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.104972289.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.104972289.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.105037825.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.105037825.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.105037825.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.105070593.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.105070593.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.105070593.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918273.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918273.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918273.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918274.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918274.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918274.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918275.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918275.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918275.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918276.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918276.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918276.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918277.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918277.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918277.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918278.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918278.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918278.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918279.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918279.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918279.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918280.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918280.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918280.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918281.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918281.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918281.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918282.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918282.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918282.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918283.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918283.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918283.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918284.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918284.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918284.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918285.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918285.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918285.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918286.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918286.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918286.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918287.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918287.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918287.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918288.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918288.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918288.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918289.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918289.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918289.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918290.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918290.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918290.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918291.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918291.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918291.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918292.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918292.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918292.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918293.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918293.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918293.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918294.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918294.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918294.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918295.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918295.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918295.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918296.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918296.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918296.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918297.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918297.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918297.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918298.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918298.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918298.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918299.1 = Gauge32: 1 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918299.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918299.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918300.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918300.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918300.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918301.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918301.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918301.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918302.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918302.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918302.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918303.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918303.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918303.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918304.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918304.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918304.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918305.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918305.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918305.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918306.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918306.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918306.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918307.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918307.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918307.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918308.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918308.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918308.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918309.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918309.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918309.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918310.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918310.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918310.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918311.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918311.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918311.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918312.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918312.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918312.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918313.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918313.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918313.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918314.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918314.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918314.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918315.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918315.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918315.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918316.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918316.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918316.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918317.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918317.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918317.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918318.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918318.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918318.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918319.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918319.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918319.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918320.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918320.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918320.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918321.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918321.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918321.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918322.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918322.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918322.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918323.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918323.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918323.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918324.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918324.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918324.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918325.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918325.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918325.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918326.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918326.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918326.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918327.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918327.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918327.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918328.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918328.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918328.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918329.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918329.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918329.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918330.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918330.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918330.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918331.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918331.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918331.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918332.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918332.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918332.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918333.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918333.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918333.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918334.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918334.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918334.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918335.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918335.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918335.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918336.1 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918336.2 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.2.2.1.7.1140918336.3 = Gauge32: 0 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.104906753.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.104906753.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.104906753.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.104972289.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.104972289.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.104972289.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.105037825.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.105037825.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.105037825.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.105070593.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.105070593.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.105070593.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918273.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918273.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918273.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918274.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918274.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918274.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918275.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918275.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918275.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918276.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918276.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918276.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918277.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918277.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918277.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918278.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918278.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918278.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918279.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918279.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918279.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918280.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918280.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918280.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918281.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918281.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918281.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918282.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918282.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918282.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918283.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918283.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918283.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918284.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918284.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918284.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918285.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918285.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918285.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918286.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918286.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918286.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918287.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918287.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918287.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918288.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918288.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918288.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918289.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918289.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918289.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918290.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918290.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918290.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918291.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918291.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918291.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918292.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918292.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918292.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918293.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918293.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918293.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918294.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918294.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918294.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918295.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918295.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918295.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918296.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918296.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918296.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918297.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918297.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918297.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918298.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918298.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918298.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918299.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918299.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918299.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918300.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918300.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918300.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918301.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918301.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918301.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918302.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918302.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918302.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918303.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918303.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918303.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918304.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918304.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918304.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918305.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918305.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918305.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918306.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918306.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918306.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918307.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918307.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918307.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918308.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918308.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918308.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918309.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918309.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918309.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918310.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918310.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918310.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918311.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918311.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918311.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918312.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918312.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918312.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918313.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918313.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918313.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918314.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918314.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918314.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918315.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918315.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918315.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918316.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918316.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918316.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918317.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918317.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918317.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918318.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918318.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918318.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918319.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918319.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918319.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918320.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918320.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918320.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918321.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918321.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918321.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918322.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918322.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918322.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918323.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918323.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918323.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918324.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918324.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918324.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918325.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918325.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918325.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918326.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918326.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918326.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918327.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918327.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918327.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918328.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918328.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918328.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918329.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918329.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918329.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918330.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918330.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918330.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918331.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918331.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918331.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918332.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918332.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918332.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918333.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918333.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918333.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918334.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918334.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918334.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918335.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918335.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918335.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918336.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918336.2 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.2.1140918336.3 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.104906753.1 = Hex-STRING: 06 40 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.104906753.2 = Hex-STRING: 06 40 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.104906753.3 = Hex-STRING: 06 40 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.104972289.1 = Hex-STRING: 06 41 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.104972289.2 = Hex-STRING: 06 41 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.104972289.3 = Hex-STRING: 06 41 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.105037825.1 = Hex-STRING: 06 42 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.105037825.2 = Hex-STRING: 06 42 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.105037825.3 = Hex-STRING: 06 42 C0 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.105070593.1 = Hex-STRING: 06 43 40 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.105070593.2 = Hex-STRING: 06 43 40 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.105070593.3 = Hex-STRING: 06 43 40 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918273.1 = Hex-STRING: 44 01 08 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918273.2 = Hex-STRING: 44 01 08 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918273.3 = Hex-STRING: 44 01 08 01 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918274.1 = Hex-STRING: 44 01 08 02 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918274.2 = Hex-STRING: 44 01 08 02 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918274.3 = Hex-STRING: 44 01 08 02 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918275.1 = Hex-STRING: 44 01 08 03 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918275.2 = Hex-STRING: 44 01 08 03 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918275.3 = Hex-STRING: 44 01 08 03 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918276.1 = Hex-STRING: 44 01 08 04 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918276.2 = Hex-STRING: 44 01 08 04 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918276.3 = Hex-STRING: 44 01 08 04 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918277.1 = Hex-STRING: 44 01 08 05 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918277.2 = Hex-STRING: 44 01 08 05 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918277.3 = Hex-STRING: 44 01 08 05 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918278.1 = Hex-STRING: 44 01 08 06 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918278.2 = Hex-STRING: 44 01 08 06 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918278.3 = Hex-STRING: 44 01 08 06 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918279.1 = Hex-STRING: 44 01 08 07 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918279.2 = Hex-STRING: 44 01 08 07 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918279.3 = Hex-STRING: 44 01 08 07 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918280.1 = Hex-STRING: 44 01 08 08 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918280.2 = Hex-STRING: 44 01 08 08 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918280.3 = Hex-STRING: 44 01 08 08 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918281.1 = Hex-STRING: 44 01 08 09 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918281.2 = Hex-STRING: 44 01 08 09 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918281.3 = Hex-STRING: 44 01 08 09 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918282.1 = Hex-STRING: 44 01 08 0A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918282.2 = Hex-STRING: 44 01 08 0A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918282.3 = Hex-STRING: 44 01 08 0A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918283.1 = Hex-STRING: 44 01 08 0B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918283.2 = Hex-STRING: 44 01 08 0B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918283.3 = Hex-STRING: 44 01 08 0B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918284.1 = Hex-STRING: 44 01 08 0C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918284.2 = Hex-STRING: 44 01 08 0C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918284.3 = Hex-STRING: 44 01 08 0C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918285.1 = Hex-STRING: 44 01 08 0D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918285.2 = Hex-STRING: 44 01 08 0D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918285.3 = Hex-STRING: 44 01 08 0D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918286.1 = Hex-STRING: 44 01 08 0E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918286.2 = Hex-STRING: 44 01 08 0E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918286.3 = Hex-STRING: 44 01 08 0E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918287.1 = Hex-STRING: 44 01 08 0F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918287.2 = Hex-STRING: 44 01 08 0F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918287.3 = Hex-STRING: 44 01 08 0F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918288.1 = Hex-STRING: 44 01 08 10 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918288.2 = Hex-STRING: 44 01 08 10 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918288.3 = Hex-STRING: 44 01 08 10 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918289.1 = Hex-STRING: 44 01 08 11 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918289.2 = Hex-STRING: 44 01 08 11 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918289.3 = Hex-STRING: 44 01 08 11 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918290.1 = Hex-STRING: 44 01 08 12 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918290.2 = Hex-STRING: 44 01 08 12 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918290.3 = Hex-STRING: 44 01 08 12 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918291.1 = Hex-STRING: 44 01 08 13 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918291.2 = Hex-STRING: 44 01 08 13 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918291.3 = Hex-STRING: 44 01 08 13 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918292.1 = Hex-STRING: 44 01 08 14 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918292.2 = Hex-STRING: 44 01 08 14 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918292.3 = Hex-STRING: 44 01 08 14 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918293.1 = Hex-STRING: 44 01 08 15 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918293.2 = Hex-STRING: 44 01 08 15 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918293.3 = Hex-STRING: 44 01 08 15 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918294.1 = Hex-STRING: 44 01 08 16 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918294.2 = Hex-STRING: 44 01 08 16 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918294.3 = Hex-STRING: 44 01 08 16 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918295.1 = Hex-STRING: 44 01 08 17 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918295.2 = Hex-STRING: 44 01 08 17 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918295.3 = Hex-STRING: 44 01 08 17 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918296.1 = Hex-STRING: 44 01 08 18 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918296.2 = Hex-STRING: 44 01 08 18 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918296.3 = Hex-STRING: 44 01 08 18 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918297.1 = Hex-STRING: 44 01 08 19 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918297.2 = Hex-STRING: 44 01 08 19 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918297.3 = Hex-STRING: 44 01 08 19 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918298.1 = Hex-STRING: 44 01 08 1A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918298.2 = Hex-STRING: 44 01 08 1A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918298.3 = Hex-STRING: 44 01 08 1A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918299.1 = Hex-STRING: 44 01 08 1B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918299.2 = Hex-STRING: 44 01 08 1B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918299.3 = Hex-STRING: 44 01 08 1B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918300.1 = Hex-STRING: 44 01 08 1C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918300.2 = Hex-STRING: 44 01 08 1C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918300.3 = Hex-STRING: 44 01 08 1C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918301.1 = Hex-STRING: 44 01 08 1D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918301.2 = Hex-STRING: 44 01 08 1D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918301.3 = Hex-STRING: 44 01 08 1D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918302.1 = Hex-STRING: 44 01 08 1E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918302.2 = Hex-STRING: 44 01 08 1E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918302.3 = Hex-STRING: 44 01 08 1E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918303.1 = Hex-STRING: 44 01 08 1F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918303.2 = Hex-STRING: 44 01 08 1F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918303.3 = Hex-STRING: 44 01 08 1F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918304.1 = Hex-STRING: 44 01 08 20 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918304.2 = Hex-STRING: 44 01 08 20 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918304.3 = Hex-STRING: 44 01 08 20 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918305.1 = Hex-STRING: 44 01 08 21 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918305.2 = Hex-STRING: 44 01 08 21 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918305.3 = Hex-STRING: 44 01 08 21 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918306.1 = Hex-STRING: 44 01 08 22 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918306.2 = Hex-STRING: 44 01 08 22 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918306.3 = Hex-STRING: 44 01 08 22 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918307.1 = Hex-STRING: 44 01 08 23 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918307.2 = Hex-STRING: 44 01 08 23 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918307.3 = Hex-STRING: 44 01 08 23 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918308.1 = Hex-STRING: 44 01 08 24 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918308.2 = Hex-STRING: 44 01 08 24 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918308.3 = Hex-STRING: 44 01 08 24 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918309.1 = Hex-STRING: 44 01 08 25 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918309.2 = Hex-STRING: 44 01 08 25 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918309.3 = Hex-STRING: 44 01 08 25 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918310.1 = Hex-STRING: 44 01 08 26 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918310.2 = Hex-STRING: 44 01 08 26 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918310.3 = Hex-STRING: 44 01 08 26 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918311.1 = Hex-STRING: 44 01 08 27 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918311.2 = Hex-STRING: 44 01 08 27 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918311.3 = Hex-STRING: 44 01 08 27 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918312.1 = Hex-STRING: 44 01 08 28 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918312.2 = Hex-STRING: 44 01 08 28 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918312.3 = Hex-STRING: 44 01 08 28 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918313.1 = Hex-STRING: 44 01 08 29 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918313.2 = Hex-STRING: 44 01 08 29 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918313.3 = Hex-STRING: 44 01 08 29 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918314.1 = Hex-STRING: 44 01 08 2A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918314.2 = Hex-STRING: 44 01 08 2A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918314.3 = Hex-STRING: 44 01 08 2A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918315.1 = Hex-STRING: 44 01 08 2B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918315.2 = Hex-STRING: 44 01 08 2B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918315.3 = Hex-STRING: 44 01 08 2B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918316.1 = Hex-STRING: 44 01 08 2C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918316.2 = Hex-STRING: 44 01 08 2C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918316.3 = Hex-STRING: 44 01 08 2C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918317.1 = Hex-STRING: 44 01 08 2D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918317.2 = Hex-STRING: 44 01 08 2D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918317.3 = Hex-STRING: 44 01 08 2D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918318.1 = Hex-STRING: 44 01 08 2E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918318.2 = Hex-STRING: 44 01 08 2E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918318.3 = Hex-STRING: 44 01 08 2E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918319.1 = Hex-STRING: 44 01 08 2F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918319.2 = Hex-STRING: 44 01 08 2F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918319.3 = Hex-STRING: 44 01 08 2F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918320.1 = Hex-STRING: 44 01 08 30 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918320.2 = Hex-STRING: 44 01 08 30 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918320.3 = Hex-STRING: 44 01 08 30 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918321.1 = Hex-STRING: 44 01 08 31 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918321.2 = Hex-STRING: 44 01 08 31 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918321.3 = Hex-STRING: 44 01 08 31 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918322.1 = Hex-STRING: 44 01 08 32 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918322.2 = Hex-STRING: 44 01 08 32 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918322.3 = Hex-STRING: 44 01 08 32 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918323.1 = Hex-STRING: 44 01 08 33 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918323.2 = Hex-STRING: 44 01 08 33 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918323.3 = Hex-STRING: 44 01 08 33 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918324.1 = Hex-STRING: 44 01 08 34 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918324.2 = Hex-STRING: 44 01 08 34 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918324.3 = Hex-STRING: 44 01 08 34 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918325.1 = Hex-STRING: 44 01 08 35 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918325.2 = Hex-STRING: 44 01 08 35 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918325.3 = Hex-STRING: 44 01 08 35 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918326.1 = Hex-STRING: 44 01 08 36 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918326.2 = Hex-STRING: 44 01 08 36 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918326.3 = Hex-STRING: 44 01 08 36 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918327.1 = Hex-STRING: 44 01 08 37 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918327.2 = Hex-STRING: 44 01 08 37 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918327.3 = Hex-STRING: 44 01 08 37 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918328.1 = Hex-STRING: 44 01 08 38 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918328.2 = Hex-STRING: 44 01 08 38 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918328.3 = Hex-STRING: 44 01 08 38 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918329.1 = Hex-STRING: 44 01 08 39 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918329.2 = Hex-STRING: 44 01 08 39 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918329.3 = Hex-STRING: 44 01 08 39 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918330.1 = Hex-STRING: 44 01 08 3A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918330.2 = Hex-STRING: 44 01 08 3A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918330.3 = Hex-STRING: 44 01 08 3A +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918331.1 = Hex-STRING: 44 01 08 3B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918331.2 = Hex-STRING: 44 01 08 3B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918331.3 = Hex-STRING: 44 01 08 3B +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918332.1 = Hex-STRING: 44 01 08 3C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918332.2 = Hex-STRING: 44 01 08 3C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918332.3 = Hex-STRING: 44 01 08 3C +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918333.1 = Hex-STRING: 44 01 08 3D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918333.2 = Hex-STRING: 44 01 08 3D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918333.3 = Hex-STRING: 44 01 08 3D +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918334.1 = Hex-STRING: 44 01 08 3E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918334.2 = Hex-STRING: 44 01 08 3E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918334.3 = Hex-STRING: 44 01 08 3E +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918335.1 = Hex-STRING: 44 01 08 3F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918335.2 = Hex-STRING: 44 01 08 3F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918335.3 = Hex-STRING: 44 01 08 3F +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918336.1 = Hex-STRING: 44 01 08 40 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918336.2 = Hex-STRING: 44 01 08 40 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.3.1140918336.3 = Hex-STRING: 44 01 08 40 +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.104906753.1 = STRING: "3/2/c1/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.104906753.2 = STRING: "3/2/c1/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.104906753.3 = STRING: "3/2/c1/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.104972289.1 = STRING: "3/2/c3/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.104972289.2 = STRING: "3/2/c3/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.104972289.3 = STRING: "3/2/c3/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.105037825.1 = STRING: "3/2/c5/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.105037825.2 = STRING: "3/2/c5/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.105037825.3 = STRING: "3/2/c5/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.105070593.1 = STRING: "3/2/c6/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.105070593.2 = STRING: "3/2/c6/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.105070593.3 = STRING: "3/2/c6/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918273.1 = STRING: "esat-1/1/1, 1-Gig/10-Gig Ethernet, \"link-to-dsaA\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918273.2 = STRING: "esat-1/1/1, 1-Gig/10-Gig Ethernet, \"link-to-dsaA\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918273.3 = STRING: "esat-1/1/1, 1-Gig/10-Gig Ethernet, \"link-to-dsaA\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918274.1 = STRING: "esat-1/1/2, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918274.2 = STRING: "esat-1/1/2, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918274.3 = STRING: "esat-1/1/2, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918275.1 = STRING: "esat-1/1/3, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918275.2 = STRING: "esat-1/1/3, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918275.3 = STRING: "esat-1/1/3, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918276.1 = STRING: "esat-1/1/4, 1-Gig/10-Gig Ethernet, \"\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918276.2 = STRING: "esat-1/1/4, 1-Gig/10-Gig Ethernet, \"\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918276.3 = STRING: "esat-1/1/4, 1-Gig/10-Gig Ethernet, \"\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918277.1 = STRING: "esat-1/1/5, 1-Gig/10-Gig Ethernet, \"to-QQXs\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918277.2 = STRING: "esat-1/1/5, 1-Gig/10-Gig Ethernet, \"to-QQXs\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918277.3 = STRING: "esat-1/1/5, 1-Gig/10-Gig Ethernet, \"to-QQXs\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918278.1 = STRING: "esat-1/1/6, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918278.2 = STRING: "esat-1/1/6, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918278.3 = STRING: "esat-1/1/6, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918279.1 = STRING: "esat-1/1/7, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918279.2 = STRING: "esat-1/1/7, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918279.3 = STRING: "esat-1/1/7, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918280.1 = STRING: "esat-1/1/8, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918280.2 = STRING: "esat-1/1/8, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918280.3 = STRING: "esat-1/1/8, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918281.1 = STRING: "esat-1/1/9, 1-Gig/10-Gig Ethernet, \"to-HHYT "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918281.2 = STRING: "esat-1/1/9, 1-Gig/10-Gig Ethernet, \"to-HHYT "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918281.3 = STRING: "esat-1/1/9, 1-Gig/10-Gig Ethernet, \"to-HHYT "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918282.1 = STRING: "esat-1/1/10, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918282.2 = STRING: "esat-1/1/10, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918282.3 = STRING: "esat-1/1/10, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918283.1 = STRING: "esat-1/1/11, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918283.2 = STRING: "esat-1/1/11, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918283.3 = STRING: "esat-1/1/11, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918284.1 = STRING: "esat-1/1/12, 1-Gig/10-Gig Ethernet, \"to ZHBGO1Zsr002 1/1/8\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918284.2 = STRING: "esat-1/1/12, 1-Gig/10-Gig Ethernet, \"to ZHBGO1Zsr002 1/1/8\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918284.3 = STRING: "esat-1/1/12, 1-Gig/10-Gig Ethernet, \"to ZHBGO1Zsr002 1/1/8\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918285.1 = STRING: "esat-1/1/13, 1-Gig/10-Gig Ethernet, \"to-SDfa "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918285.2 = STRING: "esat-1/1/13, 1-Gig/10-Gig Ethernet, \"to-SDfa "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918285.3 = STRING: "esat-1/1/13, 1-Gig/10-Gig Ethernet, \"to-SDfa "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918286.1 = STRING: "esat-1/1/14, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918286.2 = STRING: "esat-1/1/14, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918286.3 = STRING: "esat-1/1/14, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918287.1 = STRING: "esat-1/1/15, 1-Gig/10-Gig Ethernet, \"to-HDD "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918287.2 = STRING: "esat-1/1/15, 1-Gig/10-Gig Ethernet, \"to-HDD "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918287.3 = STRING: "esat-1/1/15, 1-Gig/10-Gig Ethernet, \"to-HDD "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918288.1 = STRING: "esat-1/1/16, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918288.2 = STRING: "esat-1/1/16, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918288.3 = STRING: "esat-1/1/16, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918289.1 = STRING: "esat-1/1/17, 1-Gig/10-Gig Ethernet, \"link-to-dsaA\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918289.2 = STRING: "esat-1/1/17, 1-Gig/10-Gig Ethernet, \"link-to-dsaA\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918289.3 = STRING: "esat-1/1/17, 1-Gig/10-Gig Ethernet, \"link-to-dsaA\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918290.1 = STRING: "esat-1/1/18, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918290.2 = STRING: "esat-1/1/18, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918290.3 = STRING: "esat-1/1/18, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918291.1 = STRING: "esat-1/1/19, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918291.2 = STRING: "esat-1/1/19, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918291.3 = STRING: "esat-1/1/19, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918292.1 = STRING: "esat-1/1/20, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918292.2 = STRING: "esat-1/1/20, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918292.3 = STRING: "esat-1/1/20, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918293.1 = STRING: "esat-1/1/21, 1-Gig/10-Gig Ethernet, \"to-tEE "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918293.2 = STRING: "esat-1/1/21, 1-Gig/10-Gig Ethernet, \"to-tEE "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918293.3 = STRING: "esat-1/1/21, 1-Gig/10-Gig Ethernet, \"to-tEE "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918294.1 = STRING: "esat-1/1/22, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918294.2 = STRING: "esat-1/1/22, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918294.3 = STRING: "esat-1/1/22, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918295.1 = STRING: "esat-1/1/23, 1-Gig/10-Gig Ethernet, \"MGMT-dsds fsds Gi0/11\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918295.2 = STRING: "esat-1/1/23, 1-Gig/10-Gig Ethernet, \"MGMT-dsds fsds Gi0/11\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918295.3 = STRING: "esat-1/1/23, 1-Gig/10-Gig Ethernet, \"MGMT-dsds fsds Gi0/11\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918296.1 = STRING: "esat-1/1/24, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918296.2 = STRING: "esat-1/1/24, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918296.3 = STRING: "esat-1/1/24, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918297.1 = STRING: "esat-1/1/25, 1-Gig/10-Gig Ethernet, \"to-Assd "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918297.2 = STRING: "esat-1/1/25, 1-Gig/10-Gig Ethernet, \"to-Assd "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918297.3 = STRING: "esat-1/1/25, 1-Gig/10-Gig Ethernet, \"to-Assd "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918298.1 = STRING: "esat-1/1/26, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918298.2 = STRING: "esat-1/1/26, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918298.3 = STRING: "esat-1/1/26, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918299.1 = STRING: "esat-1/1/27, 1-Gig/10-Gig Ethernet, \"to-sq342g4 1/1/c36/3 "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918299.2 = STRING: "esat-1/1/27, 1-Gig/10-Gig Ethernet, \"to-sq342g4 1/1/c36/3 "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918299.3 = STRING: "esat-1/1/27, 1-Gig/10-Gig Ethernet, \"to-sq342g4 1/1/c36/3 "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918300.1 = STRING: "esat-1/1/28, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918300.2 = STRING: "esat-1/1/28, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918300.3 = STRING: "esat-1/1/28, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918301.1 = STRING: "esat-1/1/29, 1-Gig/10-Gig Ethernet, \"to-SDfa "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918301.2 = STRING: "esat-1/1/29, 1-Gig/10-Gig Ethernet, \"to-SDfa "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918301.3 = STRING: "esat-1/1/29, 1-Gig/10-Gig Ethernet, \"to-SDfa "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918302.1 = STRING: "esat-1/1/30, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918302.2 = STRING: "esat-1/1/30, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918302.3 = STRING: "esat-1/1/30, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918303.1 = STRING: "esat-1/1/31, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918303.2 = STRING: "esat-1/1/31, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918303.3 = STRING: "esat-1/1/31, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918304.1 = STRING: "esat-1/1/32, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918304.2 = STRING: "esat-1/1/32, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918304.3 = STRING: "esat-1/1/32, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918305.1 = STRING: "esat-1/1/33, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918305.2 = STRING: "esat-1/1/33, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918305.3 = STRING: "esat-1/1/33, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918306.1 = STRING: "esat-1/1/34, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918306.2 = STRING: "esat-1/1/34, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918306.3 = STRING: "esat-1/1/34, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918307.1 = STRING: "esat-1/1/35, 1-Gig/10-Gig Ethernet, \"link-to-fdj\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918307.2 = STRING: "esat-1/1/35, 1-Gig/10-Gig Ethernet, \"link-to-fdj\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918307.3 = STRING: "esat-1/1/35, 1-Gig/10-Gig Ethernet, \"link-to-fdj\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918308.1 = STRING: "esat-1/1/36, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918308.2 = STRING: "esat-1/1/36, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918308.3 = STRING: "esat-1/1/36, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918309.1 = STRING: "esat-1/1/37, 1-Gig/10-Gig Ethernet, \"to-55gs "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918309.2 = STRING: "esat-1/1/37, 1-Gig/10-Gig Ethernet, \"to-55gs "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918309.3 = STRING: "esat-1/1/37, 1-Gig/10-Gig Ethernet, \"to-55gs "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918310.1 = STRING: "esat-1/1/38, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918310.2 = STRING: "esat-1/1/38, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918310.3 = STRING: "esat-1/1/38, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918311.1 = STRING: "esat-1/1/39, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918311.2 = STRING: "esat-1/1/39, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918311.3 = STRING: "esat-1/1/39, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918312.1 = STRING: "esat-1/1/40, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918312.2 = STRING: "esat-1/1/40, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918312.3 = STRING: "esat-1/1/40, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918313.1 = STRING: "esat-1/1/41, 1-Gig/10-Gig Ethernet, \"to-w13 "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918313.2 = STRING: "esat-1/1/41, 1-Gig/10-Gig Ethernet, \"to-w13 "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918313.3 = STRING: "esat-1/1/41, 1-Gig/10-Gig Ethernet, \"to-w13 "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918314.1 = STRING: "esat-1/1/42, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918314.2 = STRING: "esat-1/1/42, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918314.3 = STRING: "esat-1/1/42, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918315.1 = STRING: "esat-1/1/43, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918315.2 = STRING: "esat-1/1/43, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918315.3 = STRING: "esat-1/1/43, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918316.1 = STRING: "esat-1/1/44, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918316.2 = STRING: "esat-1/1/44, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918316.3 = STRING: "esat-1/1/44, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918317.1 = STRING: "esat-1/1/45, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/4) "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918317.2 = STRING: "esat-1/1/45, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/4) "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918317.3 = STRING: "esat-1/1/45, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/4) "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918318.1 = STRING: "esat-1/1/46, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918318.2 = STRING: "esat-1/1/46, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918318.3 = STRING: "esat-1/1/46, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918319.1 = STRING: "esat-1/1/47, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/1) "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918319.2 = STRING: "esat-1/1/47, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/1) "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918319.3 = STRING: "esat-1/1/47, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/1) "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918320.1 = STRING: "esat-1/1/48, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918320.2 = STRING: "esat-1/1/48, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918320.3 = STRING: "esat-1/1/48, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918321.1 = STRING: "esat-1/1/49, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918321.2 = STRING: "esat-1/1/49, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918321.3 = STRING: "esat-1/1/49, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918322.1 = STRING: "esat-1/1/50, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918322.2 = STRING: "esat-1/1/50, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918322.3 = STRING: "esat-1/1/50, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918323.1 = STRING: "esat-1/1/51, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918323.2 = STRING: "esat-1/1/51, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918323.3 = STRING: "esat-1/1/51, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918324.1 = STRING: "esat-1/1/52, 1-Gig/10-Gig Ethernet, \"link-to-s43g\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918324.2 = STRING: "esat-1/1/52, 1-Gig/10-Gig Ethernet, \"link-to-s43g\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918324.3 = STRING: "esat-1/1/52, 1-Gig/10-Gig Ethernet, \"link-to-s43g\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918325.1 = STRING: "esat-1/1/53, 1-Gig/10-Gig Ethernet, \"to "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918325.2 = STRING: "esat-1/1/53, 1-Gig/10-Gig Ethernet, \"to "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918325.3 = STRING: "esat-1/1/53, 1-Gig/10-Gig Ethernet, \"to "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918326.1 = STRING: "esat-1/1/54, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918326.2 = STRING: "esat-1/1/54, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918326.3 = STRING: "esat-1/1/54, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918327.1 = STRING: "esat-1/1/55, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918327.2 = STRING: "esat-1/1/55, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918327.3 = STRING: "esat-1/1/55, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918328.1 = STRING: "esat-1/1/56, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918328.2 = STRING: "esat-1/1/56, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918328.3 = STRING: "esat-1/1/56, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918329.1 = STRING: "esat-1/1/57, 1-Gig/10-Gig Ethernet, \"to-hf3-for-future-link\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918329.2 = STRING: "esat-1/1/57, 1-Gig/10-Gig Ethernet, \"to-hf3-for-future-link\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918329.3 = STRING: "esat-1/1/57, 1-Gig/10-Gig Ethernet, \"to-hf3-for-future-link\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918330.1 = STRING: "esat-1/1/58, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918330.2 = STRING: "esat-1/1/58, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918330.3 = STRING: "esat-1/1/58, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918331.1 = STRING: "esat-1/1/59, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918331.2 = STRING: "esat-1/1/59, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918331.3 = STRING: "esat-1/1/59, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918332.1 = STRING: "esat-1/1/60, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918332.2 = STRING: "esat-1/1/60, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918332.3 = STRING: "esat-1/1/60, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918333.1 = STRING: "esat-1/1/61, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/2) "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918333.2 = STRING: "esat-1/1/61, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/2) "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918333.3 = STRING: "esat-1/1/61, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/2) "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918334.1 = STRING: "esat-1/1/62, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918334.2 = STRING: "esat-1/1/62, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918334.3 = STRING: "esat-1/1/62, 1-Gig/10-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918335.1 = STRING: "esat-1/1/63, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/3) "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918335.2 = STRING: "esat-1/1/63, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/3) "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918335.3 = STRING: "esat-1/1/63, 1-Gig/10-Gig Ethernet, \"to-st2 (sasdw|10GigabitEthernet3/3) "" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918336.1 = STRING: "esat-1/1/64, 1-Gig/10-Gig Ethernet, \"\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918336.2 = STRING: "esat-1/1/64, 1-Gig/10-Gig Ethernet, \"\"" +.1.3.6.1.4.1.6527.3.1.2.59.3.1.1.4.1140918336.3 = STRING: "esat-1/1/64, 1-Gig/10-Gig Ethernet, \"\"" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.4.273928.104906753.1.1 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.4.430357358.105037825.1.4 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.4.430361758.105070593.1.5 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.4.905362068.1140918299.1.6 = INTEGER: 4 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.5.273928.104906753.1.1 = Hex-STRING: 50 E0 EF 00 50 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.5.430357358.105037825.1.4 = Hex-STRING: 24 21 24 EC E2 3F +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.5.430361758.105070593.1.5 = Hex-STRING: 24 21 24 EC E2 3F +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.5.905362068.1140918299.1.6 = Hex-STRING: E4 81 84 AC BF 34 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.6.273928.104906753.1.1 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.6.430357358.105037825.1.4 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.6.430361758.105070593.1.5 = INTEGER: 5 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.6.905362068.1140918299.1.6 = INTEGER: 7 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.7.273928.104906753.1.1 = STRING: "35700737" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.7.430357358.105037825.1.4 = STRING: "3/2/c5/1" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.7.430361758.105070593.1.5 = STRING: "3/2/c6/1" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.7.905362068.1140918299.1.6 = STRING: "1610901763" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.8.273928.104906753.1.1 = STRING: "1/1/c1/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.8.430357358.105037825.1.4 = STRING: "3/2/c5/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.8.430361758.105070593.1.5 = STRING: "3/2/c6/1, 100-Gig Ethernet" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.8.905362068.1140918299.1.6 = STRING: "1/1/c36/3, 10-Gig Ethernet, \"to-ZHBGO1ZSR002 esat-1/1/27 "" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.9.273928.104906753.1.1 = STRING: "esat-1" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.9.430357358.105037825.1.4 = STRING: "ZHBGO1Zsr001" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.9.430361758.105070593.1.5 = STRING: "ZHBGO1Zsr001" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.9.905362068.1140918299.1.6 = STRING: "sq342g4" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.10.273928.104906753.1.1 = "" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.10.430357358.105037825.1.4 = "" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.10.430361758.105070593.1.5 = "" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.10.905362068.1140918299.1.6 = STRING: "TiMOS-C-20.10.R3 cpm/hops64 Nokia 7750 SR Copyright (c) 2000-2021 Nokia. +All rights reserved. All use subject to applicable license agreements. +Built on Wed Jan 27 13:21:10 PST 2021 by builder in /builds/c/2010B/R3/panos/main/sros +" +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.11.273928.104906753.1.1 = Hex-STRING: 00 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.11.430357358.105037825.1.4 = Hex-STRING: 28 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.11.430361758.105070593.1.5 = Hex-STRING: 28 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.11.905362068.1140918299.1.6 = Hex-STRING: 28 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.12.273928.104906753.1.1 = Hex-STRING: 00 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.12.430357358.105037825.1.4 = Hex-STRING: 28 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.12.430361758.105070593.1.5 = Hex-STRING: 28 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.12.905362068.1140918299.1.6 = Hex-STRING: 28 00 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.13.273928.104906753.1.1 = Counter64: 10186374 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.13.430357358.105037825.1.4 = Counter64: 5885539 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.13.430361758.105070593.1.5 = Counter64: 5885495 +.1.3.6.1.4.1.6527.3.1.2.59.4.1.1.13.905362068.1140918299.1.6 = Counter64: 1135492 +.1.3.6.1.4.1.6527.3.1.2.59.4.2.1.3.905362068.1140918299.1.6.1.4.10.119.77.18 = INTEGER: 2 +.1.3.6.1.4.1.6527.3.1.2.59.4.2.1.4.905362068.1140918299.1.6.1.4.10.119.77.18 = INTEGER: 1 +.1.3.6.1.4.1.6527.3.1.2.59.4.2.1.5.905362068.1140918299.1.6.1.4.10.119.77.18 = OID: iso.3.6.1.4.1.6527.1.3.17 diff --git a/features/enlinkd/tests/src/test/resources/linkd/nms13637/router-1-walk.txt b/features/enlinkd/tests/src/test/resources/linkd/nms13637/router-1-walk.txt new file mode 100644 index 000000000000..0a94f34b805a --- /dev/null +++ b/features/enlinkd/tests/src/test/resources/linkd/nms13637/router-1-walk.txt @@ -0,0 +1,1014 @@ +.1.0.8802.1.1.2.1.3.3.0 = STRING: "router-1" +.1.0.8802.1.1.2.1.3.4.0 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.3.5.0 = STRING: "(" +.1.0.8802.1.1.2.1.3.6.0 = STRING: " " +.1.0.8802.1.1.2.1.3.7.1.2.1 = INTEGER: 3 +.1.0.8802.1.1.2.1.3.7.1.3.1 = Hex-STRING: 00 50 56 82 A1 05 +.1.0.8802.1.1.2.1.3.7.1.4.1 = STRING: "ether1" +.1.0.8802.1.1.2.1.4.1.1.4.0.0.1 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.2 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.3 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.4 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.5 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.5.0.0.1 = Hex-STRING: 5C 71 0D 26 AC 43 +.1.0.8802.1.1.2.1.4.1.1.5.0.0.2 = Hex-STRING: 00 50 56 82 EF FC +.1.0.8802.1.1.2.1.4.1.1.5.0.0.3 = Hex-STRING: 00 50 56 82 23 35 +.1.0.8802.1.1.2.1.4.1.1.5.0.0.4 = Hex-STRING: 00 50 56 82 20 E2 +.1.0.8802.1.1.2.1.4.1.1.5.0.0.5 = Hex-STRING: 00 50 56 82 62 AB +.1.0.8802.1.1.2.1.4.1.1.6.0.0.1 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.2 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.3 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.4 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.5 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.7.0.0.1 = STRING: "gi5" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.2 = STRING: "ether1" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.3 = STRING: "ens160" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.4 = STRING: "vmx1" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.5 = STRING: "ens160" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.1 = STRING: "sw01-office" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.2 = STRING: "router-2" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.3 = STRING: "elastic-01" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.4 = STRING: "opn-fw-01.clab.labmonkeys.tech" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.5 = STRING: "onms-hzn" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.1 = "" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.2 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.3 = STRING: "Ubuntu 20.04.3 LTS Linux 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.4 = STRING: " FreeBSD 12.1-RELEASE-p20-HBSD FreeBSD 12.1-RELEASE-p20-HBSD #0 e4fc5be9c3d(stable/21.7)-dirty: Thu Sep 2 10:30:36 CEST 2021 root@sensey:/usr/obj/usr/src/amd64.amd64/sys/SMP amd64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.5 = STRING: "Ubuntu 20.04.3 LTS Linux 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.1 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.2 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.3 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.4 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.5 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.1 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.2 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.3 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.4 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.5 = STRING: "(" +.1.0.8802.1.1.2.1.4.2.1.1.0.0.1 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.2 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.3 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.4 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.5 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.2.0.0.1 = STRING: "fe80::5e71:dff:fe26:ac3e" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.2 = STRING: "192.168.178.74" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.3 = STRING: "fd00::250:56ff:fe82:2335" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.4 = STRING: "fd00::250:56ff:fe82:20e2" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.5 = STRING: "fd00::250:56ff:fe82:62ab" +.1.3.6.1.2.1.1.1.0 = STRING: "RouterOS CHR" +.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.14988.1 +.1.3.6.1.2.1.1.3.0 = Timeticks: (15200) 0:02:32.00 +.1.3.6.1.2.1.1.4.0 = "" +.1.3.6.1.2.1.1.5.0 = STRING: "router-1" +.1.3.6.1.2.1.1.6.0 = "" +.1.3.6.1.2.1.1.7.0 = INTEGER: 78 +.1.3.6.1.2.1.2.1.0 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.2.1 = STRING: "ether1" +.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.4.1 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.6.1 = Hex-STRING: 00 50 56 82 A1 05 +.1.3.6.1.2.1.2.2.1.7.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.9.1 = Timeticks: (1037) 0:00:10.37 +.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 51504 +.1.3.6.1.2.1.2.2.1.11.1 = Counter32: 620 +.1.3.6.1.2.1.2.2.1.12.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1 = Counter32: 21939 +.1.3.6.1.2.1.2.2.1.17.1 = Counter32: 135 +.1.3.6.1.2.1.2.2.1.18.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.21.1 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.22.1 = OID: .0.0 +.1.3.6.1.2.1.4.1.0 = INTEGER: 1 +.1.3.6.1.2.1.4.2.0 = INTEGER: 255 +.1.3.6.1.2.1.4.20.1.1.192.168.178.73 = IpAddress: 192.168.178.73 +.1.3.6.1.2.1.4.20.1.2.192.168.178.73 = INTEGER: 1 +.1.3.6.1.2.1.4.20.1.3.192.168.178.73 = IpAddress: 255.255.255.0 +.1.3.6.1.2.1.4.20.1.4.192.168.178.73 = INTEGER: 1 +.1.3.6.1.2.1.4.20.1.5.192.168.178.73 = INTEGER: 65535 +.1.3.6.1.2.1.4.21.1.1.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.21.1.1.192.168.178.0 = IpAddress: 192.168.178.0 +.1.3.6.1.2.1.4.21.1.2.0.0.0.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.2.192.168.178.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.3.0.0.0.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.3.192.168.178.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.4.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.4.192.168.178.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.5.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.5.192.168.178.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.6.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.6.192.168.178.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.7.0.0.0.0 = IpAddress: 192.168.178.1 +.1.3.6.1.2.1.4.21.1.7.192.168.178.0 = IpAddress: 192.168.178.73 +.1.3.6.1.2.1.4.21.1.8.0.0.0.0 = INTEGER: 4 +.1.3.6.1.2.1.4.21.1.8.192.168.178.0 = INTEGER: 3 +.1.3.6.1.2.1.4.21.1.9.0.0.0.0 = INTEGER: 2 +.1.3.6.1.2.1.4.21.1.9.192.168.178.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.10.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.10.192.168.178.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.11.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.21.1.11.192.168.178.0 = IpAddress: 255.255.255.0 +.1.3.6.1.2.1.4.21.1.12.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.12.192.168.178.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.13.0.0.0.0 = OID: .0.0 +.1.3.6.1.2.1.4.21.1.13.192.168.178.0 = OID: .0.0 +.1.3.6.1.2.1.4.22.1.1.1.192.168.178.27 = INTEGER: 1 +.1.3.6.1.2.1.4.22.1.1.1.192.168.178.53 = INTEGER: 1 +.1.3.6.1.2.1.4.22.1.2.1.192.168.178.27 = Hex-STRING: F0 18 98 41 0C A8 +.1.3.6.1.2.1.4.22.1.2.1.192.168.178.53 = Hex-STRING: 00 50 56 82 08 F6 +.1.3.6.1.2.1.4.22.1.3.1.192.168.178.27 = IpAddress: 192.168.178.27 +.1.3.6.1.2.1.4.22.1.3.1.192.168.178.53 = IpAddress: 192.168.178.53 +.1.3.6.1.2.1.4.22.1.4.1.192.168.178.27 = INTEGER: 3 +.1.3.6.1.2.1.4.22.1.4.1.192.168.178.53 = INTEGER: 3 +.1.3.6.1.2.1.4.24.3.0 = Gauge32: 2 +.1.3.6.1.2.1.4.24.4.1.1.0.0.0.0.0.0.0.0.0.192.168.178.1 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.24.4.1.1.192.168.178.0.255.255.255.0.0.192.168.178.73 = IpAddress: 192.168.178.0 +.1.3.6.1.2.1.4.24.4.1.2.0.0.0.0.0.0.0.0.0.192.168.178.1 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.24.4.1.2.192.168.178.0.255.255.255.0.0.192.168.178.73 = IpAddress: 255.255.255.0 +.1.3.6.1.2.1.4.24.4.1.3.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.3.192.168.178.0.255.255.255.0.0.192.168.178.73 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.4.0.0.0.0.0.0.0.0.0.192.168.178.1 = IpAddress: 192.168.178.1 +.1.3.6.1.2.1.4.24.4.1.4.192.168.178.0.255.255.255.0.0.192.168.178.73 = IpAddress: 192.168.178.73 +.1.3.6.1.2.1.4.24.4.1.5.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 1 +.1.3.6.1.2.1.4.24.4.1.5.192.168.178.0.255.255.255.0.0.192.168.178.73 = INTEGER: 1 +.1.3.6.1.2.1.4.24.4.1.6.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 4 +.1.3.6.1.2.1.4.24.4.1.6.192.168.178.0.255.255.255.0.0.192.168.178.73 = INTEGER: 3 +.1.3.6.1.2.1.4.24.4.1.7.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 3 +.1.3.6.1.2.1.4.24.4.1.7.192.168.178.0.255.255.255.0.0.192.168.178.73 = INTEGER: 2 +.1.3.6.1.2.1.4.24.4.1.8.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.8.192.168.178.0.255.255.255.0.0.192.168.178.73 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.9.0.0.0.0.0.0.0.0.0.192.168.178.1 = OID: .0.0 +.1.3.6.1.2.1.4.24.4.1.9.192.168.178.0.255.255.255.0.0.192.168.178.73 = OID: .0.0 +.1.3.6.1.2.1.4.24.4.1.10.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.10.192.168.178.0.255.255.255.0.0.192.168.178.73 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.11.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 1 +.1.3.6.1.2.1.4.24.4.1.11.192.168.178.0.255.255.255.0.0.192.168.178.73 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.12.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.12.192.168.178.0.255.255.255.0.0.192.168.178.73 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.13.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.13.192.168.178.0.255.255.255.0.0.192.168.178.73 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.14.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.14.192.168.178.0.255.255.255.0.0.192.168.178.73 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.15.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.15.192.168.178.0.255.255.255.0.0.192.168.178.73 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.16.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 1 +.1.3.6.1.2.1.4.24.4.1.16.192.168.178.0.255.255.255.0.0.192.168.178.73 = INTEGER: 1 +.1.3.6.1.2.1.17.2.1.0 = INTEGER: 3 +.1.3.6.1.2.1.25.1.1.0 = Timeticks: (15200) 0:02:32.00 +.1.3.6.1.2.1.25.1.2.0 = Hex-STRING: 07 E5 0A 1A 13 25 1B 00 2B 00 00 +.1.3.6.1.2.1.25.2.2.0 = INTEGER: 229376 +.1.3.6.1.2.1.25.2.3.1.1.65536 = INTEGER: 65536 +.1.3.6.1.2.1.25.2.3.1.1.131072 = INTEGER: 131072 +.1.3.6.1.2.1.25.2.3.1.2.65536 = OID: .1.3.6.1.2.1.25.2.1.2 +.1.3.6.1.2.1.25.2.3.1.2.131072 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.3.65536 = STRING: "main memory" +.1.3.6.1.2.1.25.2.3.1.3.131072 = STRING: "system disk" +.1.3.6.1.2.1.25.2.3.1.4.65536 = INTEGER: 1024 +.1.3.6.1.2.1.25.2.3.1.4.131072 = INTEGER: 1024 +.1.3.6.1.2.1.25.2.3.1.5.65536 = INTEGER: 229376 +.1.3.6.1.2.1.25.2.3.1.5.131072 = INTEGER: 65028 +.1.3.6.1.2.1.25.2.3.1.6.65536 = INTEGER: 21516 +.1.3.6.1.2.1.25.2.3.1.6.131072 = INTEGER: 34336 +.1.3.6.1.2.1.25.2.3.1.7.65536 = Counter32: 0 +.1.3.6.1.2.1.25.2.3.1.7.131072 = Counter32: 0 +.1.3.6.1.2.1.25.3.2.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.25.3.2.1.2.1 = OID: .1.3.6.1.2.1.25.3.1.3 +.1.3.6.1.2.1.25.3.2.1.3.1 = "" +.1.3.6.1.2.1.25.3.2.1.4.1 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.5.1 = INTEGER: 2 +.1.3.6.1.2.1.25.3.2.1.6.1 = Counter32: 0 +.1.3.6.1.2.1.25.3.3.1.1.1 = OID: .0.0 +.1.3.6.1.2.1.25.3.3.1.2.1 = INTEGER: 0 +.1.3.6.1.2.1.31.1.1.1.1.1 = STRING: "ether1" +.1.3.6.1.2.1.31.1.1.1.2.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.6.1 = Counter64: 51504 +.1.3.6.1.2.1.31.1.1.1.7.1 = Counter64: 620 +.1.3.6.1.2.1.31.1.1.1.8.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.1 = Counter64: 21939 +.1.3.6.1.2.1.31.1.1.1.11.1 = Counter64: 135 +.1.3.6.1.2.1.31.1.1.1.12.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.15.1 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.18.1 = "" +.1.3.6.1.2.1.33.1.3.2.0 = INTEGER: 1 +.1.3.6.1.2.1.33.1.4.3.0 = INTEGER: 1 +.1.3.6.1.2.1.47.1.1.1.1.1.65536 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.1.131073 = INTEGER: 131073 +.1.3.6.1.2.1.47.1.1.1.1.1.131074 = INTEGER: 131074 +.1.3.6.1.2.1.47.1.1.1.1.1.131075 = INTEGER: 131075 +.1.3.6.1.2.1.47.1.1.1.1.1.131076 = INTEGER: 131076 +.1.3.6.1.2.1.47.1.1.1.1.1.131077 = INTEGER: 131077 +.1.3.6.1.2.1.47.1.1.1.1.1.131078 = INTEGER: 131078 +.1.3.6.1.2.1.47.1.1.1.1.1.131079 = INTEGER: 131079 +.1.3.6.1.2.1.47.1.1.1.1.1.131080 = INTEGER: 131080 +.1.3.6.1.2.1.47.1.1.1.1.1.131081 = INTEGER: 131081 +.1.3.6.1.2.1.47.1.1.1.1.1.131082 = INTEGER: 131082 +.1.3.6.1.2.1.47.1.1.1.1.1.131083 = INTEGER: 131083 +.1.3.6.1.2.1.47.1.1.1.1.1.131084 = INTEGER: 131084 +.1.3.6.1.2.1.47.1.1.1.1.1.131085 = INTEGER: 131085 +.1.3.6.1.2.1.47.1.1.1.1.1.131086 = INTEGER: 131086 +.1.3.6.1.2.1.47.1.1.1.1.1.131087 = INTEGER: 131087 +.1.3.6.1.2.1.47.1.1.1.1.1.131088 = INTEGER: 131088 +.1.3.6.1.2.1.47.1.1.1.1.1.131089 = INTEGER: 131089 +.1.3.6.1.2.1.47.1.1.1.1.1.131090 = INTEGER: 131090 +.1.3.6.1.2.1.47.1.1.1.1.1.131091 = INTEGER: 131091 +.1.3.6.1.2.1.47.1.1.1.1.1.131092 = INTEGER: 131092 +.1.3.6.1.2.1.47.1.1.1.1.1.131093 = INTEGER: 131093 +.1.3.6.1.2.1.47.1.1.1.1.1.131094 = INTEGER: 131094 +.1.3.6.1.2.1.47.1.1.1.1.1.131095 = INTEGER: 131095 +.1.3.6.1.2.1.47.1.1.1.1.1.131096 = INTEGER: 131096 +.1.3.6.1.2.1.47.1.1.1.1.1.131097 = INTEGER: 131097 +.1.3.6.1.2.1.47.1.1.1.1.1.131098 = INTEGER: 131098 +.1.3.6.1.2.1.47.1.1.1.1.1.131099 = INTEGER: 131099 +.1.3.6.1.2.1.47.1.1.1.1.1.131100 = INTEGER: 131100 +.1.3.6.1.2.1.47.1.1.1.1.1.131101 = INTEGER: 131101 +.1.3.6.1.2.1.47.1.1.1.1.1.131102 = INTEGER: 131102 +.1.3.6.1.2.1.47.1.1.1.1.1.131103 = INTEGER: 131103 +.1.3.6.1.2.1.47.1.1.1.1.1.131104 = INTEGER: 131104 +.1.3.6.1.2.1.47.1.1.1.1.1.131105 = INTEGER: 131105 +.1.3.6.1.2.1.47.1.1.1.1.1.131106 = INTEGER: 131106 +.1.3.6.1.2.1.47.1.1.1.1.1.131107 = INTEGER: 131107 +.1.3.6.1.2.1.47.1.1.1.1.1.131108 = INTEGER: 131108 +.1.3.6.1.2.1.47.1.1.1.1.1.131109 = INTEGER: 131109 +.1.3.6.1.2.1.47.1.1.1.1.1.131110 = INTEGER: 131110 +.1.3.6.1.2.1.47.1.1.1.1.1.131111 = INTEGER: 131111 +.1.3.6.1.2.1.47.1.1.1.1.1.131112 = INTEGER: 131112 +.1.3.6.1.2.1.47.1.1.1.1.1.131113 = INTEGER: 131113 +.1.3.6.1.2.1.47.1.1.1.1.2.65536 = STRING: "RouterOS 6.48.4 (stable) on CHR" +.1.3.6.1.2.1.47.1.1.1.1.2.131073 = STRING: "Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131074 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131075 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131076 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131077 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131078 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131079 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131080 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131081 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131082 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131083 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131084 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131085 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131086 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131087 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131088 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131089 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131090 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131091 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131092 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131093 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131094 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131095 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131096 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131097 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131098 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131099 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131100 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131101 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131102 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131103 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131104 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131105 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131106 = STRING: "VMware PCI bridge (rev: 2)" +.1.3.6.1.2.1.47.1.1.1.1.2.131107 = STRING: "VMware SVGA II Adapter (rev: 0)" +.1.3.6.1.2.1.47.1.1.1.1.2.131108 = STRING: "VMware Virtual Machine Communication Interface (rev: 16)" +.1.3.6.1.2.1.47.1.1.1.1.2.131109 = STRING: "Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev: 8)" +.1.3.6.1.2.1.47.1.1.1.1.2.131110 = STRING: "Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131111 = STRING: "Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev: 8)" +.1.3.6.1.2.1.47.1.1.1.1.2.131112 = STRING: "Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131113 = STRING: "Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.3.65536 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131073 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131074 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131075 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131076 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131077 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131078 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131079 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131080 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131081 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131082 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131083 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131084 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131085 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131086 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131087 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131088 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131089 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131090 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131091 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131092 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131093 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131094 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131095 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131096 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131097 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131098 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131099 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131100 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131101 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131102 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131103 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131104 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131105 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131106 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131107 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131108 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131109 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131110 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131111 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131112 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131113 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.4.65536 = INTEGER: 0 +.1.3.6.1.2.1.47.1.1.1.1.4.131073 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131074 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131075 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131076 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131077 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131078 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131079 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131080 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131081 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131082 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131083 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131084 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131085 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131086 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131087 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131088 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131089 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131090 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131091 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131092 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131093 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131094 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131095 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131096 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131097 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131098 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131099 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131100 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131101 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131102 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131103 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131104 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131105 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131106 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131107 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131108 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131109 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131110 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131111 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131112 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131113 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.5.65536 = INTEGER: 3 +.1.3.6.1.2.1.47.1.1.1.1.5.131073 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131074 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131075 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131076 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131077 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131078 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131079 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131080 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131081 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131082 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131083 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131084 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131085 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131086 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131087 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131088 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131089 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131090 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131091 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131092 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131093 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131094 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131095 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131096 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131097 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131098 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131099 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131100 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131101 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131102 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131103 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131104 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131105 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131106 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131107 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131108 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131109 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131110 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131111 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131112 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131113 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.6.65536 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131073 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131074 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131075 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131076 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131077 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131078 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131079 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131080 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131081 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131082 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131083 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131084 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131085 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131086 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131087 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131088 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131089 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131090 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131091 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131092 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131093 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131094 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131095 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131096 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131097 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131098 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131099 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131100 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131101 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131102 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131103 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131104 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131105 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131106 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131107 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131108 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131109 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131110 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131111 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131112 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131113 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.7.65536 = STRING: "Intel(R)" +.1.3.6.1.2.1.47.1.1.1.1.7.131073 = STRING: "02:00.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131074 = STRING: "00:18.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131075 = STRING: "00:18.6" +.1.3.6.1.2.1.47.1.1.1.1.7.131076 = STRING: "00:18.5" +.1.3.6.1.2.1.47.1.1.1.1.7.131077 = STRING: "00:18.4" +.1.3.6.1.2.1.47.1.1.1.1.7.131078 = STRING: "00:18.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131079 = STRING: "00:18.2" +.1.3.6.1.2.1.47.1.1.1.1.7.131080 = STRING: "00:18.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131081 = STRING: "00:18.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131082 = STRING: "00:17.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131083 = STRING: "00:17.6" +.1.3.6.1.2.1.47.1.1.1.1.7.131084 = STRING: "00:17.5" +.1.3.6.1.2.1.47.1.1.1.1.7.131085 = STRING: "00:17.4" +.1.3.6.1.2.1.47.1.1.1.1.7.131086 = STRING: "00:17.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131087 = STRING: "00:17.2" +.1.3.6.1.2.1.47.1.1.1.1.7.131088 = STRING: "00:17.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131089 = STRING: "00:17.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131090 = STRING: "00:16.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131091 = STRING: "00:16.6" +.1.3.6.1.2.1.47.1.1.1.1.7.131092 = STRING: "00:16.5" +.1.3.6.1.2.1.47.1.1.1.1.7.131093 = STRING: "00:16.4" +.1.3.6.1.2.1.47.1.1.1.1.7.131094 = STRING: "00:16.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131095 = STRING: "00:16.2" +.1.3.6.1.2.1.47.1.1.1.1.7.131096 = STRING: "00:16.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131097 = STRING: "00:16.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131098 = STRING: "00:15.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131099 = STRING: "00:15.6" +.1.3.6.1.2.1.47.1.1.1.1.7.131100 = STRING: "00:15.5" +.1.3.6.1.2.1.47.1.1.1.1.7.131101 = STRING: "00:15.4" +.1.3.6.1.2.1.47.1.1.1.1.7.131102 = STRING: "00:15.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131103 = STRING: "00:15.2" +.1.3.6.1.2.1.47.1.1.1.1.7.131104 = STRING: "00:15.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131105 = STRING: "00:15.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131106 = STRING: "00:11.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131107 = STRING: "00:0f.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131108 = STRING: "00:07.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131109 = STRING: "00:07.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131110 = STRING: "00:07.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131111 = STRING: "00:07.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131112 = STRING: "00:01.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131113 = STRING: "00:00.0" +.1.3.6.1.2.1.47.1.1.1.1.8.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.12.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.12.131073 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131074 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131075 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131076 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131077 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131078 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131079 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131080 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131081 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131082 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131083 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131084 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131085 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131086 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131087 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131088 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131089 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131090 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131091 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131092 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131093 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131094 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131095 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131096 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131097 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131098 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131099 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131100 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131101 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131102 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131103 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131104 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131105 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131106 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131107 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131108 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131109 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131110 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131111 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131112 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131113 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.13.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.13.131073 = STRING: "0x100f" +.1.3.6.1.2.1.47.1.1.1.1.13.131074 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131075 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131076 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131077 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131078 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131079 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131080 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131081 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131082 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131083 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131084 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131085 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131086 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131087 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131088 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131089 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131090 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131091 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131092 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131093 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131094 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131095 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131096 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131097 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131098 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131099 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131100 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131101 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131102 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131103 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131104 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131105 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131106 = STRING: "0x0790" +.1.3.6.1.2.1.47.1.1.1.1.13.131107 = STRING: "0x0405" +.1.3.6.1.2.1.47.1.1.1.1.13.131108 = STRING: "0x0740" +.1.3.6.1.2.1.47.1.1.1.1.13.131109 = STRING: "0x7113" +.1.3.6.1.2.1.47.1.1.1.1.13.131110 = STRING: "0x7111" +.1.3.6.1.2.1.47.1.1.1.1.13.131111 = STRING: "0x7110" +.1.3.6.1.2.1.47.1.1.1.1.13.131112 = STRING: "0x7191" +.1.3.6.1.2.1.47.1.1.1.1.13.131113 = STRING: "0x7190" +.1.3.6.1.2.1.47.1.1.1.1.14.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.16.65536 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131073 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131074 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131075 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131076 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131077 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131078 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131079 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131080 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131081 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131082 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131083 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131084 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131085 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131086 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131087 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131088 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131089 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131090 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131091 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131092 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131093 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131094 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131095 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131096 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131097 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131098 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131099 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131100 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131101 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131102 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131103 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131104 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131105 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131106 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131107 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131108 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131109 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131110 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131111 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131112 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131113 = INTEGER: 2 +.1.3.6.1.2.1.9999.1.1.1.1.0 = STRING: "MikroTik DHCP server" +.1.3.6.1.2.1.9999.1.1.1.2.0 = OID: .1.3.6.1.4.1.14988.1 +.1.3.6.1.4.1.9.9.150.1.1.1.0 = Gauge32: 0 +.1.3.6.1.4.1.2021.11.10.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.1.1.0 = INTEGER: 62464 +.1.3.6.1.4.1.3495.1.1.2.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.1.3.0 = INTEGER: 152 +.1.3.6.1.4.1.3495.1.3.2.2.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.3.2.5.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.3.2.10.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.3.2.12.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.3.2.13.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.1.4.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.1.6.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.1.10.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.3.1.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.2.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.3.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.4.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.5.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.6.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.7.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.14.0 = INTEGER: 2303 +.1.3.6.1.4.1.14988.1.1.4.1.0 = STRING: "8B+nBssLaXL" +.1.3.6.1.4.1.14988.1.1.4.3.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.4.4.0 = STRING: "6.48.4" +.1.3.6.1.4.1.14988.1.1.6.1.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.7.1.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.7.2.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.7.5.0 = "" +.1.3.6.1.4.1.14988.1.1.7.6.0 = STRING: "Aug/18/2021 06:43:27" +.1.3.6.1.4.1.14988.1.1.11.1.1.2.1 = IpAddress: 192.168.178.30 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.2 = IpAddress: 192.168.178.74 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.3 = IpAddress: 192.168.178.56 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.4 = IpAddress: 172.16.0.1 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.5 = IpAddress: 192.168.178.58 +.1.3.6.1.4.1.14988.1.1.11.1.1.3.1 = Hex-STRING: 5C 71 0D 26 AC 43 +.1.3.6.1.4.1.14988.1.1.11.1.1.3.2 = Hex-STRING: 00 50 56 82 EF FC +.1.3.6.1.4.1.14988.1.1.11.1.1.3.3 = Hex-STRING: 00 50 56 82 23 35 +.1.3.6.1.4.1.14988.1.1.11.1.1.3.4 = Hex-STRING: 00 50 56 82 20 E2 +.1.3.6.1.4.1.14988.1.1.11.1.1.3.5 = Hex-STRING: 00 50 56 82 62 AB +.1.3.6.1.4.1.14988.1.1.11.1.1.4.1 = STRING: "2.5.8.12" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.2 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.3 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.4 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.5 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.1 = STRING: "Cisco SG350-10 (PID:SG350-10-K9)-VSD" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.2 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.3 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.4 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.5 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.1 = STRING: "sw01-office" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.2 = STRING: "router-2" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.3 = STRING: "elastic-01" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.4 = STRING: "opn-fw-01.clab.labmonkeys.tech" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.5 = STRING: "onms-hzn" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.1 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.2 = STRING: "J7c5gwsGOmJ" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.3 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.4 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.5 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.8.1 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.2 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.3 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.4 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.5 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.13.1.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.13.2.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.14.1.1.2.1 = STRING: "ether1" +.1.3.6.1.4.1.14988.1.1.14.1.1.11.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.12.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.13.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.14.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.15.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.16.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.17.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.18.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.19.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.20.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.21.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.31.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.32.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.33.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.34.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.35.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.36.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.37.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.38.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.39.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.40.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.41.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.42.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.43.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.44.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.45.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.46.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.47.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.48.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.49.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.50.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.51.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.52.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.53.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.54.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.55.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.61.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.62.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.63.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.64.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.65.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.66.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.67.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.68.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.69.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.70.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.71.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.72.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.73.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.74.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.75.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.76.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.77.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.78.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.79.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.80.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.81.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.82.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.83.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.84.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.85.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.86.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.87.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.88.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.89.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.90.1 = Counter32: 0 +.1.3.6.1.4.1.14988.1.1.20.1.1.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.20.2.1 = No more variables left in this MIB View (It is past the end of the MIB tree) diff --git a/features/enlinkd/tests/src/test/resources/linkd/nms13637/router-2-walk.txt b/features/enlinkd/tests/src/test/resources/linkd/nms13637/router-2-walk.txt new file mode 100644 index 000000000000..fef858704114 --- /dev/null +++ b/features/enlinkd/tests/src/test/resources/linkd/nms13637/router-2-walk.txt @@ -0,0 +1,1014 @@ +.1.0.8802.1.1.2.1.3.3.0 = STRING: "router-2" +.1.0.8802.1.1.2.1.3.4.0 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.3.5.0 = STRING: "(" +.1.0.8802.1.1.2.1.3.6.0 = STRING: " " +.1.0.8802.1.1.2.1.3.7.1.2.1 = INTEGER: 3 +.1.0.8802.1.1.2.1.3.7.1.3.1 = Hex-STRING: 00 50 56 82 EF FC +.1.0.8802.1.1.2.1.3.7.1.4.1 = STRING: "ether1" +.1.0.8802.1.1.2.1.4.1.1.4.0.0.1 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.2 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.3 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.4 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.5 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.5.0.0.1 = Hex-STRING: 00 50 56 82 A1 05 +.1.0.8802.1.1.2.1.4.1.1.5.0.0.2 = Hex-STRING: 00 50 56 82 23 35 +.1.0.8802.1.1.2.1.4.1.1.5.0.0.3 = Hex-STRING: 00 50 56 82 20 E2 +.1.0.8802.1.1.2.1.4.1.1.5.0.0.4 = Hex-STRING: 00 50 56 82 62 AB +.1.0.8802.1.1.2.1.4.1.1.5.0.0.5 = Hex-STRING: 5C 71 0D 26 AC 43 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.1 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.2 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.3 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.4 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.5 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.7.0.0.1 = STRING: "ether1" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.2 = STRING: "ens160" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.3 = STRING: "vmx1" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.4 = STRING: "ens160" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.5 = STRING: "gi5" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.1 = STRING: "router-1" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.2 = STRING: "elastic-01" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.3 = STRING: "opn-fw-01.clab.labmonkeys.tech" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.4 = STRING: "onms-hzn" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.5 = STRING: "sw01-office" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.1 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.2 = STRING: "Ubuntu 20.04.3 LTS Linux 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.3 = STRING: " FreeBSD 12.1-RELEASE-p20-HBSD FreeBSD 12.1-RELEASE-p20-HBSD #0 e4fc5be9c3d(stable/21.7)-dirty: Thu Sep 2 10:30:36 CEST 2021 root@sensey:/usr/obj/usr/src/amd64.amd64/sys/SMP amd64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.4 = STRING: "Ubuntu 20.04.3 LTS Linux 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.5 = "" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.1 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.2 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.3 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.4 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.5 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.1 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.2 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.3 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.4 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.5 = STRING: "(" +.1.0.8802.1.1.2.1.4.2.1.1.0.0.1 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.2 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.3 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.4 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.5 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.2.0.0.1 = STRING: "192.168.178.73" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.2 = STRING: "fd00::250:56ff:fe82:2335" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.3 = STRING: "fd00::250:56ff:fe82:20e2" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.4 = STRING: "fd00::250:56ff:fe82:62ab" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.5 = STRING: "fe80::5e71:dff:fe26:ac3e" +.1.3.6.1.2.1.1.1.0 = STRING: "RouterOS CHR" +.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.14988.1 +.1.3.6.1.2.1.1.3.0 = Timeticks: (13700) 0:02:17.00 +.1.3.6.1.2.1.1.4.0 = "" +.1.3.6.1.2.1.1.5.0 = STRING: "router-2" +.1.3.6.1.2.1.1.6.0 = "" +.1.3.6.1.2.1.1.7.0 = INTEGER: 78 +.1.3.6.1.2.1.2.1.0 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.2.1 = STRING: "ether1" +.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.4.1 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.6.1 = Hex-STRING: 00 50 56 82 EF FC +.1.3.6.1.2.1.2.2.1.7.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.9.1 = Timeticks: (1015) 0:00:10.15 +.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 39555 +.1.3.6.1.2.1.2.2.1.11.1 = Counter32: 493 +.1.3.6.1.2.1.2.2.1.12.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1 = Counter32: 22912 +.1.3.6.1.2.1.2.2.1.17.1 = Counter32: 139 +.1.3.6.1.2.1.2.2.1.18.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.21.1 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.22.1 = OID: .0.0 +.1.3.6.1.2.1.4.1.0 = INTEGER: 1 +.1.3.6.1.2.1.4.2.0 = INTEGER: 255 +.1.3.6.1.2.1.4.20.1.1.192.168.178.74 = IpAddress: 192.168.178.74 +.1.3.6.1.2.1.4.20.1.2.192.168.178.74 = INTEGER: 1 +.1.3.6.1.2.1.4.20.1.3.192.168.178.74 = IpAddress: 255.255.255.0 +.1.3.6.1.2.1.4.20.1.4.192.168.178.74 = INTEGER: 1 +.1.3.6.1.2.1.4.20.1.5.192.168.178.74 = INTEGER: 65535 +.1.3.6.1.2.1.4.21.1.1.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.21.1.1.192.168.178.0 = IpAddress: 192.168.178.0 +.1.3.6.1.2.1.4.21.1.2.0.0.0.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.2.192.168.178.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.3.0.0.0.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.3.192.168.178.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.4.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.4.192.168.178.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.5.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.5.192.168.178.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.6.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.6.192.168.178.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.7.0.0.0.0 = IpAddress: 192.168.178.1 +.1.3.6.1.2.1.4.21.1.7.192.168.178.0 = IpAddress: 192.168.178.74 +.1.3.6.1.2.1.4.21.1.8.0.0.0.0 = INTEGER: 4 +.1.3.6.1.2.1.4.21.1.8.192.168.178.0 = INTEGER: 3 +.1.3.6.1.2.1.4.21.1.9.0.0.0.0 = INTEGER: 2 +.1.3.6.1.2.1.4.21.1.9.192.168.178.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.10.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.10.192.168.178.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.11.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.21.1.11.192.168.178.0 = IpAddress: 255.255.255.0 +.1.3.6.1.2.1.4.21.1.12.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.12.192.168.178.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.13.0.0.0.0 = OID: .0.0 +.1.3.6.1.2.1.4.21.1.13.192.168.178.0 = OID: .0.0 +.1.3.6.1.2.1.4.22.1.1.1.192.168.178.27 = INTEGER: 1 +.1.3.6.1.2.1.4.22.1.1.1.192.168.178.53 = INTEGER: 1 +.1.3.6.1.2.1.4.22.1.2.1.192.168.178.27 = Hex-STRING: F0 18 98 41 0C A8 +.1.3.6.1.2.1.4.22.1.2.1.192.168.178.53 = Hex-STRING: 00 50 56 82 08 F6 +.1.3.6.1.2.1.4.22.1.3.1.192.168.178.27 = IpAddress: 192.168.178.27 +.1.3.6.1.2.1.4.22.1.3.1.192.168.178.53 = IpAddress: 192.168.178.53 +.1.3.6.1.2.1.4.22.1.4.1.192.168.178.27 = INTEGER: 3 +.1.3.6.1.2.1.4.22.1.4.1.192.168.178.53 = INTEGER: 3 +.1.3.6.1.2.1.4.24.3.0 = Gauge32: 2 +.1.3.6.1.2.1.4.24.4.1.1.0.0.0.0.0.0.0.0.0.192.168.178.1 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.24.4.1.1.192.168.178.0.255.255.255.0.0.192.168.178.74 = IpAddress: 192.168.178.0 +.1.3.6.1.2.1.4.24.4.1.2.0.0.0.0.0.0.0.0.0.192.168.178.1 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.24.4.1.2.192.168.178.0.255.255.255.0.0.192.168.178.74 = IpAddress: 255.255.255.0 +.1.3.6.1.2.1.4.24.4.1.3.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.3.192.168.178.0.255.255.255.0.0.192.168.178.74 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.4.0.0.0.0.0.0.0.0.0.192.168.178.1 = IpAddress: 192.168.178.1 +.1.3.6.1.2.1.4.24.4.1.4.192.168.178.0.255.255.255.0.0.192.168.178.74 = IpAddress: 192.168.178.74 +.1.3.6.1.2.1.4.24.4.1.5.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 1 +.1.3.6.1.2.1.4.24.4.1.5.192.168.178.0.255.255.255.0.0.192.168.178.74 = INTEGER: 1 +.1.3.6.1.2.1.4.24.4.1.6.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 4 +.1.3.6.1.2.1.4.24.4.1.6.192.168.178.0.255.255.255.0.0.192.168.178.74 = INTEGER: 3 +.1.3.6.1.2.1.4.24.4.1.7.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 3 +.1.3.6.1.2.1.4.24.4.1.7.192.168.178.0.255.255.255.0.0.192.168.178.74 = INTEGER: 2 +.1.3.6.1.2.1.4.24.4.1.8.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.8.192.168.178.0.255.255.255.0.0.192.168.178.74 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.9.0.0.0.0.0.0.0.0.0.192.168.178.1 = OID: .0.0 +.1.3.6.1.2.1.4.24.4.1.9.192.168.178.0.255.255.255.0.0.192.168.178.74 = OID: .0.0 +.1.3.6.1.2.1.4.24.4.1.10.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.10.192.168.178.0.255.255.255.0.0.192.168.178.74 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.11.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 1 +.1.3.6.1.2.1.4.24.4.1.11.192.168.178.0.255.255.255.0.0.192.168.178.74 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.12.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.12.192.168.178.0.255.255.255.0.0.192.168.178.74 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.13.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.13.192.168.178.0.255.255.255.0.0.192.168.178.74 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.14.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.14.192.168.178.0.255.255.255.0.0.192.168.178.74 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.15.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.15.192.168.178.0.255.255.255.0.0.192.168.178.74 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.16.0.0.0.0.0.0.0.0.0.192.168.178.1 = INTEGER: 1 +.1.3.6.1.2.1.4.24.4.1.16.192.168.178.0.255.255.255.0.0.192.168.178.74 = INTEGER: 1 +.1.3.6.1.2.1.17.2.1.0 = INTEGER: 3 +.1.3.6.1.2.1.25.1.1.0 = Timeticks: (13700) 0:02:17.00 +.1.3.6.1.2.1.25.1.2.0 = Hex-STRING: 07 E5 0A 1A 13 25 16 00 2B 00 00 +.1.3.6.1.2.1.25.2.2.0 = INTEGER: 229376 +.1.3.6.1.2.1.25.2.3.1.1.65536 = INTEGER: 65536 +.1.3.6.1.2.1.25.2.3.1.1.131072 = INTEGER: 131072 +.1.3.6.1.2.1.25.2.3.1.2.65536 = OID: .1.3.6.1.2.1.25.2.1.2 +.1.3.6.1.2.1.25.2.3.1.2.131072 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.3.65536 = STRING: "main memory" +.1.3.6.1.2.1.25.2.3.1.3.131072 = STRING: "system disk" +.1.3.6.1.2.1.25.2.3.1.4.65536 = INTEGER: 1024 +.1.3.6.1.2.1.25.2.3.1.4.131072 = INTEGER: 1024 +.1.3.6.1.2.1.25.2.3.1.5.65536 = INTEGER: 229376 +.1.3.6.1.2.1.25.2.3.1.5.131072 = INTEGER: 65028 +.1.3.6.1.2.1.25.2.3.1.6.65536 = INTEGER: 21024 +.1.3.6.1.2.1.25.2.3.1.6.131072 = INTEGER: 34344 +.1.3.6.1.2.1.25.2.3.1.7.65536 = Counter32: 0 +.1.3.6.1.2.1.25.2.3.1.7.131072 = Counter32: 0 +.1.3.6.1.2.1.25.3.2.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.25.3.2.1.2.1 = OID: .1.3.6.1.2.1.25.3.1.3 +.1.3.6.1.2.1.25.3.2.1.3.1 = "" +.1.3.6.1.2.1.25.3.2.1.4.1 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.5.1 = INTEGER: 2 +.1.3.6.1.2.1.25.3.2.1.6.1 = Counter32: 0 +.1.3.6.1.2.1.25.3.3.1.1.1 = OID: .0.0 +.1.3.6.1.2.1.25.3.3.1.2.1 = INTEGER: 0 +.1.3.6.1.2.1.31.1.1.1.1.1 = STRING: "ether1" +.1.3.6.1.2.1.31.1.1.1.2.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.6.1 = Counter64: 39555 +.1.3.6.1.2.1.31.1.1.1.7.1 = Counter64: 493 +.1.3.6.1.2.1.31.1.1.1.8.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.1 = Counter64: 22912 +.1.3.6.1.2.1.31.1.1.1.11.1 = Counter64: 139 +.1.3.6.1.2.1.31.1.1.1.12.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.15.1 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.18.1 = "" +.1.3.6.1.2.1.33.1.3.2.0 = INTEGER: 1 +.1.3.6.1.2.1.33.1.4.3.0 = INTEGER: 1 +.1.3.6.1.2.1.47.1.1.1.1.1.65536 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.1.131073 = INTEGER: 131073 +.1.3.6.1.2.1.47.1.1.1.1.1.131074 = INTEGER: 131074 +.1.3.6.1.2.1.47.1.1.1.1.1.131075 = INTEGER: 131075 +.1.3.6.1.2.1.47.1.1.1.1.1.131076 = INTEGER: 131076 +.1.3.6.1.2.1.47.1.1.1.1.1.131077 = INTEGER: 131077 +.1.3.6.1.2.1.47.1.1.1.1.1.131078 = INTEGER: 131078 +.1.3.6.1.2.1.47.1.1.1.1.1.131079 = INTEGER: 131079 +.1.3.6.1.2.1.47.1.1.1.1.1.131080 = INTEGER: 131080 +.1.3.6.1.2.1.47.1.1.1.1.1.131081 = INTEGER: 131081 +.1.3.6.1.2.1.47.1.1.1.1.1.131082 = INTEGER: 131082 +.1.3.6.1.2.1.47.1.1.1.1.1.131083 = INTEGER: 131083 +.1.3.6.1.2.1.47.1.1.1.1.1.131084 = INTEGER: 131084 +.1.3.6.1.2.1.47.1.1.1.1.1.131085 = INTEGER: 131085 +.1.3.6.1.2.1.47.1.1.1.1.1.131086 = INTEGER: 131086 +.1.3.6.1.2.1.47.1.1.1.1.1.131087 = INTEGER: 131087 +.1.3.6.1.2.1.47.1.1.1.1.1.131088 = INTEGER: 131088 +.1.3.6.1.2.1.47.1.1.1.1.1.131089 = INTEGER: 131089 +.1.3.6.1.2.1.47.1.1.1.1.1.131090 = INTEGER: 131090 +.1.3.6.1.2.1.47.1.1.1.1.1.131091 = INTEGER: 131091 +.1.3.6.1.2.1.47.1.1.1.1.1.131092 = INTEGER: 131092 +.1.3.6.1.2.1.47.1.1.1.1.1.131093 = INTEGER: 131093 +.1.3.6.1.2.1.47.1.1.1.1.1.131094 = INTEGER: 131094 +.1.3.6.1.2.1.47.1.1.1.1.1.131095 = INTEGER: 131095 +.1.3.6.1.2.1.47.1.1.1.1.1.131096 = INTEGER: 131096 +.1.3.6.1.2.1.47.1.1.1.1.1.131097 = INTEGER: 131097 +.1.3.6.1.2.1.47.1.1.1.1.1.131098 = INTEGER: 131098 +.1.3.6.1.2.1.47.1.1.1.1.1.131099 = INTEGER: 131099 +.1.3.6.1.2.1.47.1.1.1.1.1.131100 = INTEGER: 131100 +.1.3.6.1.2.1.47.1.1.1.1.1.131101 = INTEGER: 131101 +.1.3.6.1.2.1.47.1.1.1.1.1.131102 = INTEGER: 131102 +.1.3.6.1.2.1.47.1.1.1.1.1.131103 = INTEGER: 131103 +.1.3.6.1.2.1.47.1.1.1.1.1.131104 = INTEGER: 131104 +.1.3.6.1.2.1.47.1.1.1.1.1.131105 = INTEGER: 131105 +.1.3.6.1.2.1.47.1.1.1.1.1.131106 = INTEGER: 131106 +.1.3.6.1.2.1.47.1.1.1.1.1.131107 = INTEGER: 131107 +.1.3.6.1.2.1.47.1.1.1.1.1.131108 = INTEGER: 131108 +.1.3.6.1.2.1.47.1.1.1.1.1.131109 = INTEGER: 131109 +.1.3.6.1.2.1.47.1.1.1.1.1.131110 = INTEGER: 131110 +.1.3.6.1.2.1.47.1.1.1.1.1.131111 = INTEGER: 131111 +.1.3.6.1.2.1.47.1.1.1.1.1.131112 = INTEGER: 131112 +.1.3.6.1.2.1.47.1.1.1.1.1.131113 = INTEGER: 131113 +.1.3.6.1.2.1.47.1.1.1.1.2.65536 = STRING: "RouterOS 6.48.4 (stable) on CHR" +.1.3.6.1.2.1.47.1.1.1.1.2.131073 = STRING: "Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131074 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131075 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131076 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131077 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131078 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131079 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131080 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131081 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131082 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131083 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131084 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131085 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131086 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131087 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131088 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131089 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131090 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131091 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131092 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131093 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131094 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131095 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131096 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131097 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131098 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131099 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131100 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131101 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131102 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131103 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131104 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131105 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131106 = STRING: "VMware PCI bridge (rev: 2)" +.1.3.6.1.2.1.47.1.1.1.1.2.131107 = STRING: "VMware SVGA II Adapter (rev: 0)" +.1.3.6.1.2.1.47.1.1.1.1.2.131108 = STRING: "VMware Virtual Machine Communication Interface (rev: 16)" +.1.3.6.1.2.1.47.1.1.1.1.2.131109 = STRING: "Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev: 8)" +.1.3.6.1.2.1.47.1.1.1.1.2.131110 = STRING: "Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131111 = STRING: "Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev: 8)" +.1.3.6.1.2.1.47.1.1.1.1.2.131112 = STRING: "Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131113 = STRING: "Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.3.65536 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131073 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131074 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131075 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131076 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131077 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131078 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131079 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131080 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131081 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131082 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131083 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131084 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131085 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131086 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131087 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131088 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131089 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131090 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131091 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131092 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131093 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131094 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131095 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131096 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131097 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131098 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131099 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131100 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131101 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131102 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131103 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131104 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131105 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131106 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131107 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131108 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131109 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131110 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131111 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131112 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131113 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.4.65536 = INTEGER: 0 +.1.3.6.1.2.1.47.1.1.1.1.4.131073 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131074 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131075 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131076 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131077 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131078 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131079 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131080 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131081 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131082 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131083 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131084 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131085 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131086 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131087 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131088 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131089 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131090 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131091 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131092 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131093 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131094 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131095 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131096 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131097 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131098 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131099 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131100 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131101 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131102 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131103 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131104 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131105 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131106 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131107 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131108 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131109 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131110 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131111 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131112 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131113 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.5.65536 = INTEGER: 3 +.1.3.6.1.2.1.47.1.1.1.1.5.131073 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131074 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131075 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131076 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131077 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131078 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131079 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131080 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131081 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131082 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131083 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131084 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131085 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131086 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131087 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131088 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131089 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131090 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131091 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131092 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131093 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131094 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131095 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131096 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131097 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131098 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131099 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131100 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131101 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131102 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131103 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131104 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131105 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131106 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131107 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131108 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131109 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131110 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131111 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131112 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131113 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.6.65536 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131073 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131074 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131075 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131076 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131077 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131078 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131079 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131080 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131081 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131082 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131083 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131084 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131085 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131086 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131087 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131088 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131089 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131090 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131091 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131092 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131093 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131094 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131095 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131096 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131097 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131098 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131099 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131100 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131101 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131102 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131103 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131104 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131105 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131106 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131107 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131108 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131109 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131110 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131111 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131112 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131113 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.7.65536 = STRING: "Intel(R)" +.1.3.6.1.2.1.47.1.1.1.1.7.131073 = STRING: "02:00.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131074 = STRING: "00:18.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131075 = STRING: "00:18.6" +.1.3.6.1.2.1.47.1.1.1.1.7.131076 = STRING: "00:18.5" +.1.3.6.1.2.1.47.1.1.1.1.7.131077 = STRING: "00:18.4" +.1.3.6.1.2.1.47.1.1.1.1.7.131078 = STRING: "00:18.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131079 = STRING: "00:18.2" +.1.3.6.1.2.1.47.1.1.1.1.7.131080 = STRING: "00:18.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131081 = STRING: "00:18.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131082 = STRING: "00:17.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131083 = STRING: "00:17.6" +.1.3.6.1.2.1.47.1.1.1.1.7.131084 = STRING: "00:17.5" +.1.3.6.1.2.1.47.1.1.1.1.7.131085 = STRING: "00:17.4" +.1.3.6.1.2.1.47.1.1.1.1.7.131086 = STRING: "00:17.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131087 = STRING: "00:17.2" +.1.3.6.1.2.1.47.1.1.1.1.7.131088 = STRING: "00:17.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131089 = STRING: "00:17.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131090 = STRING: "00:16.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131091 = STRING: "00:16.6" +.1.3.6.1.2.1.47.1.1.1.1.7.131092 = STRING: "00:16.5" +.1.3.6.1.2.1.47.1.1.1.1.7.131093 = STRING: "00:16.4" +.1.3.6.1.2.1.47.1.1.1.1.7.131094 = STRING: "00:16.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131095 = STRING: "00:16.2" +.1.3.6.1.2.1.47.1.1.1.1.7.131096 = STRING: "00:16.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131097 = STRING: "00:16.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131098 = STRING: "00:15.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131099 = STRING: "00:15.6" +.1.3.6.1.2.1.47.1.1.1.1.7.131100 = STRING: "00:15.5" +.1.3.6.1.2.1.47.1.1.1.1.7.131101 = STRING: "00:15.4" +.1.3.6.1.2.1.47.1.1.1.1.7.131102 = STRING: "00:15.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131103 = STRING: "00:15.2" +.1.3.6.1.2.1.47.1.1.1.1.7.131104 = STRING: "00:15.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131105 = STRING: "00:15.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131106 = STRING: "00:11.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131107 = STRING: "00:0f.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131108 = STRING: "00:07.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131109 = STRING: "00:07.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131110 = STRING: "00:07.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131111 = STRING: "00:07.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131112 = STRING: "00:01.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131113 = STRING: "00:00.0" +.1.3.6.1.2.1.47.1.1.1.1.8.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.12.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.12.131073 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131074 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131075 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131076 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131077 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131078 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131079 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131080 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131081 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131082 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131083 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131084 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131085 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131086 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131087 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131088 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131089 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131090 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131091 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131092 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131093 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131094 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131095 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131096 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131097 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131098 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131099 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131100 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131101 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131102 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131103 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131104 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131105 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131106 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131107 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131108 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131109 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131110 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131111 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131112 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131113 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.13.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.13.131073 = STRING: "0x100f" +.1.3.6.1.2.1.47.1.1.1.1.13.131074 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131075 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131076 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131077 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131078 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131079 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131080 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131081 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131082 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131083 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131084 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131085 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131086 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131087 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131088 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131089 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131090 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131091 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131092 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131093 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131094 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131095 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131096 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131097 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131098 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131099 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131100 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131101 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131102 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131103 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131104 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131105 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131106 = STRING: "0x0790" +.1.3.6.1.2.1.47.1.1.1.1.13.131107 = STRING: "0x0405" +.1.3.6.1.2.1.47.1.1.1.1.13.131108 = STRING: "0x0740" +.1.3.6.1.2.1.47.1.1.1.1.13.131109 = STRING: "0x7113" +.1.3.6.1.2.1.47.1.1.1.1.13.131110 = STRING: "0x7111" +.1.3.6.1.2.1.47.1.1.1.1.13.131111 = STRING: "0x7110" +.1.3.6.1.2.1.47.1.1.1.1.13.131112 = STRING: "0x7191" +.1.3.6.1.2.1.47.1.1.1.1.13.131113 = STRING: "0x7190" +.1.3.6.1.2.1.47.1.1.1.1.14.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.16.65536 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131073 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131074 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131075 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131076 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131077 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131078 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131079 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131080 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131081 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131082 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131083 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131084 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131085 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131086 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131087 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131088 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131089 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131090 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131091 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131092 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131093 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131094 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131095 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131096 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131097 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131098 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131099 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131100 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131101 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131102 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131103 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131104 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131105 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131106 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131107 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131108 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131109 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131110 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131111 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131112 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131113 = INTEGER: 2 +.1.3.6.1.2.1.9999.1.1.1.1.0 = STRING: "MikroTik DHCP server" +.1.3.6.1.2.1.9999.1.1.1.2.0 = OID: .1.3.6.1.4.1.14988.1 +.1.3.6.1.4.1.9.9.150.1.1.1.0 = Gauge32: 0 +.1.3.6.1.4.1.2021.11.10.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.1.1.0 = INTEGER: 62464 +.1.3.6.1.4.1.3495.1.1.2.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.1.3.0 = INTEGER: 137 +.1.3.6.1.4.1.3495.1.3.2.2.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.3.2.5.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.3.2.10.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.3.2.12.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.3.2.13.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.1.4.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.1.6.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.1.10.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.3.1.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.2.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.3.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.4.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.5.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.6.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.7.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.14.0 = INTEGER: 2303 +.1.3.6.1.4.1.14988.1.1.4.1.0 = STRING: "J7c5gwsGOmJ" +.1.3.6.1.4.1.14988.1.1.4.3.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.4.4.0 = STRING: "6.48.4" +.1.3.6.1.4.1.14988.1.1.6.1.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.7.1.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.7.2.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.7.5.0 = "" +.1.3.6.1.4.1.14988.1.1.7.6.0 = STRING: "Aug/18/2021 06:43:27" +.1.3.6.1.4.1.14988.1.1.11.1.1.2.1 = IpAddress: 192.168.178.73 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.2 = IpAddress: 192.168.178.56 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.3 = IpAddress: 172.16.0.1 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.4 = IpAddress: 192.168.178.58 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.5 = IpAddress: 192.168.178.30 +.1.3.6.1.4.1.14988.1.1.11.1.1.3.1 = Hex-STRING: 00 50 56 82 A1 05 +.1.3.6.1.4.1.14988.1.1.11.1.1.3.2 = Hex-STRING: 00 50 56 82 23 35 +.1.3.6.1.4.1.14988.1.1.11.1.1.3.3 = Hex-STRING: 00 50 56 82 20 E2 +.1.3.6.1.4.1.14988.1.1.11.1.1.3.4 = Hex-STRING: 00 50 56 82 62 AB +.1.3.6.1.4.1.14988.1.1.11.1.1.3.5 = Hex-STRING: 5C 71 0D 26 AC 43 +.1.3.6.1.4.1.14988.1.1.11.1.1.4.1 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.2 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.3 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.4 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.5 = STRING: "2.5.8.12" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.1 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.2 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.3 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.4 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.5 = STRING: "Cisco SG350-10 (PID:SG350-10-K9)-VSD" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.1 = STRING: "router-1" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.2 = STRING: "elastic-01" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.3 = STRING: "opn-fw-01.clab.labmonkeys.tech" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.4 = STRING: "onms-hzn" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.5 = STRING: "sw01-office" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.1 = STRING: "8B+nBssLaXL" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.2 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.3 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.4 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.5 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.8.1 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.2 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.3 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.4 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.5 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.13.1.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.13.2.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.14.1.1.2.1 = STRING: "ether1" +.1.3.6.1.4.1.14988.1.1.14.1.1.11.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.12.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.13.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.14.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.15.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.16.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.17.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.18.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.19.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.20.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.21.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.31.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.32.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.33.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.34.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.35.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.36.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.37.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.38.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.39.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.40.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.41.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.42.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.43.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.44.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.45.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.46.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.47.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.48.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.49.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.50.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.51.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.52.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.53.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.54.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.55.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.61.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.62.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.63.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.64.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.65.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.66.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.67.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.68.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.69.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.70.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.71.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.72.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.73.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.74.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.75.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.76.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.77.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.78.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.79.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.80.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.81.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.82.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.83.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.84.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.85.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.86.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.87.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.88.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.89.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.90.1 = Counter32: 0 +.1.3.6.1.4.1.14988.1.1.20.1.1.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.20.2.1 = No more variables left in this MIB View (It is past the end of the MIB tree) diff --git a/features/enlinkd/tests/src/test/resources/linkd/nms13637/router-3-walk.txt b/features/enlinkd/tests/src/test/resources/linkd/nms13637/router-3-walk.txt new file mode 100644 index 000000000000..4870ea5e45bb --- /dev/null +++ b/features/enlinkd/tests/src/test/resources/linkd/nms13637/router-3-walk.txt @@ -0,0 +1,1632 @@ +.1.0.8802.1.1.2.1.3.3.0 = STRING: "router-3" +.1.0.8802.1.1.2.1.3.4.0 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.3.5.0 = STRING: "(" +.1.0.8802.1.1.2.1.3.6.0 = STRING: " " +.1.0.8802.1.1.2.1.3.7.1.2.1 = INTEGER: 3 +.1.0.8802.1.1.2.1.3.7.1.2.2 = INTEGER: 3 +.1.0.8802.1.1.2.1.3.7.1.2.3 = INTEGER: 3 +.1.0.8802.1.1.2.1.3.7.1.3.1 = STRING: "00:50:56:82:A1:35" +.1.0.8802.1.1.2.1.3.7.1.3.2 = STRING: "00:50:56:82:04:D6" +.1.0.8802.1.1.2.1.3.7.1.3.3 = STRING: "00:50:56:82:7D:A0" +.1.0.8802.1.1.2.1.3.7.1.4.1 = STRING: "ether1" +.1.0.8802.1.1.2.1.3.7.1.4.2 = STRING: "ether2" +.1.0.8802.1.1.2.1.3.7.1.4.3 = STRING: "ether3" +.1.0.8802.1.1.2.1.4.1.1.4.0.0.1 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.2 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.3 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.4 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.5 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.6 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.7 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.8 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.9 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.10 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.11 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.12 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.13 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.14 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.15 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.16 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.17 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.18 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.19 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.20 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.21 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.22 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.23 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.24 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.25 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.26 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.0.27 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.5.0.0.1 = STRING: "5C:71:0D:26:AC:43" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.2 = STRING: "5C:71:0D:26:AC:43" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.3 = STRING: "5C:71:0D:26:AC:43" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.4 = STRING: "00:50:56:82:CC:F2" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.5 = STRING: "00:50:56:82:CC:F2" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.6 = STRING: "00:50:56:82:CC:F2" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.7 = STRING: "00:50:56:82:7D:A0" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.8 = STRING: "00:50:56:82:7D:A0" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.9 = STRING: "00:50:56:82:43:20" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.10 = STRING: "00:50:56:82:43:20" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.11 = STRING: "00:50:56:82:43:20" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.12 = STRING: "00:50:56:82:04:D6" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.13 = STRING: "00:50:56:82:04:D6" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.14 = STRING: "00:50:56:82:EF:FC" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.15 = STRING: "00:50:56:82:EF:FC" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.16 = STRING: "00:50:56:82:EF:FC" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.17 = STRING: "00:50:56:82:A1:05" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.18 = STRING: "00:50:56:82:A1:05" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.19 = STRING: "00:50:56:82:23:35" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.20 = STRING: "00:50:56:82:23:35" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.21 = STRING: "00:50:56:82:23:35" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.22 = STRING: "00:50:56:82:62:AB" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.23 = STRING: "00:50:56:82:62:AB" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.24 = STRING: "00:50:56:82:62:AB" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.25 = STRING: "00:50:56:82:20:E2" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.26 = STRING: "00:50:56:82:20:E2" +.1.0.8802.1.1.2.1.4.1.1.5.0.0.27 = STRING: "00:50:56:82:20:E2" +.1.0.8802.1.1.2.1.4.1.1.6.0.0.1 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.2 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.3 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.4 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.5 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.6 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.7 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.8 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.9 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.10 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.11 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.12 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.13 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.14 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.15 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.16 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.17 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.18 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.19 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.20 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.21 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.22 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.23 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.24 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.25 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.26 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.0.27 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.7.0.0.1 = STRING: "gi5" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.2 = STRING: "gi5" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.3 = STRING: "gi5" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.4 = STRING: "ether3" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.5 = STRING: "ether3" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.6 = STRING: "ether3" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.7 = STRING: "ether3" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.8 = STRING: "ether3" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.9 = STRING: "ether2" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.10 = STRING: "ether2" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.11 = STRING: "ether2" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.12 = STRING: "ether2" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.13 = STRING: "ether2" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.14 = STRING: "ether1" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.15 = STRING: "ether1" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.16 = STRING: "ether1" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.17 = STRING: "ether1" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.18 = STRING: "ether1" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.19 = STRING: "ens160" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.20 = STRING: "ens160" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.21 = STRING: "ens160" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.22 = STRING: "ens160" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.23 = STRING: "ens160" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.24 = STRING: "ens160" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.25 = STRING: "vmx1" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.26 = STRING: "vmx1" +.1.0.8802.1.1.2.1.4.1.1.7.0.0.27 = STRING: "vmx1" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.1 = STRING: "5c710d26ac3e" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.2 = STRING: "5c710d26ac3e" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.3 = STRING: "5c710d26ac3e" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.4 = STRING: "router-2" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.5 = STRING: "router-2" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.6 = STRING: "router-2" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.7 = STRING: "router-3" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.8 = STRING: "router-3" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.9 = STRING: "router-2" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.10 = STRING: "router-2" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.11 = STRING: "router-2" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.12 = STRING: "router-3" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.13 = STRING: "router-3" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.14 = STRING: "router-2" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.15 = STRING: "router-2" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.16 = STRING: "router-2" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.17 = STRING: "router-3" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.18 = STRING: "router-3" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.19 = STRING: "elastic-01" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.20 = STRING: "elastic-01" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.21 = STRING: "elastic-01" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.22 = STRING: "onms-hzn" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.23 = STRING: "onms-hzn" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.24 = STRING: "onms-hzn" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.25 = STRING: "opn-fw-01.clab.labmonkeys.tech" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.26 = STRING: "opn-fw-01.clab.labmonkeys.tech" +.1.0.8802.1.1.2.1.4.1.1.9.0.0.27 = STRING: "opn-fw-01.clab.labmonkeys.tech" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.1 = "" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.2 = "" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.3 = "" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.4 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.5 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.6 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.7 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.8 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.9 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.10 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.11 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.12 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.13 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.14 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.15 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.16 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.17 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.18 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.19 = STRING: "Ubuntu 20.04.3 LTS Linux 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.20 = STRING: "Ubuntu 20.04.3 LTS Linux 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.21 = STRING: "Ubuntu 20.04.3 LTS Linux 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.22 = STRING: "Ubuntu 20.04.3 LTS Linux 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.23 = STRING: "Ubuntu 20.04.3 LTS Linux 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.24 = STRING: "Ubuntu 20.04.3 LTS Linux 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.25 = STRING: " FreeBSD 12.1-RELEASE-p20-HBSD FreeBSD 12.1-RELEASE-p20-HBSD #0 e4fc5be9c3d(stable/21.7)-dirty: Thu Sep 2 10:30:36 CEST 2021 root@sensey:/usr/obj/usr/src/amd64.amd64/sys/SMP amd64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.26 = STRING: " FreeBSD 12.1-RELEASE-p20-HBSD FreeBSD 12.1-RELEASE-p20-HBSD #0 e4fc5be9c3d(stable/21.7)-dirty: Thu Sep 2 10:30:36 CEST 2021 root@sensey:/usr/obj/usr/src/amd64.amd64/sys/SMP amd64" +.1.0.8802.1.1.2.1.4.1.1.10.0.0.27 = STRING: " FreeBSD 12.1-RELEASE-p20-HBSD FreeBSD 12.1-RELEASE-p20-HBSD #0 e4fc5be9c3d(stable/21.7)-dirty: Thu Sep 2 10:30:36 CEST 2021 root@sensey:/usr/obj/usr/src/amd64.amd64/sys/SMP amd64" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.1 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.2 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.3 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.4 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.5 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.6 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.7 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.8 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.9 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.10 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.11 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.12 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.13 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.14 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.15 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.16 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.17 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.18 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.19 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.20 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.21 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.22 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.23 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.24 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.25 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.26 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.11.0.0.27 = STRING: "8" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.1 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.2 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.3 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.4 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.5 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.6 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.7 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.8 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.9 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.10 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.11 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.12 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.13 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.14 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.15 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.16 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.17 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.18 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.19 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.20 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.21 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.22 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.23 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.24 = STRING: "(" +.1.0.8802.1.1.2.1.4.1.1.12.0.0.25 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.26 = STRING: " " +.1.0.8802.1.1.2.1.4.1.1.12.0.0.27 = STRING: " " +.1.0.8802.1.1.2.1.4.2.1.1.0.0.1 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.2 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.3 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.4 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.5 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.6 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.7 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.8 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.9 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.10 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.11 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.12 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.13 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.14 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.15 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.16 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.17 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.18 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.19 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.20 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.21 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.22 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.23 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.24 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.25 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.26 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.1.0.0.27 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.2.0.0.1 = STRING: "fe80::5e71:dff:fe26:ac3e" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.2 = STRING: "fe80::5e71:dff:fe26:ac3e" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.3 = STRING: "fe80::5e71:dff:fe26:ac3e" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.4 = STRING: "0.0.0.0" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.5 = STRING: "0.0.0.0" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.6 = STRING: "0.0.0.0" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.7 = STRING: "0.0.0.0" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.8 = STRING: "0.0.0.0" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.9 = STRING: "0.0.0.0" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.10 = STRING: "0.0.0.0" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.11 = STRING: "0.0.0.0" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.12 = STRING: "0.0.0.0" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.13 = STRING: "0.0.0.0" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.14 = STRING: "192.168.180.74" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.15 = STRING: "192.168.180.74" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.16 = STRING: "192.168.180.74" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.17 = STRING: "192.168.180.73" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.18 = STRING: "192.168.180.73" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.19 = STRING: "fd00::250:56ff:fe82:2335" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.20 = STRING: "fd00::250:56ff:fe82:2335" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.21 = STRING: "fd00::250:56ff:fe82:2335" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.22 = STRING: "fd00::250:56ff:fe82:62ab" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.23 = STRING: "fd00::250:56ff:fe82:62ab" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.24 = STRING: "fd00::250:56ff:fe82:62ab" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.25 = STRING: "fd00::250:56ff:fe82:20e2" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.26 = STRING: "fd00::250:56ff:fe82:20e2" +.1.0.8802.1.1.2.1.4.2.1.2.0.0.27 = STRING: "fd00::250:56ff:fe82:20e2" +.1.3.6.1.2.1.1.1.0 = STRING: "RouterOS CHR" +.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.14988.1 +.1.3.6.1.2.1.1.3.0 = Timeticks: (2040700) 5:40:07.00 +.1.3.6.1.2.1.1.4.0 = "" +.1.3.6.1.2.1.1.5.0 = STRING: "router-3" +.1.3.6.1.2.1.1.6.0 = "" +.1.3.6.1.2.1.1.7.0 = INTEGER: 78 +.1.3.6.1.2.1.2.1.0 = INTEGER: 3 +.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3 +.1.3.6.1.2.1.2.2.1.2.1 = STRING: "ether1" +.1.3.6.1.2.1.2.2.1.2.2 = STRING: "ether2" +.1.3.6.1.2.1.2.2.1.2.3 = STRING: "ether3" +.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.2 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.3 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.4.1 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.2 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.3 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.2 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.3 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.6.1 = STRING: "00:50:56:82:A1:35" +.1.3.6.1.2.1.2.2.1.6.2 = STRING: "00:50:56:82:04:D6" +.1.3.6.1.2.1.2.2.1.6.3 = STRING: "00:50:56:82:7D:A0" +.1.3.6.1.2.1.2.2.1.7.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.2 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.3 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.2 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.3 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.9.1 = Timeticks: (1023) 0:00:10.23 +.1.3.6.1.2.1.2.2.1.9.2 = Timeticks: (1045) 0:00:10.45 +.1.3.6.1.2.1.2.2.1.9.3 = Timeticks: (1063) 0:00:10.63 +.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 5065206 +.1.3.6.1.2.1.2.2.1.10.2 = Counter32: 5078071 +.1.3.6.1.2.1.2.2.1.10.3 = Counter32: 5078007 +.1.3.6.1.2.1.2.2.1.11.1 = Counter32: 69251 +.1.3.6.1.2.1.2.2.1.11.2 = Counter32: 66269 +.1.3.6.1.2.1.2.2.1.11.3 = Counter32: 66268 +.1.3.6.1.2.1.2.2.1.12.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1 = Counter32: 444581 +.1.3.6.1.2.1.2.2.1.16.2 = Counter32: 111183 +.1.3.6.1.2.1.2.2.1.16.3 = Counter32: 111183 +.1.3.6.1.2.1.2.2.1.17.1 = Counter32: 4231 +.1.3.6.1.2.1.2.2.1.17.2 = Counter32: 1031 +.1.3.6.1.2.1.2.2.1.17.3 = Counter32: 1031 +.1.3.6.1.2.1.2.2.1.18.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.21.1 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.2 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.21.3 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.22.1 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.2 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.3 = OID: .0.0 +.1.3.6.1.2.1.4.1.0 = INTEGER: 1 +.1.3.6.1.2.1.4.2.0 = INTEGER: 255 +.1.3.6.1.2.1.4.20.1.1.192.168.180.73 = IpAddress: 192.168.180.73 +.1.3.6.1.2.1.4.20.1.2.192.168.180.73 = INTEGER: 1 +.1.3.6.1.2.1.4.20.1.3.192.168.180.73 = IpAddress: 255.255.255.0 +.1.3.6.1.2.1.4.20.1.4.192.168.180.73 = INTEGER: 1 +.1.3.6.1.2.1.4.20.1.5.192.168.180.73 = INTEGER: 65535 +.1.3.6.1.2.1.4.21.1.1.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.21.1.1.192.168.180.0 = IpAddress: 192.168.180.0 +.1.3.6.1.2.1.4.21.1.2.0.0.0.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.2.192.168.180.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.3.0.0.0.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.3.192.168.180.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.4.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.4.192.168.180.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.5.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.5.192.168.180.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.6.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.6.192.168.180.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.7.0.0.0.0 = IpAddress: 192.168.180.1 +.1.3.6.1.2.1.4.21.1.7.192.168.180.0 = IpAddress: 192.168.180.73 +.1.3.6.1.2.1.4.21.1.8.0.0.0.0 = INTEGER: 4 +.1.3.6.1.2.1.4.21.1.8.192.168.180.0 = INTEGER: 3 +.1.3.6.1.2.1.4.21.1.9.0.0.0.0 = INTEGER: 2 +.1.3.6.1.2.1.4.21.1.9.192.168.180.0 = INTEGER: 1 +.1.3.6.1.2.1.4.21.1.10.0.0.0.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.10.192.168.180.0 = INTEGER: 0 +.1.3.6.1.2.1.4.21.1.11.0.0.0.0 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.21.1.11.192.168.180.0 = IpAddress: 255.255.255.0 +.1.3.6.1.2.1.4.21.1.12.0.0.0.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.12.192.168.180.0 = INTEGER: -1 +.1.3.6.1.2.1.4.21.1.13.0.0.0.0 = OID: .0.0 +.1.3.6.1.2.1.4.21.1.13.192.168.180.0 = OID: .0.0 +.1.3.6.1.2.1.4.22.1.1.1.192.168.180.53 = INTEGER: 1 +.1.3.6.1.2.1.4.22.1.2.1.192.168.180.53 = Hex-STRING: 00 50 56 82 08 F6 +.1.3.6.1.2.1.4.22.1.3.1.192.168.180.53 = IpAddress: 192.168.180.53 +.1.3.6.1.2.1.4.22.1.4.1.192.168.180.53 = INTEGER: 3 +.1.3.6.1.2.1.4.24.3.0 = Gauge32: 2 +.1.3.6.1.2.1.4.24.4.1.1.0.0.0.0.0.0.0.0.0.192.168.180.1 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.24.4.1.1.192.168.180.0.255.255.255.0.0.192.168.180.73 = IpAddress: 192.168.180.0 +.1.3.6.1.2.1.4.24.4.1.2.0.0.0.0.0.0.0.0.0.192.168.180.1 = IpAddress: 0.0.0.0 +.1.3.6.1.2.1.4.24.4.1.2.192.168.180.0.255.255.255.0.0.192.168.180.73 = IpAddress: 255.255.255.0 +.1.3.6.1.2.1.4.24.4.1.3.0.0.0.0.0.0.0.0.0.192.168.180.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.3.192.168.180.0.255.255.255.0.0.192.168.180.73 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.4.0.0.0.0.0.0.0.0.0.192.168.180.1 = IpAddress: 192.168.180.1 +.1.3.6.1.2.1.4.24.4.1.4.192.168.180.0.255.255.255.0.0.192.168.180.73 = IpAddress: 192.168.180.73 +.1.3.6.1.2.1.4.24.4.1.5.0.0.0.0.0.0.0.0.0.192.168.180.1 = INTEGER: 1 +.1.3.6.1.2.1.4.24.4.1.5.192.168.180.0.255.255.255.0.0.192.168.180.73 = INTEGER: 1 +.1.3.6.1.2.1.4.24.4.1.6.0.0.0.0.0.0.0.0.0.192.168.180.1 = INTEGER: 4 +.1.3.6.1.2.1.4.24.4.1.6.192.168.180.0.255.255.255.0.0.192.168.180.73 = INTEGER: 3 +.1.3.6.1.2.1.4.24.4.1.7.0.0.0.0.0.0.0.0.0.192.168.180.1 = INTEGER: 3 +.1.3.6.1.2.1.4.24.4.1.7.192.168.180.0.255.255.255.0.0.192.168.180.73 = INTEGER: 2 +.1.3.6.1.2.1.4.24.4.1.8.0.0.0.0.0.0.0.0.0.192.168.180.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.8.192.168.180.0.255.255.255.0.0.192.168.180.73 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.9.0.0.0.0.0.0.0.0.0.192.168.180.1 = OID: .0.0 +.1.3.6.1.2.1.4.24.4.1.9.192.168.180.0.255.255.255.0.0.192.168.180.73 = OID: .0.0 +.1.3.6.1.2.1.4.24.4.1.10.0.0.0.0.0.0.0.0.0.192.168.180.1 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.10.192.168.180.0.255.255.255.0.0.192.168.180.73 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.11.0.0.0.0.0.0.0.0.0.192.168.180.1 = INTEGER: 1 +.1.3.6.1.2.1.4.24.4.1.11.192.168.180.0.255.255.255.0.0.192.168.180.73 = INTEGER: 0 +.1.3.6.1.2.1.4.24.4.1.12.0.0.0.0.0.0.0.0.0.192.168.180.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.12.192.168.180.0.255.255.255.0.0.192.168.180.73 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.13.0.0.0.0.0.0.0.0.0.192.168.180.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.13.192.168.180.0.255.255.255.0.0.192.168.180.73 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.14.0.0.0.0.0.0.0.0.0.192.168.180.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.14.192.168.180.0.255.255.255.0.0.192.168.180.73 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.15.0.0.0.0.0.0.0.0.0.192.168.180.1 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.15.192.168.180.0.255.255.255.0.0.192.168.180.73 = INTEGER: -1 +.1.3.6.1.2.1.4.24.4.1.16.0.0.0.0.0.0.0.0.0.192.168.180.1 = INTEGER: 1 +.1.3.6.1.2.1.4.24.4.1.16.192.168.180.0.255.255.255.0.0.192.168.180.73 = INTEGER: 1 +.1.3.6.1.2.1.17.2.1.0 = INTEGER: 3 +.1.3.6.1.2.1.25.1.1.0 = Timeticks: (2040700) 5:40:07.00 +.1.3.6.1.2.1.25.1.2.0 = Hex-STRING: 07 E5 0A 1A 11 29 08 00 2B 00 00 +.1.3.6.1.2.1.25.2.2.0 = INTEGER: 229376 +.1.3.6.1.2.1.25.2.3.1.1.65536 = INTEGER: 65536 +.1.3.6.1.2.1.25.2.3.1.1.131072 = INTEGER: 131072 +.1.3.6.1.2.1.25.2.3.1.2.65536 = OID: .1.3.6.1.2.1.25.2.1.2 +.1.3.6.1.2.1.25.2.3.1.2.131072 = OID: .1.3.6.1.2.1.25.2.1.4 +.1.3.6.1.2.1.25.2.3.1.3.65536 = STRING: "main memory" +.1.3.6.1.2.1.25.2.3.1.3.131072 = STRING: "system disk" +.1.3.6.1.2.1.25.2.3.1.4.65536 = INTEGER: 1024 +.1.3.6.1.2.1.25.2.3.1.4.131072 = INTEGER: 1024 +.1.3.6.1.2.1.25.2.3.1.5.65536 = INTEGER: 229376 +.1.3.6.1.2.1.25.2.3.1.5.131072 = INTEGER: 65028 +.1.3.6.1.2.1.25.2.3.1.6.65536 = INTEGER: 24184 +.1.3.6.1.2.1.25.2.3.1.6.131072 = INTEGER: 34336 +.1.3.6.1.2.1.25.2.3.1.7.65536 = Counter32: 0 +.1.3.6.1.2.1.25.2.3.1.7.131072 = Counter32: 0 +.1.3.6.1.2.1.25.3.2.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.25.3.2.1.2.1 = OID: .1.3.6.1.2.1.25.3.1.3 +.1.3.6.1.2.1.25.3.2.1.3.1 = "" +.1.3.6.1.2.1.25.3.2.1.4.1 = OID: .0.0 +.1.3.6.1.2.1.25.3.2.1.5.1 = INTEGER: 2 +.1.3.6.1.2.1.25.3.2.1.6.1 = Counter32: 0 +.1.3.6.1.2.1.25.3.3.1.1.1 = OID: .0.0 +.1.3.6.1.2.1.25.3.3.1.2.1 = INTEGER: 0 +.1.3.6.1.2.1.31.1.1.1.1.1 = STRING: "ether1" +.1.3.6.1.2.1.31.1.1.1.1.2 = STRING: "ether2" +.1.3.6.1.2.1.31.1.1.1.1.3 = STRING: "ether3" +.1.3.6.1.2.1.31.1.1.1.2.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.2 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.3 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.2 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.3 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.2 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.3 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.2 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.3 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.6.1 = Counter64: 5065206 +.1.3.6.1.2.1.31.1.1.1.6.2 = Counter64: 5078071 +.1.3.6.1.2.1.31.1.1.1.6.3 = Counter64: 5078007 +.1.3.6.1.2.1.31.1.1.1.7.1 = Counter64: 69251 +.1.3.6.1.2.1.31.1.1.1.7.2 = Counter64: 66269 +.1.3.6.1.2.1.31.1.1.1.7.3 = Counter64: 66268 +.1.3.6.1.2.1.31.1.1.1.8.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.1 = Counter64: 444581 +.1.3.6.1.2.1.31.1.1.1.10.2 = Counter64: 111183 +.1.3.6.1.2.1.31.1.1.1.10.3 = Counter64: 111183 +.1.3.6.1.2.1.31.1.1.1.11.1 = Counter64: 4231 +.1.3.6.1.2.1.31.1.1.1.11.2 = Counter64: 1031 +.1.3.6.1.2.1.31.1.1.1.11.3 = Counter64: 1031 +.1.3.6.1.2.1.31.1.1.1.12.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.15.1 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.2 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.3 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.18.1 = "" +.1.3.6.1.2.1.31.1.1.1.18.2 = "" +.1.3.6.1.2.1.31.1.1.1.18.3 = "" +.1.3.6.1.2.1.33.1.3.2.0 = INTEGER: 1 +.1.3.6.1.2.1.33.1.4.3.0 = INTEGER: 1 +.1.3.6.1.2.1.47.1.1.1.1.1.65536 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.1.131073 = INTEGER: 131073 +.1.3.6.1.2.1.47.1.1.1.1.1.131074 = INTEGER: 131074 +.1.3.6.1.2.1.47.1.1.1.1.1.131075 = INTEGER: 131075 +.1.3.6.1.2.1.47.1.1.1.1.1.131076 = INTEGER: 131076 +.1.3.6.1.2.1.47.1.1.1.1.1.131077 = INTEGER: 131077 +.1.3.6.1.2.1.47.1.1.1.1.1.131078 = INTEGER: 131078 +.1.3.6.1.2.1.47.1.1.1.1.1.131079 = INTEGER: 131079 +.1.3.6.1.2.1.47.1.1.1.1.1.131080 = INTEGER: 131080 +.1.3.6.1.2.1.47.1.1.1.1.1.131081 = INTEGER: 131081 +.1.3.6.1.2.1.47.1.1.1.1.1.131082 = INTEGER: 131082 +.1.3.6.1.2.1.47.1.1.1.1.1.131083 = INTEGER: 131083 +.1.3.6.1.2.1.47.1.1.1.1.1.131084 = INTEGER: 131084 +.1.3.6.1.2.1.47.1.1.1.1.1.131085 = INTEGER: 131085 +.1.3.6.1.2.1.47.1.1.1.1.1.131086 = INTEGER: 131086 +.1.3.6.1.2.1.47.1.1.1.1.1.131087 = INTEGER: 131087 +.1.3.6.1.2.1.47.1.1.1.1.1.131088 = INTEGER: 131088 +.1.3.6.1.2.1.47.1.1.1.1.1.131089 = INTEGER: 131089 +.1.3.6.1.2.1.47.1.1.1.1.1.131090 = INTEGER: 131090 +.1.3.6.1.2.1.47.1.1.1.1.1.131091 = INTEGER: 131091 +.1.3.6.1.2.1.47.1.1.1.1.1.131092 = INTEGER: 131092 +.1.3.6.1.2.1.47.1.1.1.1.1.131093 = INTEGER: 131093 +.1.3.6.1.2.1.47.1.1.1.1.1.131094 = INTEGER: 131094 +.1.3.6.1.2.1.47.1.1.1.1.1.131095 = INTEGER: 131095 +.1.3.6.1.2.1.47.1.1.1.1.1.131096 = INTEGER: 131096 +.1.3.6.1.2.1.47.1.1.1.1.1.131097 = INTEGER: 131097 +.1.3.6.1.2.1.47.1.1.1.1.1.131098 = INTEGER: 131098 +.1.3.6.1.2.1.47.1.1.1.1.1.131099 = INTEGER: 131099 +.1.3.6.1.2.1.47.1.1.1.1.1.131100 = INTEGER: 131100 +.1.3.6.1.2.1.47.1.1.1.1.1.131101 = INTEGER: 131101 +.1.3.6.1.2.1.47.1.1.1.1.1.131102 = INTEGER: 131102 +.1.3.6.1.2.1.47.1.1.1.1.1.131103 = INTEGER: 131103 +.1.3.6.1.2.1.47.1.1.1.1.1.131104 = INTEGER: 131104 +.1.3.6.1.2.1.47.1.1.1.1.1.131105 = INTEGER: 131105 +.1.3.6.1.2.1.47.1.1.1.1.1.131106 = INTEGER: 131106 +.1.3.6.1.2.1.47.1.1.1.1.1.131107 = INTEGER: 131107 +.1.3.6.1.2.1.47.1.1.1.1.1.131108 = INTEGER: 131108 +.1.3.6.1.2.1.47.1.1.1.1.1.131109 = INTEGER: 131109 +.1.3.6.1.2.1.47.1.1.1.1.1.131110 = INTEGER: 131110 +.1.3.6.1.2.1.47.1.1.1.1.1.131111 = INTEGER: 131111 +.1.3.6.1.2.1.47.1.1.1.1.1.131112 = INTEGER: 131112 +.1.3.6.1.2.1.47.1.1.1.1.1.131113 = INTEGER: 131113 +.1.3.6.1.2.1.47.1.1.1.1.1.131114 = INTEGER: 131114 +.1.3.6.1.2.1.47.1.1.1.1.1.131115 = INTEGER: 131115 +.1.3.6.1.2.1.47.1.1.1.1.2.65536 = STRING: "RouterOS 6.48.4 (stable) on CHR" +.1.3.6.1.2.1.47.1.1.1.1.2.131073 = STRING: "Intel Corporation 82574L Gigabit Network Connection (rev: 0)" +.1.3.6.1.2.1.47.1.1.1.1.2.131074 = STRING: "Intel Corporation 82574L Gigabit Network Connection (rev: 0)" +.1.3.6.1.2.1.47.1.1.1.1.2.131075 = STRING: "Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131076 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131077 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131078 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131079 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131080 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131081 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131082 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131083 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131084 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131085 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131086 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131087 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131088 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131089 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131090 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131091 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131092 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131093 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131094 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131095 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131096 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131097 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131098 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131099 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131100 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131101 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131102 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131103 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131104 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131105 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131106 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131107 = STRING: "VMware PCI Express Root Port (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131108 = STRING: "VMware PCI bridge (rev: 2)" +.1.3.6.1.2.1.47.1.1.1.1.2.131109 = STRING: "VMware SVGA II Adapter (rev: 0)" +.1.3.6.1.2.1.47.1.1.1.1.2.131110 = STRING: "VMware Virtual Machine Communication Interface (rev: 16)" +.1.3.6.1.2.1.47.1.1.1.1.2.131111 = STRING: "Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev: 8)" +.1.3.6.1.2.1.47.1.1.1.1.2.131112 = STRING: "Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131113 = STRING: "Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev: 8)" +.1.3.6.1.2.1.47.1.1.1.1.2.131114 = STRING: "Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.2.131115 = STRING: "Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev: 1)" +.1.3.6.1.2.1.47.1.1.1.1.3.65536 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131073 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131074 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131075 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131076 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131077 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131078 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131079 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131080 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131081 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131082 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131083 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131084 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131085 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131086 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131087 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131088 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131089 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131090 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131091 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131092 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131093 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131094 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131095 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131096 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131097 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131098 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131099 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131100 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131101 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131102 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131103 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131104 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131105 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131106 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131107 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131108 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131109 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131110 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131111 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131112 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131113 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131114 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.3.131115 = OID: .0.0 +.1.3.6.1.2.1.47.1.1.1.1.4.65536 = INTEGER: 0 +.1.3.6.1.2.1.47.1.1.1.1.4.131073 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131074 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131075 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131076 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131077 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131078 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131079 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131080 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131081 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131082 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131083 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131084 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131085 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131086 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131087 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131088 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131089 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131090 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131091 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131092 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131093 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131094 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131095 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131096 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131097 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131098 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131099 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131100 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131101 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131102 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131103 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131104 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131105 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131106 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131107 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131108 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131109 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131110 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131111 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131112 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131113 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131114 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.4.131115 = INTEGER: 65536 +.1.3.6.1.2.1.47.1.1.1.1.5.65536 = INTEGER: 3 +.1.3.6.1.2.1.47.1.1.1.1.5.131073 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131074 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131075 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131076 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131077 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131078 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131079 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131080 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131081 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131082 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131083 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131084 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131085 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131086 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131087 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131088 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131089 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131090 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131091 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131092 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131093 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131094 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131095 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131096 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131097 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131098 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131099 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131100 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131101 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131102 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131103 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131104 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131105 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131106 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131107 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131108 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131109 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131110 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131111 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131112 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131113 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131114 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.5.131115 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.6.65536 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131073 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131074 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131075 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131076 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131077 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131078 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131079 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131080 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131081 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131082 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131083 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131084 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131085 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131086 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131087 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131088 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131089 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131090 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131091 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131092 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131093 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131094 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131095 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131096 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131097 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131098 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131099 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131100 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131101 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131102 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131103 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131104 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131105 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131106 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131107 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131108 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131109 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131110 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131111 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131112 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131113 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131114 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.6.131115 = INTEGER: -1 +.1.3.6.1.2.1.47.1.1.1.1.7.65536 = STRING: "Intel(R)" +.1.3.6.1.2.1.47.1.1.1.1.7.131073 = STRING: "0b:00.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131074 = STRING: "03:00.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131075 = STRING: "02:00.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131076 = STRING: "00:18.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131077 = STRING: "00:18.6" +.1.3.6.1.2.1.47.1.1.1.1.7.131078 = STRING: "00:18.5" +.1.3.6.1.2.1.47.1.1.1.1.7.131079 = STRING: "00:18.4" +.1.3.6.1.2.1.47.1.1.1.1.7.131080 = STRING: "00:18.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131081 = STRING: "00:18.2" +.1.3.6.1.2.1.47.1.1.1.1.7.131082 = STRING: "00:18.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131083 = STRING: "00:18.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131084 = STRING: "00:17.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131085 = STRING: "00:17.6" +.1.3.6.1.2.1.47.1.1.1.1.7.131086 = STRING: "00:17.5" +.1.3.6.1.2.1.47.1.1.1.1.7.131087 = STRING: "00:17.4" +.1.3.6.1.2.1.47.1.1.1.1.7.131088 = STRING: "00:17.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131089 = STRING: "00:17.2" +.1.3.6.1.2.1.47.1.1.1.1.7.131090 = STRING: "00:17.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131091 = STRING: "00:17.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131092 = STRING: "00:16.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131093 = STRING: "00:16.6" +.1.3.6.1.2.1.47.1.1.1.1.7.131094 = STRING: "00:16.5" +.1.3.6.1.2.1.47.1.1.1.1.7.131095 = STRING: "00:16.4" +.1.3.6.1.2.1.47.1.1.1.1.7.131096 = STRING: "00:16.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131097 = STRING: "00:16.2" +.1.3.6.1.2.1.47.1.1.1.1.7.131098 = STRING: "00:16.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131099 = STRING: "00:16.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131100 = STRING: "00:15.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131101 = STRING: "00:15.6" +.1.3.6.1.2.1.47.1.1.1.1.7.131102 = STRING: "00:15.5" +.1.3.6.1.2.1.47.1.1.1.1.7.131103 = STRING: "00:15.4" +.1.3.6.1.2.1.47.1.1.1.1.7.131104 = STRING: "00:15.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131105 = STRING: "00:15.2" +.1.3.6.1.2.1.47.1.1.1.1.7.131106 = STRING: "00:15.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131107 = STRING: "00:15.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131108 = STRING: "00:11.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131109 = STRING: "00:0f.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131110 = STRING: "00:07.7" +.1.3.6.1.2.1.47.1.1.1.1.7.131111 = STRING: "00:07.3" +.1.3.6.1.2.1.47.1.1.1.1.7.131112 = STRING: "00:07.1" +.1.3.6.1.2.1.47.1.1.1.1.7.131113 = STRING: "00:07.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131114 = STRING: "00:01.0" +.1.3.6.1.2.1.47.1.1.1.1.7.131115 = STRING: "00:00.0" +.1.3.6.1.2.1.47.1.1.1.1.8.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131114 = "" +.1.3.6.1.2.1.47.1.1.1.1.8.131115 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131114 = "" +.1.3.6.1.2.1.47.1.1.1.1.9.131115 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131114 = "" +.1.3.6.1.2.1.47.1.1.1.1.10.131115 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131114 = "" +.1.3.6.1.2.1.47.1.1.1.1.11.131115 = "" +.1.3.6.1.2.1.47.1.1.1.1.12.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.12.131073 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131074 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131075 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131076 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131077 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131078 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131079 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131080 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131081 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131082 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131083 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131084 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131085 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131086 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131087 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131088 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131089 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131090 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131091 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131092 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131093 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131094 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131095 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131096 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131097 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131098 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131099 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131100 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131101 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131102 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131103 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131104 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131105 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131106 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131107 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131108 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131109 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131110 = STRING: "0x15ad" +.1.3.6.1.2.1.47.1.1.1.1.12.131111 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131112 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131113 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131114 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.12.131115 = STRING: "0x8086" +.1.3.6.1.2.1.47.1.1.1.1.13.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.13.131073 = STRING: "0x10d3" +.1.3.6.1.2.1.47.1.1.1.1.13.131074 = STRING: "0x10d3" +.1.3.6.1.2.1.47.1.1.1.1.13.131075 = STRING: "0x100f" +.1.3.6.1.2.1.47.1.1.1.1.13.131076 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131077 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131078 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131079 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131080 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131081 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131082 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131083 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131084 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131085 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131086 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131087 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131088 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131089 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131090 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131091 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131092 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131093 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131094 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131095 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131096 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131097 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131098 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131099 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131100 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131101 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131102 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131103 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131104 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131105 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131106 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131107 = STRING: "0x07a0" +.1.3.6.1.2.1.47.1.1.1.1.13.131108 = STRING: "0x0790" +.1.3.6.1.2.1.47.1.1.1.1.13.131109 = STRING: "0x0405" +.1.3.6.1.2.1.47.1.1.1.1.13.131110 = STRING: "0x0740" +.1.3.6.1.2.1.47.1.1.1.1.13.131111 = STRING: "0x7113" +.1.3.6.1.2.1.47.1.1.1.1.13.131112 = STRING: "0x7111" +.1.3.6.1.2.1.47.1.1.1.1.13.131113 = STRING: "0x7110" +.1.3.6.1.2.1.47.1.1.1.1.13.131114 = STRING: "0x7191" +.1.3.6.1.2.1.47.1.1.1.1.13.131115 = STRING: "0x7190" +.1.3.6.1.2.1.47.1.1.1.1.14.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131114 = "" +.1.3.6.1.2.1.47.1.1.1.1.14.131115 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.65536 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131073 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131074 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131075 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131076 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131077 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131078 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131079 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131080 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131081 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131082 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131083 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131084 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131085 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131086 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131087 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131088 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131089 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131090 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131091 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131092 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131093 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131094 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131095 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131096 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131097 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131098 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131099 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131100 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131101 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131102 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131103 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131104 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131105 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131106 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131107 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131108 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131109 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131110 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131111 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131112 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131113 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131114 = "" +.1.3.6.1.2.1.47.1.1.1.1.15.131115 = "" +.1.3.6.1.2.1.47.1.1.1.1.16.65536 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131073 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131074 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131075 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131076 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131077 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131078 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131079 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131080 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131081 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131082 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131083 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131084 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131085 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131086 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131087 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131088 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131089 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131090 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131091 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131092 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131093 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131094 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131095 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131096 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131097 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131098 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131099 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131100 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131101 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131102 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131103 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131104 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131105 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131106 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131107 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131108 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131109 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131110 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131111 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131112 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131113 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131114 = INTEGER: 2 +.1.3.6.1.2.1.47.1.1.1.1.16.131115 = INTEGER: 2 +.1.3.6.1.2.1.9999.1.1.1.1.0 = STRING: "MikroTik DHCP server" +.1.3.6.1.2.1.9999.1.1.1.2.0 = OID: .1.3.6.1.4.1.14988.1 +.1.3.6.1.4.1.9.9.150.1.1.1.0 = Gauge32: 0 +.1.3.6.1.4.1.2021.11.10.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.1.1.0 = INTEGER: 62464 +.1.3.6.1.4.1.3495.1.1.2.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.1.3.0 = INTEGER: 20407 +.1.3.6.1.4.1.3495.1.3.2.2.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.3.2.5.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.3.2.10.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.3.2.12.0 = INTEGER: 0 +.1.3.6.1.4.1.3495.1.3.2.13.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.1.4.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.1.6.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.1.10.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.3.1.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.2.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.3.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.4.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.5.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.6.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.7.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.3.14.0 = INTEGER: 2303 +.1.3.6.1.4.1.14988.1.1.4.1.0 = STRING: "8B+nBssLaXL" +.1.3.6.1.4.1.14988.1.1.4.3.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.4.4.0 = STRING: "6.48.4" +.1.3.6.1.4.1.14988.1.1.6.1.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.7.1.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.7.2.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.7.5.0 = "" +.1.3.6.1.4.1.14988.1.1.7.6.0 = STRING: "Aug/18/2021 06:43:27" +.1.3.6.1.4.1.14988.1.1.11.1.1.2.1 = IpAddress: 192.168.180.30 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.2 = IpAddress: 192.168.180.30 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.3 = IpAddress: 192.168.180.30 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.4 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.5 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.6 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.7 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.8 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.9 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.10 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.11 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.12 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.13 = IpAddress: 0.0.0.0 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.14 = IpAddress: 192.168.180.74 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.15 = IpAddress: 192.168.180.74 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.16 = IpAddress: 192.168.180.74 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.17 = IpAddress: 192.168.180.73 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.18 = IpAddress: 192.168.180.73 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.19 = IpAddress: 192.168.180.56 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.20 = IpAddress: 192.168.180.56 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.21 = IpAddress: 192.168.180.56 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.22 = IpAddress: 192.168.180.58 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.23 = IpAddress: 192.168.180.58 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.24 = IpAddress: 192.168.180.58 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.25 = IpAddress: 172.16.0.1 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.26 = IpAddress: 172.16.0.1 +.1.3.6.1.4.1.14988.1.1.11.1.1.2.27 = IpAddress: 172.16.0.1 +.1.3.6.1.4.1.14988.1.1.11.1.1.3.1 = STRING: "5C:71:0D:26:AC:43" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.2 = STRING: "5C:71:0D:26:AC:43" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.3 = STRING: "5C:71:0D:26:AC:43" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.4 = STRING: "00:50:56:82:CC:F2" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.5 = STRING: "00:50:56:82:CC:F2" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.6 = STRING: "00:50:56:82:CC:F2" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.7 = STRING: "00:50:56:82:7D:A0" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.8 = STRING: "00:50:56:82:7D:A0" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.9 = STRING: "00:50:56:82:43:20" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.10 = STRING: "00:50:56:82:43:20" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.11 = STRING: "00:50:56:82:43:20" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.12 = STRING: "00:50:56:82:04:D6" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.13 = STRING: "00:50:56:82:04:D6" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.14 = STRING: "00:50:56:82:EF:FC" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.15 = STRING: "00:50:56:82:EF:FC" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.16 = STRING: "00:50:56:82:EF:FC" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.17 = STRING: "00:50:56:82:A1:35" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.18 = STRING: "00:50:56:82:A1:35" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.19 = STRING: "00:50:56:82:23:35" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.20 = STRING: "00:50:56:82:23:35" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.21 = STRING: "00:50:56:82:23:35" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.22 = STRING: "00:50:56:82:62:AB" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.23 = STRING: "00:50:56:82:62:AB" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.24 = STRING: "00:50:56:82:62:AB" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.25 = STRING: "00:50:56:82:20:E2" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.26 = STRING: "00:50:56:82:20:E2" +.1.3.6.1.4.1.14988.1.1.11.1.1.3.27 = STRING: "00:50:56:82:20:E2" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.1 = STRING: "2.5.8.12" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.2 = STRING: "2.5.8.12" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.3 = STRING: "2.5.8.12" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.4 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.5 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.6 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.7 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.8 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.9 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.10 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.11 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.12 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.13 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.14 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.15 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.16 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.17 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.18 = STRING: "6.48.4 (stable)" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.19 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.20 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.21 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.22 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.23 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.24 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.25 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.26 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.4.27 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.1 = STRING: "Cisco SG350-10 (PID:SG350-10-K9)-VSD" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.2 = STRING: "Cisco SG350-10 (PID:SG350-10-K9)-VSD" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.3 = STRING: "Cisco SG350-10 (PID:SG350-10-K9)-VSD" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.4 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.5 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.6 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.7 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.8 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.9 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.10 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.11 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.12 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.13 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.14 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.15 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.16 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.17 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.18 = STRING: "MikroTik" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.19 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.20 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.21 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.22 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.23 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.24 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.25 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.26 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.5.27 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.1 = STRING: "5c710d26ac3e" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.2 = STRING: "5c710d26ac3e" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.3 = STRING: "5c710d26ac3e" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.4 = STRING: "router-2" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.5 = STRING: "router-2" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.6 = STRING: "router-2" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.7 = STRING: "router-3" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.8 = STRING: "router-3" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.9 = STRING: "router-2" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.10 = STRING: "router-2" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.11 = STRING: "router-2" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.12 = STRING: "router-3" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.13 = STRING: "router-3" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.14 = STRING: "router-2" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.15 = STRING: "router-2" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.16 = STRING: "router-2" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.17 = STRING: "router-3" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.18 = STRING: "router-3" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.19 = STRING: "elastic-01" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.20 = STRING: "elastic-01" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.21 = STRING: "elastic-01" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.22 = STRING: "onms-hzn" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.23 = STRING: "onms-hzn" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.24 = STRING: "onms-hzn" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.25 = STRING: "opn-fw-01.clab.labmonkeys.tech" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.26 = STRING: "opn-fw-01.clab.labmonkeys.tech" +.1.3.6.1.4.1.14988.1.1.11.1.1.6.27 = STRING: "opn-fw-01.clab.labmonkeys.tech" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.1 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.2 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.3 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.4 = STRING: "J7c5gwsGOmJ" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.5 = STRING: "J7c5gwsGOmJ" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.6 = STRING: "J7c5gwsGOmJ" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.7 = STRING: "8B+nBssLaXL" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.8 = STRING: "8B+nBssLaXL" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.9 = STRING: "J7c5gwsGOmJ" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.10 = STRING: "J7c5gwsGOmJ" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.11 = STRING: "J7c5gwsGOmJ" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.12 = STRING: "8B+nBssLaXL" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.13 = STRING: "8B+nBssLaXL" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.14 = STRING: "J7c5gwsGOmJ" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.15 = STRING: "J7c5gwsGOmJ" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.16 = STRING: "J7c5gwsGOmJ" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.17 = STRING: "8B+nBssLaXL" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.18 = STRING: "8B+nBssLaXL" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.19 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.20 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.21 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.22 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.23 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.24 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.25 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.26 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.7.27 = "" +.1.3.6.1.4.1.14988.1.1.11.1.1.8.1 = INTEGER: 2 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.2 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.3 = INTEGER: 3 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.4 = INTEGER: 3 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.5 = INTEGER: 2 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.6 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.7 = INTEGER: 2 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.8 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.9 = INTEGER: 3 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.10 = INTEGER: 2 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.11 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.12 = INTEGER: 3 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.13 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.14 = INTEGER: 2 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.15 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.16 = INTEGER: 3 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.17 = INTEGER: 3 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.18 = INTEGER: 2 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.19 = INTEGER: 3 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.20 = INTEGER: 2 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.21 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.22 = INTEGER: 3 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.23 = INTEGER: 2 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.24 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.25 = INTEGER: 3 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.26 = INTEGER: 2 +.1.3.6.1.4.1.14988.1.1.11.1.1.8.27 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.13.1.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.13.2.0 = INTEGER: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.1.1 = INTEGER: 1 +.1.3.6.1.4.1.14988.1.1.14.1.1.1.2 = INTEGER: 2 +.1.3.6.1.4.1.14988.1.1.14.1.1.1.3 = INTEGER: 3 +.1.3.6.1.4.1.14988.1.1.14.1.1.2.1 = STRING: "ether1" +.1.3.6.1.4.1.14988.1.1.14.1.1.2.2 = STRING: "ether2" +.1.3.6.1.4.1.14988.1.1.14.1.1.2.3 = STRING: "ether3" +.1.3.6.1.4.1.14988.1.1.14.1.1.11.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.11.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.11.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.12.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.12.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.12.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.13.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.13.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.13.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.14.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.14.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.14.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.15.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.15.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.15.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.16.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.16.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.16.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.17.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.17.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.17.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.18.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.18.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.18.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.19.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.19.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.19.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.20.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.20.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.20.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.21.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.21.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.21.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.31.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.31.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.31.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.32.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.32.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.32.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.33.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.33.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.33.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.34.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.34.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.34.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.35.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.35.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.35.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.36.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.36.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.36.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.37.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.37.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.37.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.38.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.38.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.38.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.39.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.39.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.39.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.40.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.40.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.40.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.41.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.41.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.41.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.42.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.42.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.42.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.43.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.43.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.43.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.44.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.44.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.44.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.45.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.45.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.45.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.46.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.46.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.46.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.47.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.47.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.47.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.48.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.48.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.48.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.49.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.49.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.49.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.50.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.50.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.50.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.51.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.51.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.51.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.52.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.52.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.52.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.53.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.53.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.53.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.54.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.54.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.54.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.55.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.55.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.55.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.61.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.61.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.61.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.62.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.62.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.62.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.63.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.63.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.63.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.64.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.64.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.64.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.65.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.65.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.65.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.66.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.66.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.66.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.67.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.67.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.67.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.68.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.68.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.68.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.69.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.69.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.69.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.70.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.70.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.70.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.71.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.71.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.71.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.72.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.72.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.72.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.73.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.73.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.73.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.74.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.74.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.74.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.75.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.75.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.75.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.76.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.76.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.76.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.77.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.77.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.77.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.78.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.78.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.78.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.79.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.79.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.79.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.80.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.80.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.80.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.81.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.81.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.81.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.82.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.82.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.82.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.83.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.83.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.83.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.84.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.84.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.84.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.85.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.85.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.85.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.86.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.86.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.86.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.87.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.87.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.87.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.88.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.88.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.88.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.89.1 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.89.2 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.89.3 = Counter64: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.90.1 = Counter32: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.90.2 = Counter32: 0 +.1.3.6.1.4.1.14988.1.1.14.1.1.90.3 = Counter32: 0 +.1.3.6.1.4.1.14988.1.1.20.1.1.0 = Gauge32: 0 +.1.3.6.1.4.1.14988.1.1.20.2.1 = No more variables left in this MIB View (It is past the end of the MIB tree) diff --git a/features/enlinkd/tests/src/test/resources/linkd/nms13637/sw01-office-walk.txt b/features/enlinkd/tests/src/test/resources/linkd/nms13637/sw01-office-walk.txt new file mode 100644 index 000000000000..defb6687f1ce --- /dev/null +++ b/features/enlinkd/tests/src/test/resources/linkd/nms13637/sw01-office-walk.txt @@ -0,0 +1,1005 @@ +.1.0.8802.1.1.2.1.3.1.0 = INTEGER: 4 +.1.0.8802.1.1.2.1.3.2.0 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.0.8802.1.1.2.1.3.3.0 = STRING: "sw01-office" +.1.0.8802.1.1.2.1.3.4.0 = STRING: "SG350-10 10-Port Gigabit Managed Switch" +.1.0.8802.1.1.2.1.3.5.0 = STRING: "(G" +.1.0.8802.1.1.2.1.3.6.0 = STRING: "(G" +.1.0.8802.1.1.2.1.3.7.1.2.1 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.7.1.2.2 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.7.1.2.3 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.7.1.2.4 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.7.1.2.5 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.7.1.2.6 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.7.1.2.7 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.7.1.2.8 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.7.1.2.9 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.7.1.2.10 = INTEGER: 5 +.1.0.8802.1.1.2.1.3.7.1.3.1 = STRING: "gi1" +.1.0.8802.1.1.2.1.3.7.1.3.2 = STRING: "gi2" +.1.0.8802.1.1.2.1.3.7.1.3.3 = STRING: "gi3" +.1.0.8802.1.1.2.1.3.7.1.3.4 = STRING: "gi4" +.1.0.8802.1.1.2.1.3.7.1.3.5 = STRING: "gi5" +.1.0.8802.1.1.2.1.3.7.1.3.6 = STRING: "gi6" +.1.0.8802.1.1.2.1.3.7.1.3.7 = STRING: "gi7" +.1.0.8802.1.1.2.1.3.7.1.3.8 = STRING: "gi8" +.1.0.8802.1.1.2.1.3.7.1.3.9 = STRING: "gi9" +.1.0.8802.1.1.2.1.3.7.1.3.10 = STRING: "gi10" +.1.0.8802.1.1.2.1.3.7.1.4.1 = STRING: "GigabitEthernet1" +.1.0.8802.1.1.2.1.3.7.1.4.2 = STRING: "GigabitEthernet2" +.1.0.8802.1.1.2.1.3.7.1.4.3 = STRING: "GigabitEthernet3" +.1.0.8802.1.1.2.1.3.7.1.4.4 = STRING: "GigabitEthernet4" +.1.0.8802.1.1.2.1.3.7.1.4.5 = STRING: "GigabitEthernet5" +.1.0.8802.1.1.2.1.3.7.1.4.6 = STRING: "GigabitEthernet6" +.1.0.8802.1.1.2.1.3.7.1.4.7 = STRING: "GigabitEthernet7" +.1.0.8802.1.1.2.1.3.7.1.4.8 = STRING: "GigabitEthernet8" +.1.0.8802.1.1.2.1.3.7.1.4.9 = STRING: "GigabitEthernet9" +.1.0.8802.1.1.2.1.3.7.1.4.10 = STRING: "GigabitEthernet10" +.1.0.8802.1.1.2.1.4.1.1.4.0.5.10 = INTEGER: 6 +.1.0.8802.1.1.2.1.4.1.1.4.0.5.55 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.5.56 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.5.58 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.5.59 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.5.73 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.5.74 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.8.66 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.4.0.10.9 = INTEGER: 4 +.1.0.8802.1.1.2.1.4.1.1.5.0.5.10 = STRING: "vmnic0" +.1.0.8802.1.1.2.1.4.1.1.5.0.5.55 = Hex-STRING: 00 50 56 82 8B A5 +.1.0.8802.1.1.2.1.4.1.1.5.0.5.56 = Hex-STRING: 00 50 56 82 8B A5 +.1.0.8802.1.1.2.1.4.1.1.5.0.5.58 = Hex-STRING: 00 50 56 82 62 AB +.1.0.8802.1.1.2.1.4.1.1.5.0.5.59 = Hex-STRING: 00 50 56 82 23 35 +.1.0.8802.1.1.2.1.4.1.1.5.0.5.73 = Hex-STRING: 00 50 56 82 A1 05 +.1.0.8802.1.1.2.1.4.1.1.5.0.5.74 = Hex-STRING: 00 50 56 82 EF FC +.1.0.8802.1.1.2.1.4.1.1.5.0.8.66 = Hex-STRING: 3C A6 2F 63 8D CF +.1.0.8802.1.1.2.1.4.1.1.5.0.10.9 = Hex-STRING: 58 35 D9 94 CD AB +.1.0.8802.1.1.2.1.4.1.1.6.0.5.10 = INTEGER: 3 +.1.0.8802.1.1.2.1.4.1.1.6.0.5.55 = INTEGER: 3 +.1.0.8802.1.1.2.1.4.1.1.6.0.5.56 = INTEGER: 3 +.1.0.8802.1.1.2.1.4.1.1.6.0.5.58 = INTEGER: 3 +.1.0.8802.1.1.2.1.4.1.1.6.0.5.59 = INTEGER: 3 +.1.0.8802.1.1.2.1.4.1.1.6.0.5.73 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.5.74 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.6.0.8.66 = INTEGER: 3 +.1.0.8802.1.1.2.1.4.1.1.6.0.10.9 = INTEGER: 5 +.1.0.8802.1.1.2.1.4.1.1.7.0.5.10 = Hex-STRING: 30 BF 01 12 10 02 +.1.0.8802.1.1.2.1.4.1.1.7.0.5.55 = Hex-STRING: 00 50 56 82 20 E2 +.1.0.8802.1.1.2.1.4.1.1.7.0.5.56 = Hex-STRING: 00 50 56 82 8B A5 +.1.0.8802.1.1.2.1.4.1.1.7.0.5.58 = Hex-STRING: 00 50 56 82 62 AB +.1.0.8802.1.1.2.1.4.1.1.7.0.5.59 = Hex-STRING: 00 50 56 82 23 35 +.1.0.8802.1.1.2.1.4.1.1.7.0.5.73 = STRING: "ether1" +.1.0.8802.1.1.2.1.4.1.1.7.0.5.74 = STRING: "ether1" +.1.0.8802.1.1.2.1.4.1.1.7.0.8.66 = Hex-STRING: 3C A6 2F 63 8D CD +.1.0.8802.1.1.2.1.4.1.1.7.0.10.9 = STRING: "g8" +.1.0.8802.1.1.2.1.4.1.1.8.0.5.10 = STRING: "port 0 on dvSwitch Management-DSwitch (cswitch)" +.1.0.8802.1.1.2.1.4.1.1.8.0.5.55 = STRING: "vmx1" +.1.0.8802.1.1.2.1.4.1.1.8.0.5.56 = STRING: "vmx0" +.1.0.8802.1.1.2.1.4.1.1.8.0.5.58 = STRING: "ens160" +.1.0.8802.1.1.2.1.4.1.1.8.0.5.59 = STRING: "ens160" +.1.0.8802.1.1.2.1.4.1.1.8.0.5.73 = "" +.1.0.8802.1.1.2.1.4.1.1.8.0.5.74 = "" +.1.0.8802.1.1.2.1.4.1.1.8.0.8.66 = STRING: "LAN:3" +.1.0.8802.1.1.2.1.4.1.1.8.0.10.9 = "" +.1.0.8802.1.1.2.1.4.1.1.9.0.5.10 = STRING: "esx.labmonkeys.tech" +.1.0.8802.1.1.2.1.4.1.1.9.0.5.55 = STRING: "opn-fw-01.clab.labmonkeys.tech" +.1.0.8802.1.1.2.1.4.1.1.9.0.5.56 = STRING: "opn-fw-01.clab.labmonkeys.tech" +.1.0.8802.1.1.2.1.4.1.1.9.0.5.58 = STRING: "onms-hzn" +.1.0.8802.1.1.2.1.4.1.1.9.0.5.59 = STRING: "elastic-01" +.1.0.8802.1.1.2.1.4.1.1.9.0.5.73 = STRING: "router-1" +.1.0.8802.1.1.2.1.4.1.1.9.0.5.74 = STRING: "router-2" +.1.0.8802.1.1.2.1.4.1.1.9.0.8.66 = STRING: "fritz.box" +.1.0.8802.1.1.2.1.4.1.1.9.0.10.9 = "" +.1.0.8802.1.1.2.1.4.1.1.10.0.5.10 = STRING: "VMware ESXi Releasebuild-17867351" +.1.0.8802.1.1.2.1.4.1.1.10.0.5.55 = STRING: " FreeBSD 12.1-RELEASE-p20-HBSD FreeBSD 12.1-RELEASE-p20-HBSD #0 e4fc5be9c3d(stable/21.7)-dirty: Thu Sep 2 10:30:36 CEST 2021 root@sensey:/usr/obj/usr/src/" +.1.0.8802.1.1.2.1.4.1.1.10.0.5.56 = STRING: " FreeBSD 12.1-RELEASE-p20-HBSD FreeBSD 12.1-RELEASE-p20-HBSD #0 e4fc5be9c3d(stable/21.7)-dirty: Thu Sep 2 10:30:36 CEST 2021 root@sensey:/usr/obj/usr/src/" +.1.0.8802.1.1.2.1.4.1.1.10.0.5.58 = STRING: "Ubuntu 20.04.3 LTS Linux 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64" +.1.0.8802.1.1.2.1.4.1.1.10.0.5.59 = STRING: "Ubuntu 20.04.3 LTS Linux 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64" +.1.0.8802.1.1.2.1.4.1.1.10.0.5.73 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.5.74 = STRING: "MikroTik RouterOS 6.48.4 (stable) CHR" +.1.0.8802.1.1.2.1.4.1.1.10.0.8.66 = STRING: "AVM FRITZ!Box 7530 164.07.28" +.1.0.8802.1.1.2.1.4.1.1.10.0.10.9 = "" +.1.0.8802.1.1.2.1.4.1.1.11.0.5.10 = Hex-STRING: 20 00 +.1.0.8802.1.1.2.1.4.1.1.11.0.5.55 = Hex-STRING: 39 00 +.1.0.8802.1.1.2.1.4.1.1.11.0.5.56 = Hex-STRING: 39 00 +.1.0.8802.1.1.2.1.4.1.1.11.0.5.58 = Hex-STRING: 39 00 +.1.0.8802.1.1.2.1.4.1.1.11.0.5.59 = Hex-STRING: 39 00 +.1.0.8802.1.1.2.1.4.1.1.11.0.5.73 = Hex-STRING: 28 00 +.1.0.8802.1.1.2.1.4.1.1.11.0.5.74 = Hex-STRING: 28 00 +.1.0.8802.1.1.2.1.4.1.1.11.0.8.66 = Hex-STRING: 38 00 +.1.0.8802.1.1.2.1.4.1.1.11.0.10.9 = Hex-STRING: 80 00 +.1.0.8802.1.1.2.1.4.1.1.12.0.5.10 = Hex-STRING: 20 00 +.1.0.8802.1.1.2.1.4.1.1.12.0.5.55 = Hex-STRING: 08 00 +.1.0.8802.1.1.2.1.4.1.1.12.0.5.56 = Hex-STRING: 08 00 +.1.0.8802.1.1.2.1.4.1.1.12.0.5.58 = Hex-STRING: 28 00 +.1.0.8802.1.1.2.1.4.1.1.12.0.5.59 = Hex-STRING: 28 00 +.1.0.8802.1.1.2.1.4.1.1.12.0.5.73 = Hex-STRING: 08 00 +.1.0.8802.1.1.2.1.4.1.1.12.0.5.74 = Hex-STRING: 08 00 +.1.0.8802.1.1.2.1.4.1.1.12.0.8.66 = Hex-STRING: 38 00 +.1.0.8802.1.1.2.1.4.1.1.12.0.10.9 = Hex-STRING: 80 00 +.1.0.8802.1.1.2.1.4.2.1.3.0.5.55.1.4.172.16.0.1 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.3.0.5.55.2.16.253.0.0.0.0.0.0.0.2.80.86.255.254.130.32.226 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.3.0.5.56.1.4.172.16.0.1 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.3.0.5.56.2.16.253.0.0.0.0.0.0.0.2.80.86.255.254.130.32.226 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.3.0.5.58.1.4.192.168.178.58 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.3.0.5.58.2.16.253.0.0.0.0.0.0.0.2.80.86.255.254.130.98.171 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.3.0.5.59.1.4.192.168.178.56 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.3.0.5.59.2.16.253.0.0.0.0.0.0.0.2.80.86.255.254.130.35.53 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.3.0.5.73.1.4.192.168.178.73 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.3.0.5.74.1.4.192.168.178.74 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.3.0.8.66.1.4.192.168.178.1 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.4.0.5.55.1.4.172.16.0.1 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.4.0.5.55.2.16.253.0.0.0.0.0.0.0.2.80.86.255.254.130.32.226 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.4.0.5.56.1.4.172.16.0.1 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.4.0.5.56.2.16.253.0.0.0.0.0.0.0.2.80.86.255.254.130.32.226 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.4.0.5.58.1.4.192.168.178.58 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.4.0.5.58.2.16.253.0.0.0.0.0.0.0.2.80.86.255.254.130.98.171 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.4.0.5.59.1.4.192.168.178.56 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.4.0.5.59.2.16.253.0.0.0.0.0.0.0.2.80.86.255.254.130.35.53 = INTEGER: 2 +.1.0.8802.1.1.2.1.4.2.1.4.0.5.73.1.4.192.168.178.73 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.4.0.5.74.1.4.192.168.178.74 = INTEGER: 1 +.1.0.8802.1.1.2.1.4.2.1.4.0.8.66.1.4.192.168.178.1 = INTEGER: 6 +.1.0.8802.1.1.2.1.4.2.1.5.0.5.55.1.4.172.16.0.1 = OID: .0.0 +.1.0.8802.1.1.2.1.4.2.1.5.0.5.55.2.16.253.0.0.0.0.0.0.0.2.80.86.255.254.130.32.226 = OID: .0.0 +.1.0.8802.1.1.2.1.4.2.1.5.0.5.56.1.4.172.16.0.1 = OID: .0.0 +.1.0.8802.1.1.2.1.4.2.1.5.0.5.56.2.16.253.0.0.0.0.0.0.0.2.80.86.255.254.130.32.226 = OID: .0.0 +.1.0.8802.1.1.2.1.4.2.1.5.0.5.58.1.4.192.168.178.58 = OID: .0.0 +.1.0.8802.1.1.2.1.4.2.1.5.0.5.58.2.16.253.0.0.0.0.0.0.0.2.80.86.255.254.130.98.171 = OID: .0.0 +.1.0.8802.1.1.2.1.4.2.1.5.0.5.59.1.4.192.168.178.56 = OID: .0.0 +.1.0.8802.1.1.2.1.4.2.1.5.0.5.59.2.16.253.0.0.0.0.0.0.0.2.80.86.255.254.130.35.53 = OID: .0.0 +.1.0.8802.1.1.2.1.4.2.1.5.0.5.73.1.4.192.168.178.73 = OID: .0.0 +.1.0.8802.1.1.2.1.4.2.1.5.0.5.74.1.4.192.168.178.74 = OID: .0.0 +.1.0.8802.1.1.2.1.4.2.1.5.0.8.66.1.4.192.168.178.1 = OID: .0.0 +.1.3.6.1.2.1.1.1.0 = STRING: "SG350-10 10-Port Gigabit Managed Switch" +.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.9.6.1.95.10.3 +.1.3.6.1.2.1.1.3.0 = Timeticks: (243225800) 28 days, 3:37:38.00 +.1.3.6.1.2.1.1.4.0 = STRING: "ronny@no42.org" +.1.3.6.1.2.1.1.5.0 = STRING: "sw01-office" +.1.3.6.1.2.1.1.6.0 = STRING: "Unterheinriet Homeoffice" +.1.3.6.1.2.1.1.7.0 = INTEGER: 6 +.1.3.6.1.2.1.1.8.0 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.1.9.1.2.1 = OID: .1.3.6.1.4.1.89.73 +.1.3.6.1.2.1.1.9.1.3.1 = STRING: "RS capabilities" +.1.3.6.1.2.1.1.9.1.4.1 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.1.0 = INTEGER: 23 +.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3 +.1.3.6.1.2.1.2.2.1.1.4 = INTEGER: 4 +.1.3.6.1.2.1.2.2.1.1.5 = INTEGER: 5 +.1.3.6.1.2.1.2.2.1.1.6 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.1.7 = INTEGER: 7 +.1.3.6.1.2.1.2.2.1.1.8 = INTEGER: 8 +.1.3.6.1.2.1.2.2.1.1.9 = INTEGER: 9 +.1.3.6.1.2.1.2.2.1.1.10 = INTEGER: 10 +.1.3.6.1.2.1.2.2.1.1.1000 = INTEGER: 1000 +.1.3.6.1.2.1.2.2.1.1.1001 = INTEGER: 1001 +.1.3.6.1.2.1.2.2.1.1.1002 = INTEGER: 1002 +.1.3.6.1.2.1.2.2.1.1.1003 = INTEGER: 1003 +.1.3.6.1.2.1.2.2.1.1.1004 = INTEGER: 1004 +.1.3.6.1.2.1.2.2.1.1.1005 = INTEGER: 1005 +.1.3.6.1.2.1.2.2.1.1.1006 = INTEGER: 1006 +.1.3.6.1.2.1.2.2.1.1.1007 = INTEGER: 1007 +.1.3.6.1.2.1.2.2.1.1.3000 = INTEGER: 3000 +.1.3.6.1.2.1.2.2.1.1.7000 = INTEGER: 7000 +.1.3.6.1.2.1.2.2.1.1.8000 = INTEGER: 8000 +.1.3.6.1.2.1.2.2.1.1.9000 = INTEGER: 9000 +.1.3.6.1.2.1.2.2.1.1.20000 = INTEGER: 20000 +.1.3.6.1.2.1.2.2.1.1.100000 = INTEGER: 100000 +.1.3.6.1.2.1.2.2.1.2.1 = STRING: "GigabitEthernet1" +.1.3.6.1.2.1.2.2.1.2.2 = STRING: "GigabitEthernet2" +.1.3.6.1.2.1.2.2.1.2.3 = STRING: "GigabitEthernet3" +.1.3.6.1.2.1.2.2.1.2.4 = STRING: "GigabitEthernet4" +.1.3.6.1.2.1.2.2.1.2.5 = STRING: "GigabitEthernet5" +.1.3.6.1.2.1.2.2.1.2.6 = STRING: "GigabitEthernet6" +.1.3.6.1.2.1.2.2.1.2.7 = STRING: "GigabitEthernet7" +.1.3.6.1.2.1.2.2.1.2.8 = STRING: "GigabitEthernet8" +.1.3.6.1.2.1.2.2.1.2.9 = STRING: "GigabitEthernet9" +.1.3.6.1.2.1.2.2.1.2.10 = STRING: "GigabitEthernet10" +.1.3.6.1.2.1.2.2.1.2.1000 = STRING: "Port-Channel1" +.1.3.6.1.2.1.2.2.1.2.1001 = STRING: "Port-Channel2" +.1.3.6.1.2.1.2.2.1.2.1002 = STRING: "Port-Channel3" +.1.3.6.1.2.1.2.2.1.2.1003 = STRING: "Port-Channel4" +.1.3.6.1.2.1.2.2.1.2.1004 = STRING: "Port-Channel5" +.1.3.6.1.2.1.2.2.1.2.1005 = STRING: "Port-Channel6" +.1.3.6.1.2.1.2.2.1.2.1006 = STRING: "Port-Channel7" +.1.3.6.1.2.1.2.2.1.2.1007 = STRING: "Port-Channel8" +.1.3.6.1.2.1.2.2.1.2.3000 = STRING: "tunnel1" +.1.3.6.1.2.1.2.2.1.2.7000 = STRING: "loopback1" +.1.3.6.1.2.1.2.2.1.2.8000 = STRING: "User Defined Port 1" +.1.3.6.1.2.1.2.2.1.2.9000 = STRING: "stack-port" +.1.3.6.1.2.1.2.2.1.2.20000 = STRING: "Logical-int 1" +.1.3.6.1.2.1.2.2.1.2.100000 = STRING: "1" +.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.2 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.3 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.4 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.5 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.6 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.7 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.8 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.9 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.10 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.3.1000 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1001 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1002 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1003 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1004 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1005 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1006 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.1007 = INTEGER: 161 +.1.3.6.1.2.1.2.2.1.3.3000 = INTEGER: 131 +.1.3.6.1.2.1.2.2.1.3.7000 = INTEGER: 24 +.1.3.6.1.2.1.2.2.1.3.8000 = INTEGER: 22 +.1.3.6.1.2.1.2.2.1.3.9000 = INTEGER: 53 +.1.3.6.1.2.1.2.2.1.3.20000 = INTEGER: 22 +.1.3.6.1.2.1.2.2.1.3.100000 = INTEGER: 53 +.1.3.6.1.2.1.2.2.1.4.1 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.2 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.3 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.4 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.5 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.6 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.7 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.8 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.9 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.10 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.1000 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.1001 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.1002 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.1003 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.1004 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.1005 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.1006 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.1007 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.3000 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.7000 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.8000 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.9000 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.20000 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.4.100000 = INTEGER: 1500 +.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.2 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.3 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.4 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.5 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.6 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.7 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.8 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.9 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.10 = Gauge32: 1000000000 +.1.3.6.1.2.1.2.2.1.5.1000 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1001 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1002 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1003 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1004 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1005 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1006 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.1007 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.3000 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.7000 = Gauge32: 100000000 +.1.3.6.1.2.1.2.2.1.5.8000 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.9000 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.20000 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.5.100000 = Gauge32: 0 +.1.3.6.1.2.1.2.2.1.6.1 = Hex-STRING: 5C 71 0D 26 AC 3F +.1.3.6.1.2.1.2.2.1.6.2 = Hex-STRING: 5C 71 0D 26 AC 40 +.1.3.6.1.2.1.2.2.1.6.3 = Hex-STRING: 5C 71 0D 26 AC 41 +.1.3.6.1.2.1.2.2.1.6.4 = Hex-STRING: 5C 71 0D 26 AC 42 +.1.3.6.1.2.1.2.2.1.6.5 = Hex-STRING: 5C 71 0D 26 AC 43 +.1.3.6.1.2.1.2.2.1.6.6 = Hex-STRING: 5C 71 0D 26 AC 44 +.1.3.6.1.2.1.2.2.1.6.7 = Hex-STRING: 5C 71 0D 26 AC 45 +.1.3.6.1.2.1.2.2.1.6.8 = Hex-STRING: 5C 71 0D 26 AC 46 +.1.3.6.1.2.1.2.2.1.6.9 = Hex-STRING: 5C 71 0D 26 AC 47 +.1.3.6.1.2.1.2.2.1.6.10 = Hex-STRING: 5C 71 0D 26 AC 48 +.1.3.6.1.2.1.2.2.1.6.1000 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.1001 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.1002 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.1003 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.1004 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.1005 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.1006 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.1007 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.3000 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.7000 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.8000 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.9000 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.20000 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.6.100000 = Hex-STRING: 5C 71 0D 26 AC 3E +.1.3.6.1.2.1.2.2.1.7.1 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.2 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.3 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.4 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.5 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.6 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.7 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.8 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.9 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.10 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1000 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1001 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1002 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1003 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1004 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1005 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1006 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.1007 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.3000 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.7000 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.8000 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.9000 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.20000 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.7.100000 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.2 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.3 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.4 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.5 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.6 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.7 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.8 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.9 = INTEGER: 2 +.1.3.6.1.2.1.2.2.1.8.10 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.1000 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.1001 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.1002 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.1003 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.1004 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.1005 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.1006 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.1007 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.3000 = INTEGER: 6 +.1.3.6.1.2.1.2.2.1.8.7000 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.8000 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.9000 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.20000 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.8.100000 = INTEGER: 1 +.1.3.6.1.2.1.2.2.1.9.1 = Timeticks: (4005) 0:00:40.05 +.1.3.6.1.2.1.2.2.1.9.2 = Timeticks: (75676250) 8 days, 18:12:42.50 +.1.3.6.1.2.1.2.2.1.9.3 = Timeticks: (232369029) 26 days, 21:28:10.29 +.1.3.6.1.2.1.2.2.1.9.4 = Timeticks: (244341364) 28 days, 6:43:33.64 +.1.3.6.1.2.1.2.2.1.9.5 = Timeticks: (18097889) 2 days, 2:16:18.89 +.1.3.6.1.2.1.2.2.1.9.6 = Timeticks: (4022) 0:00:40.22 +.1.3.6.1.2.1.2.2.1.9.7 = Timeticks: (4024) 0:00:40.24 +.1.3.6.1.2.1.2.2.1.9.8 = Timeticks: (236137314) 27 days, 7:56:13.14 +.1.3.6.1.2.1.2.2.1.9.9 = Timeticks: (4036) 0:00:40.36 +.1.3.6.1.2.1.2.2.1.9.10 = Timeticks: (15061217) 1 day, 17:50:12.17 +.1.3.6.1.2.1.2.2.1.9.1000 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.1001 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.1002 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.1003 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.1004 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.1005 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.1006 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.1007 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.3000 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.7000 = Timeticks: (4045) 0:00:40.45 +.1.3.6.1.2.1.2.2.1.9.8000 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.9000 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.9.20000 = Timeticks: (4054) 0:00:40.54 +.1.3.6.1.2.1.2.2.1.9.100000 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.2 = Counter32: 101937886 +.1.3.6.1.2.1.2.2.1.10.3 = Counter32: 2008445 +.1.3.6.1.2.1.2.2.1.10.4 = Counter32: 117121391 +.1.3.6.1.2.1.2.2.1.10.5 = Counter32: 2907086286 +.1.3.6.1.2.1.2.2.1.10.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.7 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.8 = Counter32: 2523386599 +.1.3.6.1.2.1.2.2.1.10.9 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.10 = Counter32: 60088083 +.1.3.6.1.2.1.2.2.1.10.1000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1001 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1002 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1003 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1004 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1005 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1006 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.10.1007 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.2 = Counter32: 59023779 +.1.3.6.1.2.1.2.2.1.11.3 = Counter32: 89507104 +.1.3.6.1.2.1.2.2.1.11.4 = Counter32: 238961 +.1.3.6.1.2.1.2.2.1.11.5 = Counter32: 214080534 +.1.3.6.1.2.1.2.2.1.11.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.7 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.8 = Counter32: 106098613 +.1.3.6.1.2.1.2.2.1.11.9 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.10 = Counter32: 488241179 +.1.3.6.1.2.1.2.2.1.11.1000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1001 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1002 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1003 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1004 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1005 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1006 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.11.1007 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.2 = Counter32: 635855 +.1.3.6.1.2.1.2.2.1.12.3 = Counter32: 1184021 +.1.3.6.1.2.1.2.2.1.12.4 = Counter32: 1774 +.1.3.6.1.2.1.2.2.1.12.5 = Counter32: 1957125 +.1.3.6.1.2.1.2.2.1.12.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.7 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.8 = Counter32: 1026664 +.1.3.6.1.2.1.2.2.1.12.9 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.10 = Counter32: 8433511 +.1.3.6.1.2.1.2.2.1.12.1000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1001 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1002 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1003 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1004 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1005 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1006 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.12.1007 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.7 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.8 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.9 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.10 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1001 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1002 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1003 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1004 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1005 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1006 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.13.1007 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.7 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.8 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.9 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.10 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1001 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1002 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1003 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1004 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1005 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1006 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.14.1007 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.7 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.8 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.9 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.10 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1001 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1002 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1003 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1004 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1005 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1006 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.1007 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.3000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.7000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.8000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.9000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.20000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.15.100000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.2 = Counter32: 3602310925 +.1.3.6.1.2.1.2.2.1.16.3 = Counter32: 4153575351 +.1.3.6.1.2.1.2.2.1.16.4 = Counter32: 578097156 +.1.3.6.1.2.1.2.2.1.16.5 = Counter32: 3535793719 +.1.3.6.1.2.1.2.2.1.16.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.7 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.8 = Counter32: 322720543 +.1.3.6.1.2.1.2.2.1.16.9 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.10 = Counter32: 3405606878 +.1.3.6.1.2.1.2.2.1.16.1000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1001 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1002 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1003 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1004 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1005 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1006 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.16.1007 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.2 = Counter32: 54304831 +.1.3.6.1.2.1.2.2.1.17.3 = Counter32: 84790252 +.1.3.6.1.2.1.2.2.1.17.4 = Counter32: 455038 +.1.3.6.1.2.1.2.2.1.17.5 = Counter32: 461639960 +.1.3.6.1.2.1.2.2.1.17.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.7 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.8 = Counter32: 67283700 +.1.3.6.1.2.1.2.2.1.17.9 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.10 = Counter32: 289257808 +.1.3.6.1.2.1.2.2.1.17.1000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1001 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1002 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1003 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1004 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1005 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1006 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.17.1007 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.2 = Counter32: 2579622 +.1.3.6.1.2.1.2.2.1.18.3 = Counter32: 3340643 +.1.3.6.1.2.1.2.2.1.18.4 = Counter32: 994400 +.1.3.6.1.2.1.2.2.1.18.5 = Counter32: 11406869 +.1.3.6.1.2.1.2.2.1.18.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.7 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.8 = Counter32: 2464108 +.1.3.6.1.2.1.2.2.1.18.9 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.10 = Counter32: 4203681 +.1.3.6.1.2.1.2.2.1.18.1000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1001 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1002 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1003 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1004 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1005 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1006 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.18.1007 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.7 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.8 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.9 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.10 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1001 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1002 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1003 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1004 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1005 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1006 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.19.1007 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.2 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.3 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.4 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.5 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.6 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.7 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.8 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.9 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.10 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1000 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1001 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1002 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1003 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1004 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1005 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1006 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.20.1007 = Counter32: 0 +.1.3.6.1.2.1.2.2.1.22.1 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.2 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.3 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.4 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.5 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.6 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.7 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.8 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.9 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.10 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.1000 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.1001 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.1002 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.1003 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.1004 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.1005 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.1006 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.1007 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.3000 = OID: .0.0 +.1.3.6.1.2.1.2.2.1.22.7000 = OID: .0.0 +.1.3.6.1.2.1.31.1.1.1.1.1 = STRING: "gi1" +.1.3.6.1.2.1.31.1.1.1.1.2 = STRING: "gi2" +.1.3.6.1.2.1.31.1.1.1.1.3 = STRING: "gi3" +.1.3.6.1.2.1.31.1.1.1.1.4 = STRING: "gi4" +.1.3.6.1.2.1.31.1.1.1.1.5 = STRING: "gi5" +.1.3.6.1.2.1.31.1.1.1.1.6 = STRING: "gi6" +.1.3.6.1.2.1.31.1.1.1.1.7 = STRING: "gi7" +.1.3.6.1.2.1.31.1.1.1.1.8 = STRING: "gi8" +.1.3.6.1.2.1.31.1.1.1.1.9 = STRING: "gi9" +.1.3.6.1.2.1.31.1.1.1.1.10 = STRING: "gi10" +.1.3.6.1.2.1.31.1.1.1.1.1000 = STRING: "Po1" +.1.3.6.1.2.1.31.1.1.1.1.1001 = STRING: "Po2" +.1.3.6.1.2.1.31.1.1.1.1.1002 = STRING: "Po3" +.1.3.6.1.2.1.31.1.1.1.1.1003 = STRING: "Po4" +.1.3.6.1.2.1.31.1.1.1.1.1004 = STRING: "Po5" +.1.3.6.1.2.1.31.1.1.1.1.1005 = STRING: "Po6" +.1.3.6.1.2.1.31.1.1.1.1.1006 = STRING: "Po7" +.1.3.6.1.2.1.31.1.1.1.1.1007 = STRING: "Po8" +.1.3.6.1.2.1.31.1.1.1.1.3000 = STRING: "tunnel1" +.1.3.6.1.2.1.31.1.1.1.1.7000 = STRING: "loopback1" +.1.3.6.1.2.1.31.1.1.1.1.8000 = STRING: "User Defined Port 1" +.1.3.6.1.2.1.31.1.1.1.1.9000 = STRING: "stack-port" +.1.3.6.1.2.1.31.1.1.1.1.20000 = STRING: "Logical-int 1" +.1.3.6.1.2.1.31.1.1.1.1.100000 = STRING: "1" +.1.3.6.1.2.1.31.1.1.1.2.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.2 = Counter32: 232247 +.1.3.6.1.2.1.31.1.1.1.2.3 = Counter32: 469325 +.1.3.6.1.2.1.31.1.1.1.2.4 = Counter32: 1558 +.1.3.6.1.2.1.31.1.1.1.2.5 = Counter32: 702834 +.1.3.6.1.2.1.31.1.1.1.2.6 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.7 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.8 = Counter32: 344854 +.1.3.6.1.2.1.31.1.1.1.2.9 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.10 = Counter32: 2220057 +.1.3.6.1.2.1.31.1.1.1.2.1000 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.1001 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.1002 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.1003 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.1004 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.1005 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.1006 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.2.1007 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.2 = Counter32: 403608 +.1.3.6.1.2.1.31.1.1.1.3.3 = Counter32: 714696 +.1.3.6.1.2.1.31.1.1.1.3.4 = Counter32: 216 +.1.3.6.1.2.1.31.1.1.1.3.5 = Counter32: 1257514 +.1.3.6.1.2.1.31.1.1.1.3.6 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.7 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.8 = Counter32: 697980 +.1.3.6.1.2.1.31.1.1.1.3.9 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.10 = Counter32: 6236055 +.1.3.6.1.2.1.31.1.1.1.3.1000 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.1001 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.1002 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.1003 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.1004 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.1005 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.1006 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.3.1007 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.2 = Counter32: 688149 +.1.3.6.1.2.1.31.1.1.1.4.3 = Counter32: 1016406 +.1.3.6.1.2.1.31.1.1.1.4.4 = Counter32: 361405 +.1.3.6.1.2.1.31.1.1.1.4.5 = Counter32: 3352884 +.1.3.6.1.2.1.31.1.1.1.4.6 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.7 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.8 = Counter32: 754556 +.1.3.6.1.2.1.31.1.1.1.4.9 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.10 = Counter32: 1445864 +.1.3.6.1.2.1.31.1.1.1.4.1000 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.1001 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.1002 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.1003 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.1004 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.1005 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.1006 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.4.1007 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.1 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.2 = Counter32: 1891473 +.1.3.6.1.2.1.31.1.1.1.5.3 = Counter32: 2324237 +.1.3.6.1.2.1.31.1.1.1.5.4 = Counter32: 632995 +.1.3.6.1.2.1.31.1.1.1.5.5 = Counter32: 8094652 +.1.3.6.1.2.1.31.1.1.1.5.6 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.7 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.8 = Counter32: 1735136 +.1.3.6.1.2.1.31.1.1.1.5.9 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.10 = Counter32: 2777040 +.1.3.6.1.2.1.31.1.1.1.5.1000 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.1001 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.1002 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.1003 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.1004 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.1005 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.1006 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.5.1007 = Counter32: 0 +.1.3.6.1.2.1.31.1.1.1.6.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.2 = Counter64: 51641545438 +.1.3.6.1.2.1.31.1.1.1.6.3 = Counter64: 73016452477 +.1.3.6.1.2.1.31.1.1.1.6.4 = Counter64: 117121391 +.1.3.6.1.2.1.31.1.1.1.6.5 = Counter64: 145287313455 +.1.3.6.1.2.1.31.1.1.1.6.6 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.7 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.8 = Counter64: 112392587738 +.1.3.6.1.2.1.31.1.1.1.6.9 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.10 = Counter64: 160865421789 +.1.3.6.1.2.1.31.1.1.1.6.1000 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.1001 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.1002 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.1003 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.1004 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.1005 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.1006 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.6.1007 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.6 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.7 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.8 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.9 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.10 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.1000 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.1001 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.1002 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.1003 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.1004 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.1005 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.1006 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.7.1007 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.6 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.7 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.8 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.9 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.10 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.1000 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.1001 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.1002 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.1003 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.1004 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.1005 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.1006 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.8.1007 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.6 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.7 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.8 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.9 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.10 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1000 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1001 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1002 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1003 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1004 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1005 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1006 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.9.1007 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.2 = Counter64: 29372114701 +.1.3.6.1.2.1.31.1.1.1.10.3 = Counter64: 51398215607 +.1.3.6.1.2.1.31.1.1.1.10.4 = Counter64: 578097156 +.1.3.6.1.2.1.31.1.1.1.10.5 = Counter64: 160386462346 +.1.3.6.1.2.1.31.1.1.1.10.6 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.7 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.8 = Counter64: 30974345606 +.1.3.6.1.2.1.31.1.1.1.10.9 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.10 = Counter64: 271914415621 +.1.3.6.1.2.1.31.1.1.1.10.1000 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.1001 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.1002 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.1003 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.1004 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.1005 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.1006 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.10.1007 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.6 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.7 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.8 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.9 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.10 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.1000 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.1001 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.1002 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.1003 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.1004 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.1005 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.1006 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.11.1007 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.6 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.7 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.8 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.9 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.10 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.1000 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.1001 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.1002 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.1003 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.1004 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.1005 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.1006 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.12.1007 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.2 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.3 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.4 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.5 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.6 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.7 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.8 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.9 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.10 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1000 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1001 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1002 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1003 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1004 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1005 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1006 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.13.1007 = Counter64: 0 +.1.3.6.1.2.1.31.1.1.1.14.1 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.2 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.3 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.4 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.5 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.6 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.7 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.8 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.9 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.10 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.1000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.1001 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.1002 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.1003 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.1004 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.1005 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.1006 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.1007 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.3000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.7000 = INTEGER: 2 +.1.3.6.1.2.1.31.1.1.1.14.8000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.14.9000 = INTEGER: 2 +.1.3.6.1.2.1.31.1.1.1.14.20000 = INTEGER: 2 +.1.3.6.1.2.1.31.1.1.1.14.100000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.15.1 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.2 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.3 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.4 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.5 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.6 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.7 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.8 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.9 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.10 = Gauge32: 1000 +.1.3.6.1.2.1.31.1.1.1.15.1000 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.1001 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.1002 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.1003 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.1004 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.1005 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.1006 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.1007 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.3000 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.7000 = Gauge32: 100 +.1.3.6.1.2.1.31.1.1.1.15.8000 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.9000 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.20000 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.15.100000 = Gauge32: 0 +.1.3.6.1.2.1.31.1.1.1.16.1 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.2 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.3 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.4 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.5 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.6 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.7 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.8 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.9 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.10 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.1000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.1001 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.1002 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.1003 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.1004 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.1005 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.1006 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.1007 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.3000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.7000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.8000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.9000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.20000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.16.100000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.1 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.2 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.3 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.4 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.5 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.6 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.7 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.8 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.9 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.10 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.1000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.1001 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.1002 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.1003 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.1004 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.1005 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.1006 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.1007 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.3000 = INTEGER: 2 +.1.3.6.1.2.1.31.1.1.1.17.7000 = INTEGER: 2 +.1.3.6.1.2.1.31.1.1.1.17.8000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.1.1.17.9000 = INTEGER: 2 +.1.3.6.1.2.1.31.1.1.1.17.20000 = INTEGER: 2 +.1.3.6.1.2.1.31.1.1.1.17.100000 = INTEGER: 2 +.1.3.6.1.2.1.31.1.1.1.18.1 = "" +.1.3.6.1.2.1.31.1.1.1.18.2 = STRING: "Powerline Office" +.1.3.6.1.2.1.31.1.1.1.18.3 = "" +.1.3.6.1.2.1.31.1.1.1.18.4 = STRING: "Brother DCP-9022CDW" +.1.3.6.1.2.1.31.1.1.1.18.5 = STRING: "ESX Management" +.1.3.6.1.2.1.31.1.1.1.18.6 = STRING: "VMware ESX" +.1.3.6.1.2.1.31.1.1.1.18.7 = STRING: "dinky" +.1.3.6.1.2.1.31.1.1.1.18.8 = STRING: "fritz.box" +.1.3.6.1.2.1.31.1.1.1.18.9 = "" +.1.3.6.1.2.1.31.1.1.1.18.10 = "" +.1.3.6.1.2.1.31.1.1.1.18.1000 = "" +.1.3.6.1.2.1.31.1.1.1.18.1001 = "" +.1.3.6.1.2.1.31.1.1.1.18.1002 = "" +.1.3.6.1.2.1.31.1.1.1.18.1003 = "" +.1.3.6.1.2.1.31.1.1.1.18.1004 = "" +.1.3.6.1.2.1.31.1.1.1.18.1005 = "" +.1.3.6.1.2.1.31.1.1.1.18.1006 = "" +.1.3.6.1.2.1.31.1.1.1.18.1007 = "" +.1.3.6.1.2.1.31.1.1.1.18.3000 = "" +.1.3.6.1.2.1.31.1.1.1.18.7000 = "" +.1.3.6.1.2.1.31.1.1.1.18.8000 = "" +.1.3.6.1.2.1.31.1.1.1.18.9000 = "" +.1.3.6.1.2.1.31.1.1.1.18.20000 = "" +.1.3.6.1.2.1.31.1.1.1.18.100000 = "" +.1.3.6.1.2.1.31.1.1.1.19.1 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.2 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.3 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.4 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.5 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.6 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.7 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.8 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.9 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.10 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.1000 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.1001 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.1002 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.1003 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.1004 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.1005 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.1006 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.1007 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.3000 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.7000 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.8000 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.9000 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.20000 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.1.1.19.100000 = Timeticks: (0) 0:00:00.00 +.1.3.6.1.2.1.31.1.2.1.3.100000.1 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.2 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.3 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.4 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.5 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.6 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.7 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.8 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.9 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.10 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.1000 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.1001 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.1002 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.1003 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.1004 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.1005 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.1006 = INTEGER: 1 +.1.3.6.1.2.1.31.1.2.1.3.100000.1007 = INTEGER: 1 +.1.3.6.1.2.1.31.1.5.0 = Timeticks: (1411) 0:00:14.11 diff --git a/features/events/api/pom.xml b/features/events/api/pom.xml index 5f9b0bdb4178..3c604ddf1e25 100644 --- a/features/events/api/pom.xml +++ b/features/events/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.events - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.events diff --git a/features/events/daemon/pom.xml b/features/events/daemon/pom.xml index 7075d60e5537..623b1b0b86d4 100644 --- a/features/events/daemon/pom.xml +++ b/features/events/daemon/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.events - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.events diff --git a/features/events/pom.xml b/features/events/pom.xml index c427ee53e500..d98e0ec4e9ac 100644 --- a/features/events/pom.xml +++ b/features/events/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/events/shell-commands/pom.xml b/features/events/shell-commands/pom.xml index 712891b6e8b2..3fabfde78fb5 100644 --- a/features/events/shell-commands/pom.xml +++ b/features/events/shell-commands/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.events - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.events @@ -60,7 +60,7 @@ org.osgi - org.osgi.enterprise + osgi.enterprise provided diff --git a/features/events/sink/dispatcher/pom.xml b/features/events/sink/dispatcher/pom.xml index c1cfd23eab4e..e8177bf44042 100644 --- a/features/events/sink/dispatcher/pom.xml +++ b/features/events/sink/dispatcher/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.events.sink org.opennms.features.events - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/events/sink/pom.xml b/features/events/sink/pom.xml index b13195842117..49212841fe94 100644 --- a/features/events/sink/pom.xml +++ b/features/events/sink/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.events org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.events diff --git a/features/events/sink/shell-commands/pom.xml b/features/events/sink/shell-commands/pom.xml index c376670eb1f9..4850bc79673a 100644 --- a/features/events/sink/shell-commands/pom.xml +++ b/features/events/sink/shell-commands/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.events.sink org.opennms.features.events - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/events/syslog/pom.xml b/features/events/syslog/pom.xml index 9fb601fc4b98..6784da1836e8 100644 --- a/features/events/syslog/pom.xml +++ b/features/events/syslog/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.events - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.events diff --git a/features/events/syslog/src/main/resources/org/opennms/netmgt/syslogd/jaxb.properties b/features/events/syslog/src/main/resources/org/opennms/netmgt/syslogd/jaxb.properties index a0cde4655ec3..4c1742cec2ff 100644 --- a/features/events/syslog/src/main/resources/org/opennms/netmgt/syslogd/jaxb.properties +++ b/features/events/syslog/src/main/resources/org/opennms/netmgt/syslogd/jaxb.properties @@ -26,4 +26,5 @@ # http://www.opennms.com/ ############################################################################### -javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory \ No newline at end of file +javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory +javax.xml.bind.JAXBContextFactory=org.eclipse.persistence.jaxb.JAXBContextFactory diff --git a/features/events/traps/pom.xml b/features/events/traps/pom.xml index 54c000ecab97..cd52dfefd825 100644 --- a/features/events/traps/pom.xml +++ b/features/events/traps/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.events - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.events @@ -34,15 +34,6 @@ - - org.opennms.dependencies - camel-dependencies - pom - - - org.opennms.core - org.opennms.core.camel - org.opennms.core org.opennms.core.daemon @@ -65,6 +56,11 @@ org.opennms.core.ipc.sink.xml ${project.version} + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.api + ${project.version} + org.opennms.features.distributed core-api @@ -83,6 +79,12 @@ opennms-dao-mock test + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.memory + ${project.version} + test + org.opennms.core.ipc.sink org.opennms.core.ipc.sink.mock-impl @@ -109,11 +111,6 @@ org.opennms.core.test-api.db test - - org.opennms.core.test-api - org.opennms.core.test-api.http - test - org.opennms.core.test-api org.opennms.core.test-api.services @@ -145,65 +142,11 @@ org.opennms.features.collection.persistence.rrd test - - org.opennms.dependencies - camel-test-dependencies - pom - test - org.mockito mockito-core test - - org.apache.activemq - activemq-camel - ${activemqVersion} - test - - - javax.xml.bind - jaxb-api - - - com.sun.xml.bind - jaxb-impl - - - commons-logging - commons-logging - - - org.springframework - spring-beans - - - org.springframework - spring-context - - - org.springframework - spring-core - - - org.springframework - spring-expression - - - org.springframework - spring-jms - - - org.springframework - spring-aop - - - org.springframework - spring-tx - - - org.opennms.features.minion core-impl @@ -231,5 +174,11 @@ awaitility test + + com.github.java-json-tools + json-patch + 1.13 + test + diff --git a/features/events/traps/src/main/java/org/opennms/netmgt/trapd/TrapListener.java b/features/events/traps/src/main/java/org/opennms/netmgt/trapd/TrapListener.java index c2ca3baf5224..e3b52b3574ec 100644 --- a/features/events/traps/src/main/java/org/opennms/netmgt/trapd/TrapListener.java +++ b/features/events/traps/src/main/java/org/opennms/netmgt/trapd/TrapListener.java @@ -28,6 +28,7 @@ package org.opennms.netmgt.trapd; +import java.io.Closeable; import java.io.IOException; import java.lang.reflect.UndeclaredThrowableException; import java.net.InetAddress; @@ -36,6 +37,7 @@ import org.opennms.core.ipc.sink.api.AsyncDispatcher; import org.opennms.core.ipc.sink.api.MessageDispatcherFactory; +import org.opennms.core.ipc.twin.api.TwinSubscriber; import org.opennms.core.logging.Logging; import org.opennms.core.utils.InetAddressUtils; import org.opennms.netmgt.config.TrapdConfig; @@ -45,6 +47,7 @@ import org.opennms.netmgt.snmp.SnmpException; import org.opennms.netmgt.snmp.SnmpUtils; import org.opennms.netmgt.snmp.TrapInformation; +import org.opennms.netmgt.snmp.TrapListenerConfig; import org.opennms.netmgt.snmp.TrapNotificationListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,6 +68,11 @@ public class TrapListener implements TrapNotificationListener { private AsyncDispatcher m_dispatcher; + @Autowired + private TwinSubscriber m_twinSubscriber; + + private Closeable m_twinSubscription; + public TrapListener(final TrapdConfig config) throws SocketException { Objects.requireNonNull(config, "Config cannot be null"); m_config = config; @@ -94,11 +102,19 @@ public void trapError(int error, String msg) { } public void start() { + m_twinSubscription = m_twinSubscriber.subscribe(TrapListenerConfig.TWIN_KEY, TrapListenerConfig.class, (config) -> { + LOG.info("Got listener config update - reloading"); + this.close(); + this.open(config); + }); + } + + private void open(final TrapListenerConfig config) { final int m_snmpTrapPort = m_config.getSnmpTrapPort(); final InetAddress address = getInetAddress(); try { LOG.info("Listening on {}:{}", address == null ? "[all interfaces]" : InetAddressUtils.str(address), m_snmpTrapPort); - SnmpUtils.registerForTraps(this, address, m_snmpTrapPort, m_config.getSnmpV3Users()); + SnmpUtils.registerForTraps(this, address, m_snmpTrapPort, config.getSnmpV3Users()); m_registeredForTraps = true; LOG.debug("init: Creating the trap session"); @@ -120,25 +136,38 @@ public void run() { } public void stop() { + try { + m_twinSubscription.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + this.close(); + + try { + if (m_dispatcher != null) { + m_dispatcher.close(); + m_dispatcher = null; + } + } catch (final Exception e) { + LOG.warn("stop: exception occurred closing m_dispatcher", e); + } + } + + private void close() { try { if (m_registeredForTraps) { LOG.debug("stop: Closing SNMP trap session."); - SnmpUtils.unregisterForTraps(this, getInetAddress(), m_config.getSnmpTrapPort()); + SnmpUtils.unregisterForTraps(this); m_registeredForTraps = false; LOG.debug("stop: SNMP trap session closed."); } else { LOG.debug("stop: not attemping to closing SNMP trap session--it was never opened or already closed."); } - if (m_dispatcher != null) { - m_dispatcher.close(); - m_dispatcher = null; - } } catch (final IOException e) { LOG.warn("stop: exception occurred closing session", e); } catch (final IllegalStateException e) { LOG.debug("stop: The SNMP session was already closed", e); - } catch (final Exception e) { - LOG.warn("stop: exception occured closing m_dispatcher", e); } } @@ -149,15 +178,6 @@ public void setTrapdConfig(TrapdConfiguration newTrapdConfig) { } } - public void setSnmpV3Users(final TrapdConfiguration newTrapdConfig) { - TrapdConfigBean newTrapdConfigBean = new TrapdConfigBean(newTrapdConfig); - if (hasSnmpV3UsersChanged(newTrapdConfigBean)) { - TrapdConfigBean clone = new TrapdConfigBean(m_config); - clone.setSnmpV3Users(newTrapdConfigBean.getSnmpV3Users()); - restartWithNewConfig(clone); - } - } - public void setMessageDispatcherFactory(MessageDispatcherFactory messageDispatcherFactory) { m_messageDispatcherFactory = Objects.requireNonNull(messageDispatcherFactory); } @@ -166,13 +186,21 @@ public void setDistPollerDao(DistPollerDao distPollerDao) { m_distPollerDao = Objects.requireNonNull(distPollerDao); } + public TwinSubscriber getTwinSubscriber() { + return this.m_twinSubscriber; + } + + public void setTwinSubscriber(final TwinSubscriber twinSubscriber) { + this.m_twinSubscriber = Objects.requireNonNull(twinSubscriber); + } + private void restartWithNewConfig(final TrapdConfigBean newConfig) { // We stop, still using old config LOG.info("Stopping TrapListener service to reload configuration..."); stop(); LOG.info("TrapListener service has been stopped."); - // Update config, instead of set it, to apply the chnages to ALL config references + // Update config, instead of set it, to apply the changes to ALL config references m_config.update(newConfig); // We start with new config diff --git a/features/events/traps/src/main/java/org/opennms/netmgt/trapd/Trapd.java b/features/events/traps/src/main/java/org/opennms/netmgt/trapd/Trapd.java index 72ad41b77b01..f0051fa0f5cd 100644 --- a/features/events/traps/src/main/java/org/opennms/netmgt/trapd/Trapd.java +++ b/features/events/traps/src/main/java/org/opennms/netmgt/trapd/Trapd.java @@ -30,13 +30,17 @@ import java.io.IOException; +import org.opennms.core.ipc.twin.api.TwinPublisher; import org.opennms.core.spring.BeanUtils; +import org.opennms.netmgt.config.TrapdConfig; +import org.opennms.netmgt.config.TrapdConfigFactory; import org.opennms.netmgt.daemon.AbstractServiceDaemon; import org.opennms.netmgt.daemon.DaemonTools; import org.opennms.netmgt.events.api.EventConstants; import org.opennms.netmgt.events.api.annotations.EventHandler; import org.opennms.netmgt.events.api.annotations.EventListener; import org.opennms.netmgt.events.api.model.IEvent; +import org.opennms.netmgt.snmp.TrapListenerConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -84,6 +88,13 @@ public class Trapd extends AbstractServiceDaemon { @Autowired private TrapListener m_trapListener; + private TrapdConfig m_config; + + @Autowired + private TwinPublisher m_twinPublisher; + + private TwinPublisher.Session m_twinSession; + /** *

* Constructs a new Trapd object that receives and forwards trap messages @@ -96,6 +107,8 @@ public class Trapd extends AbstractServiceDaemon { */ public Trapd() { super(LOG4J_CATEGORY); + + m_config = TrapdConfigFactory.getInstance(); } @@ -121,6 +134,20 @@ protected synchronized void onStart() { m_status = STARTING; LOG.debug("start: Initializing the Trapd receiver"); + // Register session with Publisher for once. + try { + m_twinSession = m_twinPublisher.register(TrapListenerConfig.TWIN_KEY, TrapListenerConfig.class, null); + } catch (IOException e) { + LOG.error("Failed to register twin for trap listener config", e); + throw new RuntimeException(e); + } + // Publish existing config. + try { + m_twinSession.publish(from(m_config)); + } catch (IOException e) { + LOG.error("Failed to register twin for trap listener config", e); + throw new RuntimeException(e); + } m_trapListener.start(); @@ -202,14 +229,29 @@ public void handleReloadEvent(IEvent e) { private void handleConfigurationChanged() { stop(); + try { m_trapListener.reload(); + + publishListenerConfig(); } catch (IOException e) { throw new RuntimeException(e); } + start(); } + public void publishListenerConfig() throws IOException { + m_config = TrapdConfigFactory.getInstance(); + m_twinSession.publish(from(m_config)); + } + + public static TrapListenerConfig from(final TrapdConfig config) { + final TrapListenerConfig result = new TrapListenerConfig(); + result.setSnmpV3Users(config.getSnmpV3Users()); + return result; + } + public static String getLoggingCategory() { return LOG4J_CATEGORY; } diff --git a/features/events/traps/src/main/java/org/opennms/netmgt/trapd/TrapdConfigBean.java b/features/events/traps/src/main/java/org/opennms/netmgt/trapd/TrapdConfigBean.java index f75e2a9ab515..96fa92767803 100644 --- a/features/events/traps/src/main/java/org/opennms/netmgt/trapd/TrapdConfigBean.java +++ b/features/events/traps/src/main/java/org/opennms/netmgt/trapd/TrapdConfigBean.java @@ -111,12 +111,7 @@ public int getSnmpTrapPort() { } public void setSnmpV3Users(List snmpV3Users) { - Objects.requireNonNull(snmpV3Users); - final Map collect = snmpV3Users.stream().collect(Collectors.toMap(SnmpV3User::getSecurityName, Function.identity(), (a, b) -> { - LoggerFactory.getLogger(getClass()).warn("Multiple SNMPv3 user entries found for security name \"{}\", using entry {}", a.getSecurityName(), a); - return a; - })); - this.snmpV3Users = new ArrayList<>(collect.values()); + this.snmpV3Users = new ArrayList<>(Objects.requireNonNull(snmpV3Users)); } @Override diff --git a/features/events/traps/src/main/resources/META-INF/opennms/applicationContext-trapDaemon.xml b/features/events/traps/src/main/resources/META-INF/opennms/applicationContext-trapDaemon.xml index 3fc0d7d88c9b..302d8f00065a 100644 --- a/features/events/traps/src/main/resources/META-INF/opennms/applicationContext-trapDaemon.xml +++ b/features/events/traps/src/main/resources/META-INF/opennms/applicationContext-trapDaemon.xml @@ -3,17 +3,10 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" - xmlns:util="http://www.springframework.org/schema/util" - xmlns:aop="http://www.springframework.org/schema/aop" - xmlns:jdbc="http://www.springframework.org/schema/jdbc" - xmlns:onmsgi="http://xmlns.opennms.org/xsd/spring/onms-osgi" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd - http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd - http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd - http://xmlns.opennms.org/xsd/spring/onms-osgi http://xmlns.opennms.org/xsd/spring/onms-osgi.xsd "> diff --git a/features/events/traps/src/main/resources/OSGI-INF/blueprint/blueprint-trapd-listener.xml b/features/events/traps/src/main/resources/OSGI-INF/blueprint/blueprint-trapd-listener.xml index 136dbf7b63e2..1b6b09000a68 100644 --- a/features/events/traps/src/main/resources/OSGI-INF/blueprint/blueprint-trapd-listener.xml +++ b/features/events/traps/src/main/resources/OSGI-INF/blueprint/blueprint-trapd-listener.xml @@ -1,17 +1,10 @@ + http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.3.0.xsd"> @@ -22,23 +15,12 @@ - - - - - - - - - - - - + @@ -52,17 +34,6 @@ - - - - - - - - - - - + + + + + + + diff --git a/features/executor-factory/cassandra/pom.xml b/features/executor-factory/cassandra/pom.xml index e9b9199eae50..bb7d476a35c8 100644 --- a/features/executor-factory/cassandra/pom.xml +++ b/features/executor-factory/cassandra/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.executor-factory - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.executor-factory diff --git a/features/executor-factory/pom.xml b/features/executor-factory/pom.xml index 10876b69d9d3..31daa3fc0c72 100644 --- a/features/executor-factory/pom.xml +++ b/features/executor-factory/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/flows/api/pom.xml b/features/flows/api/pom.xml index 8c7d0842f495..aa7afe4237fd 100644 --- a/features/flows/api/pom.xml +++ b/features/flows/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.flows - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows diff --git a/features/flows/api/src/main/java/org/opennms/netmgt/flows/api/EnrichedFlow.java b/features/flows/api/src/main/java/org/opennms/netmgt/flows/api/EnrichedFlow.java index 7f06776baba5..8518681dd010 100644 --- a/features/flows/api/src/main/java/org/opennms/netmgt/flows/api/EnrichedFlow.java +++ b/features/flows/api/src/main/java/org/opennms/netmgt/flows/api/EnrichedFlow.java @@ -45,8 +45,6 @@ public EnrichedFlow(Flow flow) { private String host; - private String convoKey; - private String location; private Locality srcLocality; @@ -103,10 +101,6 @@ public NodeInfo getExporterNodeInfo() { return exporterNodeInfo; } - public String getConvoKey() { - return convoKey; - } - public void setApplication(String application) { this.application = application; } @@ -143,10 +137,6 @@ public void setExporterNodeInfo(NodeInfo exporterNodeInfo) { this.exporterNodeInfo = exporterNodeInfo; } - public void setConvoKey(String convoKey) { - this.convoKey = convoKey; - } - public long getClockCorrection() { return this.clockCorrection; } diff --git a/features/flows/classification/engine/api/pom.xml b/features/flows/classification/engine/api/pom.xml index 27a17e8ad6c9..93cf3302314e 100644 --- a/features/flows/classification/engine/api/pom.xml +++ b/features/flows/classification/engine/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.flows.classification org.opennms.features.flows.classification.engine - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows.classification.engine diff --git a/features/flows/classification/engine/api/src/main/java/org/opennms/netmgt/flows/classification/ClassificationEngine.java b/features/flows/classification/engine/api/src/main/java/org/opennms/netmgt/flows/classification/ClassificationEngine.java index aae11439b19b..b2db3dc3f770 100644 --- a/features/flows/classification/engine/api/src/main/java/org/opennms/netmgt/flows/classification/ClassificationEngine.java +++ b/features/flows/classification/engine/api/src/main/java/org/opennms/netmgt/flows/classification/ClassificationEngine.java @@ -37,5 +37,5 @@ public interface ClassificationEngine { List getInvalidRules(); - void reload(); + void reload() throws InterruptedException; } diff --git a/features/flows/classification/engine/api/src/main/java/org/opennms/netmgt/flows/classification/ClassificationRequest.java b/features/flows/classification/engine/api/src/main/java/org/opennms/netmgt/flows/classification/ClassificationRequest.java index b38152082e12..38d959bec6fa 100644 --- a/features/flows/classification/engine/api/src/main/java/org/opennms/netmgt/flows/classification/ClassificationRequest.java +++ b/features/flows/classification/engine/api/src/main/java/org/opennms/netmgt/flows/classification/ClassificationRequest.java @@ -37,12 +37,12 @@ public class ClassificationRequest { private String location; private Protocol protocol; private Integer dstPort; - private String dstAddress; + private IpAddr dstAddress; private Integer srcPort; - private String srcAddress; + private IpAddr srcAddress; private String exporterAddress; - public ClassificationRequest(String location, int srcPort, String srcAddress, int dstPort, String dstAddress, Protocol protocol) { + public ClassificationRequest(String location, int srcPort, IpAddr srcAddress, int dstPort, IpAddr dstAddress, Protocol protocol) { this.location = location; this.srcPort = srcPort; this.srcAddress = srcAddress; @@ -80,10 +80,14 @@ public Integer getDstPort() { } public void setDstAddress(String dstAddress) { + this.dstAddress = IpAddr.of(dstAddress); + } + + public void setDstAddress(IpAddr dstAddress) { this.dstAddress = dstAddress; } - public String getDstAddress() { + public IpAddr getDstAddress() { return dstAddress; } @@ -95,11 +99,15 @@ public void setSrcPort(final Integer srcPort) { this.srcPort = srcPort; } - public String getSrcAddress() { + public IpAddr getSrcAddress() { return srcAddress; } public void setSrcAddress(String srcAddress) { + this.srcAddress = IpAddr.of(srcAddress); + } + + public void setSrcAddress(IpAddr srcAddress) { this.srcAddress = srcAddress; } diff --git a/features/flows/classification/engine/api/src/main/java/org/opennms/netmgt/flows/classification/IpAddr.java b/features/flows/classification/engine/api/src/main/java/org/opennms/netmgt/flows/classification/IpAddr.java new file mode 100644 index 000000000000..a9729b240264 --- /dev/null +++ b/features/flows/classification/engine/api/src/main/java/org/opennms/netmgt/flows/classification/IpAddr.java @@ -0,0 +1,173 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.flows.classification; + +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.Objects; + +import org.apache.commons.lang3.ArrayUtils; +import org.opennms.core.network.IPAddress; + +import com.google.common.primitives.Ints; +import com.google.common.primitives.Longs; + +public abstract class IpAddr implements Comparable { + + public static IpAddr of(String dottedNotation) { + if (dottedNotation == null) { + return null; + } + try { + return of(InetAddress.getByName(dottedNotation)); + } catch (UnknownHostException e) { + throw new IllegalArgumentException("Invalid IPAddress " + dottedNotation, e); + } + } + + public static IpAddr of(InetAddress addr) { + var bytes = addr.getAddress(); + if (bytes.length == 4) { + return new Ip4Addr( + Ints.fromBytes(bytes[0], bytes[1], bytes[2], bytes[3]) + ); + } else if (bytes.length == 16) { + return new Ip6Addr( + Longs.fromBytes(bytes[0], bytes[1], bytes[2], bytes[3], bytes[4], bytes[5], bytes[6], bytes[7]), + Longs.fromBytes(bytes[8], bytes[9], bytes[10], bytes[11], bytes[12], bytes[13], bytes[14], bytes[15]) + ); + } else { + throw new RuntimeException("unexpected number of bytes of ip address - addr: " + addr); + } + } + + public abstract IpAddr inc(); + + public static final class Ip4Addr extends IpAddr { + private final int value; + + public Ip4Addr(int value) { + this.value = value; + } + + @Override + public int compareTo(IpAddr other) { + if (other instanceof Ip6Addr) { + return -1; + } + var o = (Ip4Addr) other; + return Integer.compareUnsigned(value, o.value); + } + + @Override + public IpAddr inc() { + if (value + 1 == 0) { + throw new RuntimeException("IP address can no more; limit reached"); + } + return new Ip4Addr(value + 1); + } + + @Override + public String toString() { + return new IPAddress(Ints.toByteArray(value)).toString(); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Ip4Addr ip4Addr = (Ip4Addr) o; + return value == ip4Addr.value; + } + + @Override + public int hashCode() { + return Objects.hash(value); + } + } + + public static final class Ip6Addr extends IpAddr { + private final long high, low; + + public Ip6Addr(long high, long low) { + this.high = high; + this.low = low; + } + + @Override + public int compareTo(IpAddr other) { + if (other instanceof Ip4Addr) { + return 1; + } + var o = (Ip6Addr) other; + return high != o.high ? + Long.compareUnsigned(high, o.high) : + Long.compareUnsigned(low, o.low); + + } + + @Override + public IpAddr inc() { + if (low + 1 == 0) { + if (high + 1 == 0) { + throw new RuntimeException("IP address can no more; limit reached"); + } + return new Ip6Addr(high + 1, 0); + } else { + return new Ip6Addr(high, low + 1); + } + } + + @Override + public String toString() { + return new IPAddress(ArrayUtils.addAll(Longs.toByteArray(high), Longs.toByteArray(low))).toString(); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Ip6Addr ip6Addr = (Ip6Addr) o; + return high == ip6Addr.high && low == ip6Addr.low; + } + + @Override + public int hashCode() { + return Objects.hash(high, low); + } + } +} diff --git a/features/flows/classification/engine/impl/pom.xml b/features/flows/classification/engine/impl/pom.xml index 4430afe30449..78e671824ef1 100644 --- a/features/flows/classification/engine/impl/pom.xml +++ b/features/flows/classification/engine/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.flows.classification org.opennms.features.flows.classification.engine - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows.classification.engine @@ -110,5 +110,11 @@ org.openjdk.jmh jmh-generator-annprocess + + org.awaitility + awaitility + 3.1.6 + test + diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/AsyncReloadingClassificationEngine.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/AsyncReloadingClassificationEngine.java index 8695d69b63dd..c4ed87d5c950 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/AsyncReloadingClassificationEngine.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/AsyncReloadingClassificationEngine.java @@ -29,8 +29,9 @@ package org.opennms.netmgt.flows.classification.internal; import java.util.List; -import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ExecutorService; +import java.util.concurrent.Future; +import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -53,7 +54,7 @@ public class AsyncReloadingClassificationEngine implements ClassificationEngine private static final Logger LOG = LoggerFactory.getLogger(AsyncReloadingClassificationEngine.class); private enum State { - READY, RELOADING, NEED_ANOTHER_RELOAD, FAILED + READY, RELOADING, FAILED } private final ClassificationEngine delegate; @@ -62,12 +63,13 @@ private enum State { // -> uses no additional resources while being idle private final ExecutorService executorService = new ThreadPoolExecutor(0, 1, 60L, TimeUnit.SECONDS, - new ArrayBlockingQueue<>(1), + new LinkedBlockingQueue<>(), // multiple reloads may have been enqueued and cancelled runnable -> new Thread(runnable, "AsyncReloadingClassificationEngine") ); private State state = State.READY; private Throwable reloadException; + private Future reloadFuture; public AsyncReloadingClassificationEngine(ClassificationEngine delegate) { this.delegate = delegate; @@ -102,42 +104,24 @@ private void doReload() { try { LOG.debug("reload classification engine"); delegate.reload(); - if (onReloadSucceeded()) { - LOG.debug("another classification engine reload is required"); - doReload(); - } else { - LOG.debug("classification engine reloaded"); - } + LOG.debug("classification engine reloaded"); + onReloadSucceeded(); + } catch (InterruptedException e) { + LOG.debug("reload was interrupted"); + // another reload is submitted or already under way that changes the state on its completion } catch (Throwable e) { LOG.error("reload of classification engine failed", e); - if (onReloadFailed(e)) { - LOG.debug("another classification engine reload is required"); - doReload(); - } else { - LOG.debug("classification engine reloaded"); - } + onReloadFailed(e); } } - private synchronized boolean onReloadSucceeded() { - if (state == State.NEED_ANOTHER_RELOAD) { - setState(State.RELOADING); - return true; - } else { - setState(State.READY); - return false; - } + private synchronized void onReloadSucceeded() { + setState(State.READY); } - private synchronized boolean onReloadFailed(Throwable e) { - if (state == State.NEED_ANOTHER_RELOAD) { - setState(State.RELOADING); - return true; - } else { - reloadException = e; - setState(State.FAILED); - return false; - } + private synchronized void onReloadFailed(Throwable e) { + reloadException = e; + setState(State.FAILED); } @Override @@ -158,7 +142,7 @@ public synchronized void reload() { case READY: case FAILED: try { - executorService.submit(this::doReload); + reloadFuture = executorService.submit(this::doReload); setState(State.RELOADING); } catch (Throwable t) { LOG.error("could not submit reload task", t); @@ -167,7 +151,8 @@ public synchronized void reload() { } break; case RELOADING: - setState(State.NEED_ANOTHER_RELOAD); + reloadFuture.cancel(true); + reloadFuture = executorService.submit(this::doReload); break; } } diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/ClassificationEngineInitializer.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/ClassificationEngineInitializer.java index 204e31f01d35..fc0cfbd7054b 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/ClassificationEngineInitializer.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/ClassificationEngineInitializer.java @@ -30,15 +30,23 @@ import org.opennms.netmgt.dao.api.SessionUtils; import org.opennms.netmgt.flows.classification.ClassificationEngine; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; // Is required to initialize the classification engine properly, as it requires a transaction to load correctly. // While starting the bundle, the initialization occurs from within the blueprint container, thus no transaction is available // This bean wraps the loading in a transaction, ensuring loading can occurr correctly public class ClassificationEngineInitializer { + private static final Logger LOG = LoggerFactory.getLogger(ClassificationEngineInitializer.class); + public ClassificationEngineInitializer(ClassificationEngine engine, SessionUtils sessionUtils) { sessionUtils.withReadOnlyTransaction(() -> { - engine.reload(); + try { + engine.reload(); + } catch (InterruptedException e) { + LOG.error("reload was interrupted", e); + } return null; }); } diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/ClassificationEngineReloader.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/ClassificationEngineReloader.java index 20a56391d5ff..df51d8870d68 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/ClassificationEngineReloader.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/ClassificationEngineReloader.java @@ -43,13 +43,17 @@ public class ClassificationEngineReloader { private final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); - public ClassificationEngineReloader(Identity identity, ClassificationEngine engine, String reloadIntervalString) { + public ClassificationEngineReloader(Identity identity, ClassificationEngine engine, String reloadIntervalString){ if (identity != null) { final int reloadInterval = Integer.parseInt(reloadIntervalString); LOG.debug("Scheduling reload of classification engine every {} seconds", reloadInterval); executorService.scheduleWithFixedDelay(() -> { LOG.debug("Performing reload of Classification Engine..."); - engine.reload(); + try { + engine.reload(); + } catch (InterruptedException e) { + LOG.error("reload was interrupted", e); + } LOG.debug("Reload of Classification Engine performed. Next reload will be in {} seconds", reloadInterval); }, reloadInterval, reloadInterval, TimeUnit.SECONDS); } diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationEngine.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationEngine.java index abd195629339..3b7adc7b0c81 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationEngine.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationEngine.java @@ -60,11 +60,11 @@ public class DefaultClassificationEngine implements ClassificationEngine { private final ClassificationRuleProvider ruleProvider; private final FilterService filterService; - public DefaultClassificationEngine(final ClassificationRuleProvider ruleProvider, final FilterService filterService) { + public DefaultClassificationEngine(final ClassificationRuleProvider ruleProvider, final FilterService filterService) throws InterruptedException { this(ruleProvider, filterService, true); } - public DefaultClassificationEngine(final ClassificationRuleProvider ruleProvider, final FilterService filterService, final boolean initialize) { + public DefaultClassificationEngine(final ClassificationRuleProvider ruleProvider, final FilterService filterService, final boolean initialize) throws InterruptedException { this.ruleProvider = Objects.requireNonNull(ruleProvider); this.filterService = Objects.requireNonNull(filterService); if (initialize) { @@ -73,7 +73,7 @@ public DefaultClassificationEngine(final ClassificationRuleProvider ruleProvider } @Override - public void reload() { + public void reload() throws InterruptedException { var start = System.currentTimeMillis(); var invalid = new ArrayList(); diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationService.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationService.java index 3162608b0004..634d1b271bd7 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationService.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationService.java @@ -55,9 +55,13 @@ import org.opennms.netmgt.flows.classification.persistence.api.ClassificationRuleDao; import org.opennms.netmgt.flows.classification.persistence.api.Group; import org.opennms.netmgt.flows.classification.persistence.api.Rule; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class DefaultClassificationService implements ClassificationService { + private static final Logger LOG = LoggerFactory.getLogger(DefaultClassificationService.class); + private final ClassificationRuleDao classificationRuleDao; private final ClassificationGroupDao classificationGroupDao; @@ -322,7 +326,11 @@ private T runInTransaction(Supplier supplier) { private T runInTransactionAndThenReload(Supplier supplier) { T res = runInTransaction(supplier); - classificationEngine.reload(); + try { + classificationEngine.reload(); + } catch (InterruptedException e) { + LOG.error("reload was interrupted", e); + } return res; } diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/TimingClassificationEngine.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/TimingClassificationEngine.java index 6ef9b122fce1..9af70a99500f 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/TimingClassificationEngine.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/TimingClassificationEngine.java @@ -60,7 +60,7 @@ public String classify(ClassificationRequest classificationRequest) { } @Override - public void reload() { + public void reload() throws InterruptedException { try (final Timer.Context ctx = reloadTimer.time()) { delegate.reload(); } diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/Bounds.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/Bounds.java index 3201c7aa4a97..a41b55e72c6f 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/Bounds.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/Bounds.java @@ -27,7 +27,7 @@ *******************************************************************************/ package org.opennms.netmgt.flows.classification.internal.decision; -import org.opennms.core.network.IPAddress; +import org.opennms.netmgt.flows.classification.IpAddr; /** * Bundles bounds for the different aspects of flows that are used for classification. @@ -40,9 +40,9 @@ public class Bounds { public final Bound protocol; public final Bound srcPort, dstPort; - public final Bound srcAddr, dstAddr; + public final Bound srcAddr, dstAddr; - public Bounds(Bound protocol, Bound srcPort, Bound dstPort, Bound srcAddr, Bound dstAddr) { + public Bounds(Bound protocol, Bound srcPort, Bound dstPort, Bound srcAddr, Bound dstAddr) { this.protocol = protocol; this.srcPort = srcPort; this.dstPort = dstPort; diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/PreprocessedRule.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/PreprocessedRule.java index cd70b36fc858..1507cc49d9f5 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/PreprocessedRule.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/PreprocessedRule.java @@ -32,8 +32,8 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import org.opennms.core.network.IPAddress; import org.opennms.netmgt.flows.classification.FilterService; +import org.opennms.netmgt.flows.classification.IpAddr; import org.opennms.netmgt.flows.classification.internal.value.IpValue; import org.opennms.netmgt.flows.classification.internal.value.PortValue; import org.opennms.netmgt.flows.classification.internal.value.ProtocolValue; @@ -71,12 +71,12 @@ private static Stream portThresholds( private static Stream addressThresholds( IpValue value, - Function thresholdCreator + Function thresholdCreator ) { return value == null ? Stream.empty() : value .getIpAddressRanges() .stream() - .flatMap(range -> Stream.of(range.getBegin(), range.getEnd())) + .flatMap(range -> Stream.of(range.begin, range.end)) .map(thresholdCreator); } diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/Threshold.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/Threshold.java index 0e3333aa0015..5a9b1664e46c 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/Threshold.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/Threshold.java @@ -35,8 +35,8 @@ import java.util.function.BiFunction; import java.util.function.Function; -import org.opennms.core.network.IPAddress; import org.opennms.netmgt.flows.classification.ClassificationRequest; +import org.opennms.netmgt.flows.classification.IpAddr; import org.opennms.netmgt.flows.classification.internal.value.IpValue; import org.opennms.netmgt.flows.classification.internal.value.PortValue; @@ -371,17 +371,17 @@ public String toString() { } } - public static abstract class Address extends Threshold { - protected final IPAddress address; + public static abstract class Address extends Threshold { + protected final IpAddr address; private final Function getRuleAddress; - private final Function getRequestAddress; + private final Function getRequestAddress; public Address( - Function> getBound, - BiFunction, Bounds> setBound, - IPAddress address, + Function> getBound, + BiFunction, Bounds> setBound, + IpAddr address, Function getRuleAddress, - Function getRequestAddress + Function getRequestAddress ) { super(getBound, setBound); this.address = address; @@ -390,7 +390,7 @@ public Address( } @Override - public final IPAddress getThreshold() { + public final IpAddr getThreshold() { return address; } @@ -405,12 +405,12 @@ protected final Match match(PreprocessedRule rule, Bounds bounds) { var gt = false; var bound = getBound.apply(bounds); for (var range : ipValue.getIpAddressRanges()) { - if (!bound.overlaps(range.getBegin(), range.getEnd())) { + if (!bound.overlaps(range.begin, range.end)) { continue; } - lt |= range.getBegin().compareTo(address) < 0; + lt |= range.begin.compareTo(address) < 0; eq |= range.contains(address); - gt |= range.getEnd().compareTo(address) > 0; + gt |= range.end.compareTo(address) > 0; if (lt && eq && gt) { break; } @@ -423,7 +423,7 @@ protected final Match match(PreprocessedRule rule, Bounds bounds) { public final Order compare(ClassificationRequest request) { var s = getRequestAddress.apply(request); if (s != null) { - var c = new IPAddress(s).compareTo(address); + var c = s.compareTo(address); return c < 0 ? Order.LT : c == 0 ? Order.EQ : Order.GT; } else { return Order.NA; @@ -449,7 +449,7 @@ public final int hashCode() { } public final static class SrcAddress extends Address { - public SrcAddress(IPAddress address) { + public SrcAddress(IpAddr address) { super( bs -> bs.srcAddr, (bs, b) -> new Bounds(bs.protocol, bs.srcPort, bs.dstPort, b, bs.dstAddr), @@ -468,7 +468,7 @@ public String toString() { } public final static class DstAddress extends Address { - public DstAddress(IPAddress address) { + public DstAddress(IpAddr address) { super( bs -> bs.dstAddr, (bs, b) -> new Bounds(bs.protocol, bs.srcPort, bs.dstPort, bs.srcAddr, b), diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/Tree.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/Tree.java index f525a7fa53e5..7cb587237314 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/Tree.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/decision/Tree.java @@ -27,7 +27,6 @@ *******************************************************************************/ package org.opennms.netmgt.flows.classification.internal.decision; -import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; @@ -65,11 +64,15 @@ public abstract class Tree { * Recursively constructs a decision tree consisting of nodes that split the given rules by thresholds * and leaves that contain the classifiers that were selected by the thresholds of their ancestor nodes. */ - public static Tree of(List rules, FilterService filterService) { + public static Tree of(List rules, FilterService filterService) throws InterruptedException { return of(rules, Bounds.ANY, 0, filterService); } - private static Tree of(List rules, Bounds bounds, int depth, FilterService filterService) { + private static Tree of(List rules, Bounds bounds, int depth, FilterService filterService) throws InterruptedException { + if (Thread.interrupted()) { + throw new InterruptedException(); + } + final var ruleSetSize = rules.size(); if (ruleSetSize <= 1) { LOG.trace("Leaf - depth: " + depth + "; rules: " + ruleSetSize); @@ -259,12 +262,10 @@ protected Tree(Info info) { * @return Returns null if the request does not match a rule */ public final String classify(ClassificationRequest request) { - var classifiers = classifiers(request); - final Collection cs; - if (classifiers.ordered) { - cs = classifiers.classifiers; - } else { - cs = classifiers.classifiers.stream().sorted().collect(Collectors.toList()); + Classifiers classifiers = classifiers(request); + + if (classifiers == null) { + return null; } // classifiers are split according to their natural order (based on their groupPosition & position fields) @@ -272,7 +273,8 @@ public final String classify(ClassificationRequest request) { // at least one classification result Classifier firstInSplit = null; Classifier.Result result = null; - for (var c: cs) { + Classifier c; + while ((c = classifiers.next()) != null) { // detect group change if (firstInSplit == null) { firstInSplit = c; @@ -300,6 +302,9 @@ public final String classify(ClassificationRequest request) { protected abstract boolean isEmpty(); + /** + * @return matching classifiers or {@code null} + */ protected abstract Classifiers classifiers(ClassificationRequest request); public static abstract class Node extends Tree { @@ -336,7 +341,7 @@ public Classifiers classifiers(ClassificationRequest request) { case GT: return gt.classifiers(request); } - return Classifiers.EMPTY; + return null; } @Override @@ -372,11 +377,11 @@ public Classifiers classifiers(ClassificationRequest request) { // -> there are 5 aspects (src/dst port/addr and protocol) switch (threshold.compare(request)) { case LT: - return lt.classifiers(request).add(na.classifiers(request)); + return merge(lt.classifiers(request), na.classifiers(request)); case EQ: - return eq.classifiers(request).add(na.classifiers(request)); + return merge(eq.classifiers(request), na.classifiers(request)); case GT: - return gt.classifiers(request).add(na.classifiers(request)); + return merge(gt.classifiers(request), na.classifiers(request)); case NA: // if a request has no value corresponding to the threshold of this node then only the rules // that did not include that value are considered @@ -384,7 +389,7 @@ public Classifiers classifiers(ClassificationRequest request) { // a request that has no corresponding value could match rules that constrain that value return na.classifiers(request); default: - return Classifiers.EMPTY; // unexpected + return null; // unexpected } } @@ -434,7 +439,7 @@ public Empty() { @Override public Classifiers classifiers(ClassificationRequest request) { - return Classifiers.EMPTY; + return null; } @Override @@ -454,11 +459,11 @@ public String toString() { } public final static class WithClassifiers extends Leaf { - public final Classifiers classifiers; + public final List classifiers; public WithClassifiers(List classifiers) { super(Info.forLeaf(classifiers.size())); - this.classifiers = new Classifiers(true, classifiers); + this.classifiers = classifiers; } public WithClassifiers(Classifier classifier) { @@ -467,12 +472,12 @@ public WithClassifiers(Classifier classifier) { @Override public Classifiers classifiers(ClassificationRequest request) { - return classifiers; + return new ListClassifiers(classifiers); } @VisibleForTesting public Collection classifiers() { - return classifiers.classifiers; + return classifiers; } @Override @@ -495,30 +500,83 @@ public String toString() { } - private static class Classifiers { + /** + * Allows to access classifiers sorted by their priorities. + */ + private interface Classifiers { - private static Classifiers EMPTY = new Classifiers(true, Collections.emptyList()); + /** + * @return the next classifier or {@code null} if no more classifiers are available + */ + Classifier next(); - // indicates if the classifiers collection is ordered - // -> allows to avoid unnecessary sorting - private final boolean ordered; - private final Collection classifiers; + } - private Classifiers(boolean ordered, Collection classifiers) { - this.ordered = ordered; - this.classifiers = classifiers; + public static Classifiers merge(Classifiers i1, Classifiers i2) { + if (i1 != null && i2 != null) { + return new MergeSortedClassifiers(i1, i2); + } else if (i1 != null) { + return i1; + } else { + return i2; } - public Classifiers add(Classifiers other) { - if (classifiers.isEmpty()) { - return other; - } else if (other.classifiers.isEmpty()) { - return this; + } + + private static class ListClassifiers implements Classifiers { + private final List list; + private int pos = 0; + + public ListClassifiers(List list) { + this.list = list; + } + + @Override + public Classifier next() { + return pos < list.size() ? list.get(pos++) : null; + } + } + + private static class MergeSortedClassifiers implements Classifiers { + private Classifiers i1, i2; + private Classifier n1, n2; + + public MergeSortedClassifiers(Classifiers i1, Classifiers i2) { + this.i1 = i1; + this.i2 = i2; + } + + public Classifier next() { + if (n1 == null && i1 != null) { + n1 = i1.next(); + if (n1 == null) { + i1 = null; + } + } + if (n2 == null && i2 != null) { + n2 = i2.next(); + if (n2 == null) { + i2 = null; + } + } + Classifier res; + if (n1 != null && n2 != null) { + if (n1.compareTo(n2) <= 0) { + res = n1; + n1 = null; + } else { + res = n2; + n2 = null; + } + } else if (n1 != null) { + res = n1; + n1 = null; + } else if (n2 != null) { + res = n2; + n2 = null; } else { - var c = new ArrayList(classifiers.size() + other.classifiers.size()); - c.addAll(this.classifiers); - c.addAll(other.classifiers); - return new Classifiers(false, c); + res = null; } + return res; } } diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/matcher/IpMatcher.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/matcher/IpMatcher.java index 54fd7385cef2..fdbd44551858 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/matcher/IpMatcher.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/matcher/IpMatcher.java @@ -31,6 +31,7 @@ import java.util.Objects; import org.opennms.netmgt.flows.classification.ClassificationRequest; +import org.opennms.netmgt.flows.classification.IpAddr; import org.opennms.netmgt.flows.classification.internal.value.IpValue; import com.google.common.base.Function; @@ -38,18 +39,18 @@ class IpMatcher implements Matcher { // Extracts the value from the ClassificationRequest. Allows to easily distinguish between srcAddress and dstAddress - private final Function valueExtractor; + private final Function valueExtractor; private final IpValue value; - protected IpMatcher(IpValue input, Function valueExtractor) { + protected IpMatcher(IpValue input, Function valueExtractor) { this.value = input; this.valueExtractor = Objects.requireNonNull(valueExtractor); } @Override public boolean matches(ClassificationRequest request) { - final String currentAddressValue = valueExtractor.apply(request); - final boolean matches = value.isInRange(currentAddressValue); + var addr = valueExtractor.apply(request); + final boolean matches = value.isInRange(addr); return matches; } } diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/value/IpRange.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/value/IpRange.java new file mode 100644 index 000000000000..ae7b973910c6 --- /dev/null +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/value/IpRange.java @@ -0,0 +1,114 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.flows.classification.internal.value; + +import java.util.Iterator; +import java.util.NoSuchElementException; +import java.util.Objects; + +import org.opennms.netmgt.flows.classification.IpAddr; + +public class IpRange implements Iterable { + + public static IpRange of(String addr) { + final var a = IpAddr.of(addr); + return new IpRange(a, a); + } + + public static IpRange of(String begin, String end) { + return new IpRange(IpAddr.of(begin), IpAddr.of(end)); + } + + public final IpAddr begin, end; + + public IpRange(IpAddr begin, IpAddr end) { + if (begin.getClass() != end.getClass()) { + throw new IllegalArgumentException("IpRange can not mix IPv4 and IPv6 addresses - begin: " + begin.getClass().getSimpleName() + "; end: " + end.getClass().getSimpleName()); + } + if (begin.compareTo(end) > 0) { + throw new IllegalArgumentException(String.format("beginning of range (%s) must come before end of range (%s)", begin, end)); + } + this.begin = begin; + this.end = end; + } + + public boolean contains(IpAddr addr) { + return begin.compareTo(addr) <= 0 && addr.compareTo(end) <= 0; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IpRange ipAddrs = (IpRange) o; + return begin.equals(ipAddrs.begin) && end.equals(ipAddrs.end); + } + + @Override + public int hashCode() { + return Objects.hash(begin, end); + } + + @Override + public String toString() { + final StringBuilder buf = new StringBuilder(); + buf.append('[').append(begin).append(',').append(end).append(']'); + return buf.toString(); + } + + @Override + public Iterator iterator() { + return new Iterator() { + private IpAddr next = begin; + + @Override + public boolean hasNext() { + return next != null; + } + + @Override + public IpAddr next() { + if (next == null) { + throw new NoSuchElementException(); + } + var n = next; + if (next.equals(end)) { + next = null; + } else { + next = next.inc(); + } + return n; + } + }; + } +} diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/value/IpValue.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/value/IpValue.java index a8ad22c24a36..b20b89302e9a 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/value/IpValue.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/value/IpValue.java @@ -33,14 +33,13 @@ import java.util.List; import java.util.Objects; -import org.opennms.core.network.IPAddress; -import org.opennms.core.network.IPAddressRange; import org.opennms.core.utils.InetAddressUtils; +import org.opennms.netmgt.flows.classification.IpAddr; import org.opennms.netmgt.flows.classification.internal.decision.Bound; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class IpValue implements RuleValue { +public class IpValue implements RuleValue { public static IpValue of(final String input) { return of(new StringValue(input)); @@ -52,7 +51,7 @@ public static IpValue of(final StringValue input) { throw new IllegalArgumentException("input may not be null or empty"); } final List actualValues = input.splitBy(","); - List ranges = new ArrayList<>(); + List ranges = new ArrayList<>(); for (StringValue eachValue : actualValues) { // In case it is ranged, verify the range if (eachValue.isRanged()) { @@ -67,12 +66,12 @@ public static IpValue of(final StringValue input) { throw new IllegalArgumentException("Ranged value may not contain a CIDR expression"); } } - ranges.add(new IPAddressRange(rangedValues.get(0).getValue(), rangedValues.get(1).getValue())); + ranges.add(IpRange.of(rangedValues.get(0).getValue(), rangedValues.get(1).getValue())); } else if (eachValue.getValue().contains("/")) { // Value may be a CIDR address - build range for it ranges.add(parseCIDR(eachValue.getValue())); } else { - ranges.add(new IPAddressRange(eachValue.getValue())); + ranges.add(IpRange.of(eachValue.getValue())); } } return new IpValue(ranges); @@ -80,21 +79,26 @@ public static IpValue of(final StringValue input) { private static final Logger LOG = LoggerFactory.getLogger(IpValue.class); - private final List ranges; + private final List ranges; - public IpValue(List ranges) { + public IpValue(List ranges) { this.ranges = ranges; } - public boolean isInRange(final String address) { - return ranges.stream().anyMatch(r -> r.contains(address)); + public boolean isInRange(final IpAddr address) { + for (var r: ranges) { + if (r.contains(address)) { + return true; + } + } + return false; } - public List getIpAddressRanges() { + public List getIpAddressRanges() { return ranges; } - public static IPAddressRange parseCIDR(final String cidr) { + public static IpRange parseCIDR(final String cidr) { final int slashIndex = cidr.indexOf('/'); if (slashIndex == -1) { throw new IllegalArgumentException("Value is not a CIDR expression"); @@ -123,15 +127,15 @@ public static IPAddressRange parseCIDR(final String cidr) { } } - return new IPAddressRange(InetAddressUtils.toIpAddrString(lower), + return IpRange.of(InetAddressUtils.toIpAddrString(lower), InetAddressUtils.toIpAddrString(upper)); } @Override - public IpValue shrink(Bound bound) { - List l = new ArrayList<>(ranges.size()); + public IpValue shrink(Bound bound) { + List l = new ArrayList<>(ranges.size()); for (var r: ranges) { - if (bound.overlaps(r.getBegin(), r.getEnd())) { + if (bound.overlaps(r.begin, r.end)) { l.add(r); } } diff --git a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/value/PortValue.java b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/value/PortValue.java index 8e7ea90ffe67..d511653df6d1 100644 --- a/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/value/PortValue.java +++ b/features/flows/classification/engine/impl/src/main/java/org/opennms/netmgt/flows/classification/internal/value/PortValue.java @@ -29,7 +29,6 @@ package org.opennms.netmgt.flows.classification.internal.value; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import org.opennms.core.network.IPPortRange; @@ -62,12 +61,17 @@ public PortValue(List ranges) { this.ranges = ranges; } - public Collection getPortRanges() { + public List getPortRanges() { return ranges; } public boolean matches(int port) { - return ranges.stream().anyMatch(r -> r.contains(port)); + for (var r: ranges) { + if (r.contains(port)) { + return true; + } + } + return false; } @Override diff --git a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/AsyncReloadClassificationEngineTest.java b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/AsyncReloadClassificationEngineTest.java new file mode 100644 index 000000000000..520e16f94800 --- /dev/null +++ b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/AsyncReloadClassificationEngineTest.java @@ -0,0 +1,110 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2018-2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.flows.classification.internal; + +import static org.awaitility.Awaitility.await; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; +import org.opennms.netmgt.flows.classification.ClassificationEngine; +import org.opennms.netmgt.flows.classification.ClassificationRequest; +import org.opennms.netmgt.flows.classification.persistence.api.Rule; + +public class AsyncReloadClassificationEngineTest { + + @Test + public void reloadsAreInterrupted() { + + var started = new AtomicInteger(); + var interrupted = new AtomicInteger(); + var sleep = new AtomicBoolean(true); + var completed = new AtomicBoolean(false); + + ClassificationEngine ce = new ClassificationEngine() { + @Override + public String classify(ClassificationRequest classificationRequest) { + return null; + } + + @Override + public List getInvalidRules() { + return null; + } + + @Override + public void reload() throws InterruptedException { + started.incrementAndGet(); + try { + while (sleep.get()) Thread.sleep(1000); + completed.set(true); + } catch (InterruptedException e) { + interrupted.incrementAndGet(); + throw e; + } + } + }; + + var x = new AsyncReloadingClassificationEngine(ce); + + // first reload is triggered right away + await().untilAsserted(() -> assertThat(started.get(), is(1))); + await().untilAsserted(() -> assertThat(interrupted.get(), is(0))); + + x.reload(); + await().untilAsserted(() -> assertThat(started.get(), is(2))); + // if a load process is under way then a reload triggers an interruption + await().untilAsserted(() -> assertThat(interrupted.get(), is(1))); + + x.reload(); + await().untilAsserted(() -> assertThat(started.get(), is(3))); + await().untilAsserted(() -> assertThat(interrupted.get(), is(2))); + x.reload(); + await().untilAsserted(() -> assertThat(started.get(), is(4))); + await().untilAsserted(() -> assertThat(interrupted.get(), is(3))); + + sleep.set(false); + await().untilAsserted(() -> assertThat(completed.get(), is(true))); + + sleep.set(true); + + x.reload(); + await().untilAsserted(() -> assertThat(started.get(), is(5))); + await().untilAsserted(() -> assertThat(interrupted.get(), is(3))); + x.reload(); + await().untilAsserted(() -> assertThat(started.get(), is(6))); + await().untilAsserted(() -> assertThat(interrupted.get(), is(4))); + sleep.set(false); + + } +} diff --git a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/ClassificationEngineBenchmark.java b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/ClassificationEngineBenchmark.java index 50b6aad50ad8..a65ea18358a2 100644 --- a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/ClassificationEngineBenchmark.java +++ b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/ClassificationEngineBenchmark.java @@ -97,7 +97,7 @@ public static class BState { private List classificationRequests; @Setup - public void setup() { + public void setup() throws InterruptedException { var rules = getRules(ruleSet); classificationEngine = new DefaultClassificationEngine(() -> rules, createNiceMock(FilterService.class)); classificationRequests = RandomClassificationEngineTest.streamOfclassificationRequests(rules, 123456l).skip(index * BATCH_SIZE).limit(BATCH_SIZE).collect(Collectors.toList()); diff --git a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationEngineIT.java b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationEngineIT.java index 3a375e41bd1a..1bb42619b557 100644 --- a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationEngineIT.java +++ b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationEngineIT.java @@ -122,7 +122,7 @@ public void tearDown() { } @Test - public void verifyRuleFilter() { + public void verifyRuleFilter() throws InterruptedException { final ClassificationEngine classificationEngine = new DefaultClassificationEngine(() -> ruleDao.findAllEnabledRules(), new DefaultFilterService(filterDao)); // Create request, that matches rule1 diff --git a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationEngineTest.java b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationEngineTest.java index c955c9752bc3..4b9d46621667 100644 --- a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationEngineTest.java +++ b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationEngineTest.java @@ -42,6 +42,9 @@ import org.opennms.netmgt.flows.classification.ClassificationRequest; import org.opennms.netmgt.flows.classification.ClassificationRequestBuilder; import org.opennms.netmgt.flows.classification.FilterService; +import org.opennms.netmgt.flows.classification.IpAddr; +import org.opennms.netmgt.flows.classification.internal.value.IpRange; +import org.opennms.netmgt.flows.classification.persistence.api.Protocol; import org.opennms.netmgt.flows.classification.persistence.api.ProtocolType; import org.opennms.netmgt.flows.classification.persistence.api.Protocols; import org.opennms.netmgt.flows.classification.persistence.api.Rule; @@ -51,8 +54,12 @@ public class DefaultClassificationEngineTest { + private static ClassificationRequest classificationRequest(String location, int srcPort, String srcAddress, int dstPort, String dstAddress, Protocol protocol) { + return new ClassificationRequest(location, srcPort, IpAddr.of(srcAddress), dstPort, IpAddr.of(dstAddress), protocol); + } + @Test - public void verifyRuleEngineBasic() { + public void verifyRuleEngineBasic() throws InterruptedException { DefaultClassificationEngine engine = new DefaultClassificationEngine(() -> Lists.newArrayList( new RuleBuilder().withName("rule1").withPosition(1).withSrcPort(80).build(), @@ -68,7 +75,7 @@ public void verifyRuleEngineBasic() { } @Test - public void verifyRuleEngineWithOmnidirectionals() { + public void verifyRuleEngineWithOmnidirectionals() throws InterruptedException { DefaultClassificationEngine engine = new DefaultClassificationEngine(() -> Lists.newArrayList( new RuleBuilder().withName("rule1").withSrcPort(80).withOmnidirectional(true).build(), @@ -95,7 +102,7 @@ public void verifyRuleEngineWithOmnidirectionals() { } @Test - public void verifyRuleEngineExtended() { + public void verifyRuleEngineExtended() throws InterruptedException { // Define Rule set DefaultClassificationEngine engine = new DefaultClassificationEngine(() -> Lists.newArrayList( new RuleBuilder().withName("SSH").withDstPort("22").withPosition(1).build(), @@ -109,12 +116,12 @@ public void verifyRuleEngineExtended() { ); // Verify concrete mappings - assertEquals("SSH", engine.classify(new ClassificationRequest("Default", 0, null, 22, "127.0.0.1", ProtocolType.TCP))); - assertEquals("HTTP_CUSTOM", engine.classify(new ClassificationRequest("Default", 0, null, 80, "192.168.0.1", ProtocolType.TCP))); - assertEquals("HTTP", engine.classify(new ClassificationRequest("Default", 0, null, 80, "192.168.0.2", ProtocolType.TCP))); - assertEquals(null, engine.classify(new ClassificationRequest("Default", 0, null, 5000, "localhost", ProtocolType.UDP))); - assertEquals(null, engine.classify(new ClassificationRequest("Default", 0, null, 5000, "localhost", ProtocolType.TCP))); - assertEquals("OpenNMS", engine.classify(new ClassificationRequest("Default", 0, null, 8980, "127.0.0.1", ProtocolType.TCP))); + assertEquals("SSH", engine.classify(classificationRequest("Default", 0, null, 22, "127.0.0.1", ProtocolType.TCP))); + assertEquals("HTTP_CUSTOM", engine.classify(classificationRequest("Default", 0, null, 80, "192.168.0.1", ProtocolType.TCP))); + assertEquals("HTTP", engine.classify(classificationRequest("Default", 0, null, 80, "192.168.0.2", ProtocolType.TCP))); + assertEquals(null, engine.classify(classificationRequest("Default", 0, null, 5000, "localhost", ProtocolType.UDP))); + assertEquals(null, engine.classify(classificationRequest("Default", 0, null, 5000, "localhost", ProtocolType.TCP))); + assertEquals("OpenNMS", engine.classify(classificationRequest("Default", 0, null, 8980, "127.0.0.1", ProtocolType.TCP))); assertEquals("OpenNMS Monitor", engine.classify( new ClassificationRequestBuilder() .withLocation("Default") @@ -147,9 +154,9 @@ public void verifyRuleEngineExtended() { .withProtocol(ProtocolType.TCP).build())); // Verify IP Range - final IPAddressRange ipAddresses = new IPAddressRange("192.168.1.0", "192.168.1.255"); - for (IPAddress ipAddress : ipAddresses) { - final ClassificationRequest classificationRequest = new ClassificationRequest("Default", 0, null, 8080, ipAddress.toString(), ProtocolType.TCP); + var ipAddresses = IpRange.of("192.168.1.0", "192.168.1.255"); + for (var ipAddress : ipAddresses) { + final ClassificationRequest classificationRequest = new ClassificationRequest("Default", 0, null, 8080, ipAddress, ProtocolType.TCP); assertEquals("DUMMY", engine.classify(classificationRequest)); // Populate src address and port. Result must be the same @@ -159,13 +166,13 @@ public void verifyRuleEngineExtended() { } // Verify CIDR expression - for (IPAddress ipAddress : new IPAddressRange("192.168.0.0", "192.168.0.255")) { - final ClassificationRequest classificationRequest = new ClassificationRequest("Default", 0, null, 8080, ipAddress.toString(), ProtocolType.TCP); + for (var ipAddress : IpRange.of("192.168.0.0", "192.168.0.255")) { + final ClassificationRequest classificationRequest = new ClassificationRequest("Default", 0, null, 8080, ipAddress, ProtocolType.TCP); assertEquals("DUMMY", engine.classify(classificationRequest)); } // Verify Port Range - IntStream.range(7000, 8000).forEach(i -> assertEquals("RANGE-TEST", engine.classify(new ClassificationRequest("Default", 0, null, i, "192.168.0.2", ProtocolType.TCP)))); + IntStream.range(7000, 8000).forEach(i -> assertEquals("RANGE-TEST", engine.classify(classificationRequest("Default", 0, null, i, "192.168.0.2", ProtocolType.TCP)))); // Verify Port Range with Src fields populated. Result must be the same IntStream.range(7000, 8000).forEach(src -> { @@ -181,14 +188,14 @@ public void verifyRuleEngineExtended() { } @Test - public void verifyAddressRuleWins() { + public void verifyAddressRuleWins() throws InterruptedException { final ClassificationEngine engine = new DefaultClassificationEngine(() -> Lists.newArrayList( new RuleBuilder().withName("HTTP").withDstPort(80).withPosition(1).build(), new RuleBuilder().withName("XXX2").withSrcAddress("192.168.2.1").withSrcPort(4789).build(), new RuleBuilder().withName("XXX").withDstAddress("192.168.2.1").build() ), FilterService.NOOP); - final ClassificationRequest classificationRequest = new ClassificationRequest("Default", 0, null, 80, "192.168.2.1", ProtocolType.TCP); + final ClassificationRequest classificationRequest = classificationRequest("Default", 0, null, 80, "192.168.2.1", ProtocolType.TCP); assertEquals("XXX", engine.classify(classificationRequest)); assertEquals("XXX2", engine.classify(new ClassificationRequestBuilder() .withLocation("Default") @@ -199,27 +206,27 @@ public void verifyAddressRuleWins() { } @Test - public void verifyAllPortsToEnsureEngineIsProperlyInitialized() { + public void verifyAllPortsToEnsureEngineIsProperlyInitialized() throws InterruptedException { final ClassificationEngine classificationEngine = new DefaultClassificationEngine(() -> new ArrayList<>(), FilterService.NOOP); for (int i=Rule.MIN_PORT_VALUE; i rules = Lists.newArrayList(); for (int i=0; i<100; i++) { final Rule rule = new RuleBuilder().withName("rule1").withPosition(i+1).withProtocol("UDP").withDstAddress("192.168.0." + i).build(); rules.add(rule); } final DefaultClassificationEngine engine = new DefaultClassificationEngine(() -> rules, FilterService.NOOP); - engine.classify(new ClassificationRequest("localhost", 1234, "127.0.0.1", 80, "192.168.0.1", Protocols.getProtocol("UDP"))); + engine.classify(classificationRequest("localhost", 1234, "127.0.0.1", 80, "192.168.0.1", Protocols.getProtocol("UDP"))); } @Test(timeout=5000) - public void verifyInitializesQuickly() { + public void verifyInitializesQuickly() throws InterruptedException { new DefaultClassificationEngine(() -> Lists.newArrayList(new Rule("Test", "0-10000")), FilterService.NOOP); } } diff --git a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationServiceIT.java b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationServiceIT.java index 89897b33fa02..6e5a76e9fda1 100644 --- a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationServiceIT.java +++ b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/DefaultClassificationServiceIT.java @@ -91,7 +91,7 @@ public class DefaultClassificationServiceIT { private Group userGroupCsv; // the user group that is not attached to hibernate @Before - public void setUp() { + public void setUp() throws InterruptedException { FilterService filterService = new DefaultFilterService(filterDao); classificationService = new DefaultClassificationService( ruleDao, diff --git a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/ExampleRulesTest.java b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/ExampleRulesTest.java index 0bf073f35dd1..30b9f1725281 100644 --- a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/ExampleRulesTest.java +++ b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/ExampleRulesTest.java @@ -43,11 +43,11 @@ public class ExampleRulesTest { @Test - public void exampleRuleSet() { + public void exampleRuleSet() throws InterruptedException { testRuleSet("/example-rules.csv"); } - public void testRuleSet(String resource) { + public void testRuleSet(String resource) throws InterruptedException { var rules = ClassificationEngineBenchmark.getRules(resource); var classificationEngine = new DefaultClassificationEngine(() -> rules, createNiceMock(FilterService.class)); diff --git a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/RandomClassificationEngineTest.java b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/RandomClassificationEngineTest.java index 77c2cc30a935..b27aad785423 100644 --- a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/RandomClassificationEngineTest.java +++ b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/RandomClassificationEngineTest.java @@ -54,6 +54,7 @@ import org.opennms.netmgt.flows.classification.internal.matcher.ProtocolMatcher; import org.opennms.netmgt.flows.classification.internal.matcher.SrcAddressMatcher; import org.opennms.netmgt.flows.classification.internal.matcher.SrcPortMatcher; +import org.opennms.netmgt.flows.classification.IpAddr; import org.opennms.netmgt.flows.classification.internal.value.IpValue; import org.opennms.netmgt.flows.classification.internal.value.PortValue; import org.opennms.netmgt.flows.classification.internal.value.StringValue; @@ -117,7 +118,7 @@ private static String string(IPAddressRange r) { @Property public boolean test( @ForAll("rulesAndRequests") Tuple.Tuple2, List> rulesAndRequests - ) { + ) throws InterruptedException { LOG.debug("construct decision tree"); if (LOG.isDebugEnabled()) { rulesAndRequests.get1().forEach(r -> { @@ -208,7 +209,7 @@ public static Arbitrary> rules(int minRules, int maxRules, int maxPro public static Arbitrary classificationRequest(Collection rules) { var protocols = new HashSet(); var ports = new HashSet(); - var addresses = new HashSet(); + var addresses = new HashSet(); for (var r : rules) { new StringValue(r.getProtocol()) @@ -232,29 +233,29 @@ public static Arbitrary classificationRequest(Collection< IpValue.of(r.getSrcAddress()) .getIpAddressRanges() .stream() - .flatMap(range -> Stream.of(range.getBegin(), range.getEnd())) + .flatMap(range -> Stream.of(range.begin, range.end)) .forEach(addresses::add); } if (StringUtils.isNoneBlank(r.getDstAddress())) { IpValue.of(r.getDstAddress()) .getIpAddressRanges() .stream() - .flatMap(range -> Stream.of(range.getBegin(), range.getEnd())) + .flatMap(range -> Stream.of(range.begin, range.end)) .forEach(addresses::add); } } return classificationRequest(protocols, ports, addresses); } - private static Arbitrary classificationRequest(Set protocols, Set ports, Set addresses) { + private static Arbitrary classificationRequest(Set protocols, Set ports, Set addresses) { final var protocolsArray = protocols.toArray(new Integer[0]); final var portsArray = ports.toArray(new Integer[0]); - final var addressesArray = addresses.toArray(new IPAddress[0]); + final var addressesArray = addresses.toArray(new IpAddr[0]); // in practice classification request will always have their protocol, src/dst port/addr being set // -> use zero as a default in case that a set is empty final var protocolsArb = protocolsArray.length == 0 ? Arbitraries.just(0) : Arbitraries.of(protocolsArray); final var portsArb = portsArray.length == 0 ? Arbitraries.just(0) : Arbitraries.of(portsArray); - final var addressesArb = addressesArray.length == 0 ? Arbitraries.just(new IPAddress("0.0.0.0")) : Arbitraries.of(addressesArray); + final var addressesArb = addressesArray.length == 0 ? Arbitraries.just(IpAddr.of("0.0.0.0")) : Arbitraries.of(addressesArray); return Combinators.combine( protocolsArb, portsArb, @@ -262,7 +263,7 @@ private static Arbitrary classificationRequest(Set - new ClassificationRequest("default", srcPort, srcAddr.toString(), dstPort, dstAddr.toString(), Protocols.getProtocol(protocol)) + new ClassificationRequest("default", srcPort, srcAddr, dstPort, dstAddr, Protocols.getProtocol(protocol)) ); } diff --git a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/value/IpValueTest.java b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/value/IpValueTest.java index 95492f8e5839..71f57459510e 100644 --- a/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/value/IpValueTest.java +++ b/features/flows/classification/engine/impl/src/test/java/org/opennms/netmgt/flows/classification/internal/value/IpValueTest.java @@ -32,85 +32,88 @@ import static org.junit.Assert.assertThat; import org.junit.Test; -import org.opennms.core.network.IPAddress; -import org.opennms.core.network.IPAddressRange; +import org.opennms.netmgt.flows.classification.IpAddr; public class IpValueTest { + private static boolean isInRange(IpValue value, String addr) { + return value.isInRange(IpAddr.of(addr)); + } + @Test public void verifyRangedValues() { final IpValue ipValue = IpValue.of("10.1.1.1-10.1.1.100"); - final IPAddressRange range = new IPAddressRange("10.1.1.1", "10.1.1.100"); - for (IPAddress address : range) { - assertThat(ipValue.isInRange(address.toUserString()), is(true)); + final IpRange range = IpRange.of("10.1.1.1", "10.1.1.100"); + for (var address : range) { + assertThat(ipValue.isInRange(address), is(true)); } } @Test public void verifySingleValue() { final IpValue ipValue = IpValue.of("192.168.0.1"); - assertThat(ipValue.isInRange("192.168.0.0"), is(false)); - assertThat(ipValue.isInRange("192.168.0.1"), is(true)); - assertThat(ipValue.isInRange("192.168.0.2"), is(false)); + assertThat(isInRange(ipValue, "192.168.0.0"), is(false)); + assertThat(isInRange(ipValue, "192.168.0.1"), is(true)); + assertThat(isInRange(ipValue, "192.168.0.2"), is(false)); } @Test public void verifyMultiValues() { final IpValue ipValue = IpValue.of("192.168.0.1, 192.168.0.2, 192.168.0.10"); - assertThat(ipValue.isInRange("192.168.0.0"), is(false)); - assertThat(ipValue.isInRange("192.168.0.1"), is(true)); - assertThat(ipValue.isInRange("192.168.0.2"), is(true)); - assertThat(ipValue.isInRange("192.168.0.3"), is(false)); - assertThat(ipValue.isInRange("192.168.0.4"), is(false)); - assertThat(ipValue.isInRange("192.168.0.5"), is(false)); - assertThat(ipValue.isInRange("192.168.0.6"), is(false)); - assertThat(ipValue.isInRange("192.168.0.7"), is(false)); - assertThat(ipValue.isInRange("192.168.0.8"), is(false)); - assertThat(ipValue.isInRange("192.168.0.9"), is(false)); - assertThat(ipValue.isInRange("192.168.0.10"), is(true)); + assertThat(isInRange(ipValue, "192.168.0.0"), is(false)); + assertThat(isInRange(ipValue, "192.168.0.1"), is(true)); + assertThat(isInRange(ipValue, "192.168.0.2"), is(true)); + assertThat(isInRange(ipValue, "192.168.0.3"), is(false)); + assertThat(isInRange(ipValue, "192.168.0.4"), is(false)); + assertThat(isInRange(ipValue, "192.168.0.5"), is(false)); + assertThat(isInRange(ipValue, "192.168.0.6"), is(false)); + assertThat(isInRange(ipValue, "192.168.0.7"), is(false)); + assertThat(isInRange(ipValue, "192.168.0.8"), is(false)); + assertThat(isInRange(ipValue, "192.168.0.9"), is(false)); + assertThat(isInRange(ipValue, "192.168.0.10"), is(true)); } @Test public void verifyParseCIDR() { - assertThat(IpValue.parseCIDR("192.168.23.0/24"), is(new IPAddressRange("192.168.23.0", "192.168.23.255"))); - assertThat(IpValue.parseCIDR("192.168.42.23/22"), is(new IPAddressRange("192.168.40.0", "192.168.43.255"))); + assertThat(IpValue.parseCIDR("192.168.23.0/24"), is(IpRange.of("192.168.23.0", "192.168.23.255"))); + assertThat(IpValue.parseCIDR("192.168.42.23/22"), is(IpRange.of("192.168.40.0", "192.168.43.255"))); - assertThat(IpValue.parseCIDR("192.168.23.42/31"), is(new IPAddressRange("192.168.23.42", "192.168.23.43"))); - assertThat(IpValue.parseCIDR("192.168.23.42/32"), is(new IPAddressRange("192.168.23.42", "192.168.23.42"))); + assertThat(IpValue.parseCIDR("192.168.23.42/31"), is(IpRange.of("192.168.23.42", "192.168.23.43"))); + assertThat(IpValue.parseCIDR("192.168.23.42/32"), is(IpRange.of("192.168.23.42", "192.168.23.42"))); - assertThat(IpValue.parseCIDR("fe80::243d:e3ff:fe31:7660/64"), is(new IPAddressRange("fe80::", "fe80::ffff:ffff:ffff:ffff"))); + assertThat(IpValue.parseCIDR("fe80::243d:e3ff:fe31:7660/64"), is(IpRange.of("fe80::", "fe80::ffff:ffff:ffff:ffff"))); } @Test public void verifyCIDRValue() { final IpValue ipValue = IpValue.of("10.0.0.5,192.168.0.0/24"); - for (IPAddress ipAddress : new IPAddressRange("192.168.0.0", "192.168.0.255")) { - assertThat(ipValue.isInRange(ipAddress.toUserString()), is(true)); + for (var ipAddress : IpRange.of("192.168.0.0", "192.168.0.255")) { + assertThat(ipValue.isInRange(ipAddress), is(true)); } - assertThat(ipValue.isInRange("192.168.1.0"), is(false)); - assertThat(ipValue.isInRange("192.168.2.0"), is(false)); - - assertThat(ipValue.isInRange("10.0.0.0"), is(false)); - assertThat(ipValue.isInRange("10.0.0.1"), is(false)); - assertThat(ipValue.isInRange("10.0.0.2"), is(false)); - assertThat(ipValue.isInRange("10.0.0.3"), is(false)); - assertThat(ipValue.isInRange("10.0.0.4"), is(false)); - assertThat(ipValue.isInRange("10.0.0.5"), is(true)); - assertThat(ipValue.isInRange("10.0.0.7"), is(false)); - assertThat(ipValue.isInRange("10.0.0.8"), is(false)); - assertThat(ipValue.isInRange("10.0.0.9"), is(false)); - assertThat(ipValue.isInRange("10.0.0.10"), is(false)); + assertThat(isInRange(ipValue, "192.168.1.0"), is(false)); + assertThat(isInRange(ipValue, "192.168.2.0"), is(false)); + + assertThat(isInRange(ipValue, "10.0.0.0"), is(false)); + assertThat(isInRange(ipValue, "10.0.0.1"), is(false)); + assertThat(isInRange(ipValue, "10.0.0.2"), is(false)); + assertThat(isInRange(ipValue, "10.0.0.3"), is(false)); + assertThat(isInRange(ipValue, "10.0.0.4"), is(false)); + assertThat(isInRange(ipValue, "10.0.0.5"), is(true)); + assertThat(isInRange(ipValue, "10.0.0.7"), is(false)); + assertThat(isInRange(ipValue, "10.0.0.8"), is(false)); + assertThat(isInRange(ipValue, "10.0.0.9"), is(false)); + assertThat(isInRange(ipValue, "10.0.0.10"), is(false)); } @Test public void verifyCIDRValue_2() { final IpValue ipValue = IpValue.of("192.168.0.17/16"); - for (IPAddress ipAddress : new IPAddressRange("192.168.0.0", "192.168.255.255")) { - assertThat(ipValue.isInRange(ipAddress.toUserString()), is(true)); + for (var ipAddress : IpRange.of("192.168.0.0", "192.168.255.255")) { + assertThat(ipValue.isInRange(ipAddress), is(true)); } - assertThat(ipValue.isInRange("192.169.0.0"), is(false)); - assertThat(ipValue.isInRange("192.0.0.0"), is(false)); + assertThat(isInRange(ipValue, "192.169.0.0"), is(false)); + assertThat(isInRange(ipValue, "192.0.0.0"), is(false)); } @Test(expected = IllegalArgumentException.class) @@ -141,34 +144,34 @@ public void verifyInvalidIpAddressRangeEndIsBefore() { @Test public void verifySingleValueIpV6() { final IpValue value = IpValue.of("2001:0DB8:0:CD30::1"); - assertThat(value.isInRange("2001:0DB8:0:CD30::1"), is(true)); - assertThat(value.isInRange("2001:0DB8:0:CD30::2"), is(false)); - assertThat(value.isInRange("192.168.0.1"), is(false)); // incompatible, should be false + assertThat(value.isInRange(IpAddr.of("2001:0DB8:0:CD30::1")), is(true)); + assertThat(value.isInRange(IpAddr.of("2001:0DB8:0:CD30::2")), is(false)); + assertThat(value.isInRange(IpAddr.of("192.168.0.1")), is(false)); // incompatible, should be false } @Test public void verifyRangedValueIpV6() { final IpValue value = IpValue.of("2001:0DB8:0:CD30::1-2001:0DB8:0:CD30::FFFF"); - for (IPAddress address : new IPAddressRange("2001:0DB8:0:CD30::1", "2001:0DB8:0:CD30::FFFF")) { - assertThat(value.isInRange(address.toUserString()), is(true)); + for (var address : IpRange.of("2001:0DB8:0:CD30::1", "2001:0DB8:0:CD30::FFFF")) { + assertThat(value.isInRange(address), is(true)); } } @Test public void verifyCIDRValueIpV6() { final IpValue value = IpValue.of("2001:0DB8:0:CD30::1/120"); - for (IPAddress ipAddress : new IPAddressRange("2001:0DB8:0:CD30::0", "2001:0DB8:0:CD30::FF")) { - assertThat(value.isInRange(ipAddress.toUserString()), is(true)); + for (var ipAddress : IpRange.of("2001:0DB8:0:CD30::0", "2001:0DB8:0:CD30::FF")) { + assertThat(value.isInRange(ipAddress), is(true)); } - assertThat(value.isInRange("192.168.0.1"), is(false)); // incompatible, should be false + assertThat(value.isInRange(IpAddr.of("192.168.0.1")), is(false)); // incompatible, should be false } @Test public void verifyCIDRValueIpV6_2() { final IpValue value = IpValue.of("2001:0DB8:0:CD30::1/127"); - for (IPAddress ipAddress : new IPAddressRange("2001:0DB8:0:CD30::0", "2001:0DB8:0:CD30::1")) { - assertThat(value.isInRange(ipAddress.toUserString()), is(true)); + for (var ipAddress : IpRange.of("2001:0DB8:0:CD30::0", "2001:0DB8:0:CD30::1")) { + assertThat(value.isInRange(ipAddress), is(true)); } - assertThat(value.isInRange("2001:0DB8:0:CD30::2"), is(false)); + assertThat(value.isInRange(IpAddr.of("2001:0DB8:0:CD30::2")), is(false)); } } diff --git a/features/flows/classification/engine/pom.xml b/features/flows/classification/engine/pom.xml index 1c4541a810a8..3ed84cb83482 100644 --- a/features/flows/classification/engine/pom.xml +++ b/features/flows/classification/engine/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.flows org.opennms.features.flows.classification - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows.classification diff --git a/features/flows/classification/persistence/api/pom.xml b/features/flows/classification/persistence/api/pom.xml index 94d13865d6f6..884ec56a8a61 100644 --- a/features/flows/classification/persistence/api/pom.xml +++ b/features/flows/classification/persistence/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.flows.classification org.opennms.features.flows.classification.persistence - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows.classification.persistence diff --git a/features/flows/classification/persistence/impl/pom.xml b/features/flows/classification/persistence/impl/pom.xml index a4c2542b1f89..2b8359539c0e 100644 --- a/features/flows/classification/persistence/impl/pom.xml +++ b/features/flows/classification/persistence/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.flows.classification org.opennms.features.flows.classification.persistence - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows.classification.persistence diff --git a/features/flows/classification/persistence/pom.xml b/features/flows/classification/persistence/pom.xml index a5233b5401be..e89e7b5f1bcc 100644 --- a/features/flows/classification/persistence/pom.xml +++ b/features/flows/classification/persistence/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.flows org.opennms.features.flows.classification - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows.classification diff --git a/features/flows/classification/pom.xml b/features/flows/classification/pom.xml index d531bf677fad..92f19a17e9f0 100644 --- a/features/flows/classification/pom.xml +++ b/features/flows/classification/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.flows - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows diff --git a/features/flows/classification/shell/pom.xml b/features/flows/classification/shell/pom.xml index 61dd16d48fae..c125647bea5c 100644 --- a/features/flows/classification/shell/pom.xml +++ b/features/flows/classification/shell/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.flows org.opennms.features.flows.classification - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows.classification @@ -37,7 +37,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/flows/elastic/pom.xml b/features/flows/elastic/pom.xml index 95347a90d2e1..c58a9b926486 100644 --- a/features/flows/elastic/pom.xml +++ b/features/flows/elastic/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.flows - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows @@ -44,12 +44,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/flows/elastic/src/main/java/org/opennms/netmgt/flows/elastic/ElasticFlowRepository.java b/features/flows/elastic/src/main/java/org/opennms/netmgt/flows/elastic/ElasticFlowRepository.java index 95c63bd3fe5a..db3ec15c49bc 100644 --- a/features/flows/elastic/src/main/java/org/opennms/netmgt/flows/elastic/ElasticFlowRepository.java +++ b/features/flows/elastic/src/main/java/org/opennms/netmgt/flows/elastic/ElasticFlowRepository.java @@ -28,18 +28,23 @@ package org.opennms.netmgt.flows.elastic; -import java.io.IOException; -import java.time.Duration; -import java.time.Instant; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; - +import com.codahale.metrics.Counter; +import com.codahale.metrics.Histogram; +import com.codahale.metrics.Meter; +import com.codahale.metrics.MetricRegistry; +import com.codahale.metrics.Timer; +import com.google.common.cache.Cache; +import com.google.common.cache.CacheBuilder; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import com.swrve.ratelimitedlogger.RateLimitedLog; +import io.opentracing.Scope; +import io.opentracing.Tracer; +import io.opentracing.util.GlobalTracer; +import io.searchbox.client.JestClient; +import io.searchbox.core.Bulk; +import io.searchbox.core.Index; import org.opennms.core.tracing.api.TracerConstants; import org.opennms.core.tracing.api.TracerRegistry; import org.opennms.distributed.core.api.Identity; @@ -61,24 +66,19 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.codahale.metrics.Counter; -import com.codahale.metrics.Histogram; -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import com.swrve.ratelimitedlogger.RateLimitedLog; - -import io.opentracing.Scope; -import io.opentracing.Tracer; -import io.opentracing.util.GlobalTracer; -import io.searchbox.client.JestClient; -import io.searchbox.core.Bulk; -import io.searchbox.core.Index; +import java.io.IOException; +import java.time.Duration; +import java.time.Instant; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.TimerTask; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.ReentrantLock; +import java.util.stream.Collectors; public class ElasticFlowRepository implements FlowRepository { @@ -141,7 +141,9 @@ public class ElasticFlowRepository implements FlowRepository { private boolean enableFlowForwarding = false; - private int bulkRetryCount = 1; + private int bulkSize = 1000; + private int bulkRetryCount = 5; + private int bulkFlushMs = 500; /** * Can be used to skip persisting the flows into ES> @@ -154,6 +156,21 @@ public class ElasticFlowRepository implements FlowRepository { * This maps a node ID to a set if snmpInterface IDs. */ private final Map>> markerCache = Maps.newEnumMap(Direction.class); + + private class FlowBulk { + private List documents = Lists.newArrayListWithCapacity(ElasticFlowRepository.this.bulkSize); + private ReentrantLock lock = new ReentrantLock(); + private long lastPersist = 0; + + public FlowBulk() { + } + } + + /** + * Collect flow documents ready for persistence. + */ + private final Map flowBulks = Maps.newConcurrentMap(); + private java.util.Timer flushTimer; public ElasticFlowRepository(MetricRegistry metricRegistry, JestClient jestClient, IndexStrategy indexStrategy, DocumentEnricher documentEnricher, @@ -186,6 +203,8 @@ public ElasticFlowRepository(MetricRegistry metricRegistry, JestClient jestClien .expireAfterWrite(1, TimeUnit.HOURS) .build()); + this.startTimer(); + this.sessionUtils.withTransaction(() -> { for (final OnmsNode node : this.nodeDao.findAllHavingIngressFlows()) { this.markerCache.get(Direction.INGRESS).put(node.getId(), @@ -204,6 +223,61 @@ public ElasticFlowRepository(MetricRegistry metricRegistry, JestClient jestClien }); } + public ElasticFlowRepository(final MetricRegistry metricRegistry, final JestClient jestClient, final IndexStrategy indexStrategy, + final DocumentEnricher documentEnricher, final SessionUtils sessionUtils, final NodeDao nodeDao, + final SnmpInterfaceDao snmpInterfaceDao, final Identity identity, final TracerRegistry tracerRegistry, + final EnrichedFlowForwarder enrichedFlowForwarder, final IndexSettings indexSettings, final int bulkSize, + final int bulkFlushMs) { + this(metricRegistry, jestClient, indexStrategy, documentEnricher, sessionUtils, nodeDao, snmpInterfaceDao, identity, tracerRegistry, enrichedFlowForwarder, indexSettings); + this.bulkSize = bulkSize; + this.bulkFlushMs = bulkFlushMs; + } + + private void startTimer() { + if (flushTimer != null) { + return; + } + + if (bulkFlushMs > 0) { + int delay = Math.max(1, bulkFlushMs / 2); + flushTimer = new java.util.Timer("ElasticFlowRepositoryFlush"); + flushTimer.scheduleAtFixedRate(new TimerTask() { + @Override + public void run() { + final long currentTimeMillis = System.currentTimeMillis(); + for(final Map.Entry entry : flowBulks.entrySet()) { + final ElasticFlowRepository.FlowBulk flowBulk = entry.getValue(); + if (currentTimeMillis - flowBulk.lastPersist > bulkFlushMs) { + if (flowBulk.lock.tryLock()) { + try { + if (flowBulk.documents.size() > 0) { + try { + persistBulk(flowBulk.documents); + flowBulk.lastPersist = currentTimeMillis; + } catch (Throwable t) { + LOG.error("An error occurred while flushing one or more bulks in ElasticFlowRepository.", t); + } + } + } finally { + flowBulk.lock.unlock(); + } + } + } + } + } + }, delay, delay); + } else { + flushTimer = null; + } + } + + private void stopTimer() { + if (flushTimer != null) { + flushTimer.cancel(); + flushTimer = null; + } + } + @Override public void persist(final Collection flows, final FlowSource source) throws FlowException { // Track the number of flows per call @@ -230,38 +304,16 @@ public void persist(final Collection flows, final FlowSource source) throw if (skipElasticsearchPersistence) { RATE_LIMITED_LOGGER.info("Flow persistence disabled. Dropping {} flow documents.", flowDocuments.size()); } else { - LOG.debug("Persisting {} flow documents.", flowDocuments.size()); - final Tracer tracer = getTracer(); - try (final Timer.Context ctx = logPersistingTimer.time(); - Scope scope = tracer.buildSpan(TRACER_FLOW_MODULE).startActive(true)) { - // Add location and source address tags to span. - scope.span().setTag(TracerConstants.TAG_LOCATION, source.getLocation()); - scope.span().setTag(TracerConstants.TAG_SOURCE_ADDRESS, source.getSourceAddress()); - scope.span().setTag(TracerConstants.TAG_THREAD, Thread.currentThread().getName()); - final BulkRequest bulkRequest = new BulkRequest<>(client, flowDocuments, (documents) -> { - final Bulk.Builder bulkBuilder = new Bulk.Builder(); - for (FlowDocument flowDocument : documents) { - final String index = indexStrategy.getIndex(indexSettings, INDEX_NAME, Instant.ofEpochMilli(flowDocument.getTimestamp())); - final Index.Builder indexBuilder = new Index.Builder(flowDocument) - .index(index); - bulkBuilder.addAction(indexBuilder.build()); - } - return new BulkWrapper(bulkBuilder); - }, bulkRetryCount); - try { - // the bulk request considers retries - bulkRequest.execute(); - } catch (BulkException ex) { - if (ex.getBulkResult() != null) { - throw new PersistenceException(ex.getMessage(), ex.getBulkResult().getFailedDocuments()); - } else { - throw new PersistenceException(ex.getMessage(), Collections.emptyList()); - } - } catch (IOException ex) { - LOG.error("An error occurred while executing the given request: {}", ex.getMessage(), ex); - throw new FlowException(ex.getMessage(), ex); + final FlowBulk flowBulk = this.flowBulks.computeIfAbsent(Thread.currentThread(), (thread) -> new FlowBulk()); + flowBulk.lock.lock(); + try { + flowBulk.documents.addAll(flowDocuments); + if (flowBulk.documents.size() >= this.bulkSize) { + this.persistBulk(flowBulk.documents); + flowBulk.lastPersist = System.currentTimeMillis(); } - flowsPersistedMeter.mark(flowDocuments.size()); + } finally { + flowBulk.lock.unlock(); } } @@ -326,6 +378,42 @@ public void persist(final Collection flows, final FlowSource source) throw } } + private void persistBulk(final List bulk) throws FlowException { + LOG.debug("Persisting {} flow documents.", bulk.size()); + final Tracer tracer = getTracer(); + try (final Timer.Context ctx = logPersistingTimer.time(); + Scope scope = tracer.buildSpan(TRACER_FLOW_MODULE).startActive(true)) { + // Add location and source address tags to span. + scope.span().setTag(TracerConstants.TAG_THREAD, Thread.currentThread().getName()); + final BulkRequest bulkRequest = new BulkRequest<>(client, bulk, (documents) -> { + final Bulk.Builder bulkBuilder = new Bulk.Builder(); + for (FlowDocument flowDocument : documents) { + final String index = indexStrategy.getIndex(indexSettings, INDEX_NAME, Instant.ofEpochMilli(flowDocument.getTimestamp())); + final Index.Builder indexBuilder = new Index.Builder(flowDocument) + .index(index); + bulkBuilder.addAction(indexBuilder.build()); + } + return new BulkWrapper(bulkBuilder); + }, bulkRetryCount); + try { + // the bulk request considers retries + bulkRequest.execute(); + } catch (BulkException ex) { + if (ex.getBulkResult() != null) { + throw new PersistenceException(ex.getMessage(), ex.getBulkResult().getFailedDocuments()); + } else { + throw new PersistenceException(ex.getMessage(), Collections.emptyList()); + } + } catch (IOException ex) { + LOG.error("An error occurred while executing the given request: {}", ex.getMessage(), ex); + throw new FlowException(ex.getMessage(), ex); + } + flowsPersistedMeter.mark(bulk.size()); + + bulk.clear(); + } + } + public Identity getIdentity() { return identity; } @@ -338,6 +426,16 @@ public void start() { if (tracerRegistry != null && identity != null) { tracerRegistry.init(identity.getId()); } + + startTimer(); + } + + public void stop() throws FlowException { + stopTimer(); + + for(final FlowBulk flowBulk : flowBulks.values()) { + persistBulk(flowBulk.documents); + } } private Tracer getTracer() { @@ -355,6 +453,14 @@ public void setEnableFlowForwarding(boolean enableFlowForwarding) { this.enableFlowForwarding = enableFlowForwarding; } + public int getBulkSize() { + return this.bulkSize; + } + + public void setBulkSize(final int bulkSize) { + this.bulkSize = bulkSize; + } + public int getBulkRetryCount() { return bulkRetryCount; } @@ -363,6 +469,16 @@ public void setBulkRetryCount(int bulkRetryCount) { this.bulkRetryCount = bulkRetryCount; } + public int getBulkFlushMs() { + return bulkFlushMs; + } + + public void setBulkFlushMs(final int bulkFlushMs) { + this.bulkFlushMs = bulkFlushMs; + + stopTimer(); + startTimer(); + } public boolean isSkipElasticsearchPersistence() { return skipElasticsearchPersistence; } diff --git a/features/flows/elastic/src/main/java/org/opennms/netmgt/flows/elastic/FlowDocument.java b/features/flows/elastic/src/main/java/org/opennms/netmgt/flows/elastic/FlowDocument.java index 3363cb1f347e..02f386048a11 100644 --- a/features/flows/elastic/src/main/java/org/opennms/netmgt/flows/elastic/FlowDocument.java +++ b/features/flows/elastic/src/main/java/org/opennms/netmgt/flows/elastic/FlowDocument.java @@ -801,7 +801,6 @@ public static EnrichedFlow buildEnrichedFlow(FlowDocument flowDocument) { enrichedFlow.setSrcNodeInfo(buildNodeInfo(flowDocument.getNodeSrc())); enrichedFlow.setDstNodeInfo(buildNodeInfo(flowDocument.getNodeDst())); enrichedFlow.setExporterNodeInfo(buildNodeInfo(flowDocument.getNodeExporter())); - enrichedFlow.setConvoKey(flowDocument.getConvoKey()); enrichedFlow.setClockCorrection(flowDocument.getClockCorrection()); return enrichedFlow; diff --git a/features/flows/elastic/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/features/flows/elastic/src/main/resources/OSGI-INF/blueprint/blueprint.xml index bb99c7239120..7ee93b6d4a56 100644 --- a/features/flows/elastic/src/main/resources/OSGI-INF/blueprint/blueprint.xml +++ b/features/flows/elastic/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -33,8 +33,10 @@ - + + + @@ -206,7 +208,7 @@ + init-method="start" destroy-method="stop"> @@ -222,6 +224,8 @@ + + diff --git a/features/flows/elastic/src/test/java/org/opennms/netmgt/flows/elastic/DocumentEnricherTest.java b/features/flows/elastic/src/test/java/org/opennms/netmgt/flows/elastic/DocumentEnricherTest.java index 5dd6095f0385..1b08909ad6d5 100644 --- a/features/flows/elastic/src/test/java/org/opennms/netmgt/flows/elastic/DocumentEnricherTest.java +++ b/features/flows/elastic/src/test/java/org/opennms/netmgt/flows/elastic/DocumentEnricherTest.java @@ -45,6 +45,7 @@ import org.opennms.netmgt.flows.api.Flow; import org.opennms.netmgt.flows.api.FlowSource; import org.opennms.netmgt.flows.classification.ClassificationRequest; +import org.opennms.netmgt.flows.classification.IpAddr; import org.opennms.netmgt.model.OnmsNode; import com.google.common.collect.Lists; @@ -52,7 +53,7 @@ public class DocumentEnricherTest { @Test - public void verifyCacheUsage() { + public void verifyCacheUsage() throws InterruptedException { final MockDocumentEnricherFactory factory = new MockDocumentEnricherFactory(); final DocumentEnricher enricher = factory.getEnricher(); final NodeDao nodeDao = factory.getNodeDao(); @@ -117,7 +118,7 @@ private static OnmsNode createOnmsNode(int nodeId, String foreignSource) { } @Test - public void testCreateClassificationRequest() { + public void testCreateClassificationRequest() throws InterruptedException { final MockDocumentEnricherFactory factory = new MockDocumentEnricherFactory(); final DocumentEnricher enricher = factory.getEnricher(); @@ -146,7 +147,7 @@ public void testCreateClassificationRequest() { } @Test - public void testDirection() { + public void testDirection() throws InterruptedException { final MockDocumentEnricherFactory factory = new MockDocumentEnricherFactory(); final DocumentEnricher enricher = factory.getEnricher(); @@ -159,8 +160,8 @@ public void testDirection() { d1.setDirection(Direction.INGRESS); final ClassificationRequest c1 = enricher.createClassificationRequest(d1); - assertEquals("1.1.1.1", c1.getSrcAddress()); - assertEquals("2.2.2.2", c1.getDstAddress()); + assertEquals(IpAddr.of("1.1.1.1"), c1.getSrcAddress()); + assertEquals(IpAddr.of("2.2.2.2"), c1.getDstAddress()); assertEquals(new Integer(1), c1.getSrcPort()); assertEquals(new Integer(2), c1.getDstPort()); @@ -174,8 +175,8 @@ public void testDirection() { // check that fields stay as theay are even when EGRESS is used final ClassificationRequest c2 = enricher.createClassificationRequest(d2); - assertEquals("1.1.1.1", c2.getSrcAddress()); - assertEquals("2.2.2.2", c2.getDstAddress()); + assertEquals(IpAddr.of("1.1.1.1"), c2.getSrcAddress()); + assertEquals(IpAddr.of("2.2.2.2"), c2.getDstAddress()); assertEquals(new Integer(1), c2.getSrcPort()); assertEquals(new Integer(2), c2.getDstPort()); @@ -188,14 +189,14 @@ public void testDirection() { d3.setDirection(null); final ClassificationRequest c3 = enricher.createClassificationRequest(d3); - assertEquals("1.1.1.1", c3.getSrcAddress()); - assertEquals("2.2.2.2", c3.getDstAddress()); + assertEquals(IpAddr.of("1.1.1.1"), c3.getSrcAddress()); + assertEquals(IpAddr.of("2.2.2.2"), c3.getDstAddress()); assertEquals(new Integer(1), c3.getSrcPort()); assertEquals(new Integer(2), c3.getDstPort()); } @Test - public void testClockCorrection() { + public void testClockCorrection() throws InterruptedException { final MockDocumentEnricherFactory factory = new MockDocumentEnricherFactory(2400_000L); final DocumentEnricher enricher = factory.getEnricher(); diff --git a/features/flows/elastic/src/test/java/org/opennms/netmgt/flows/elastic/FlowDocumentTest.java b/features/flows/elastic/src/test/java/org/opennms/netmgt/flows/elastic/FlowDocumentTest.java index 1cdf48586247..635e51648fe1 100644 --- a/features/flows/elastic/src/test/java/org/opennms/netmgt/flows/elastic/FlowDocumentTest.java +++ b/features/flows/elastic/src/test/java/org/opennms/netmgt/flows/elastic/FlowDocumentTest.java @@ -66,7 +66,7 @@ public class FlowDocumentTest { private DocumentEnricher enricher; @Before - public void setUp() { + public void setUp() throws InterruptedException { final MockDocumentEnricherFactory factory = new MockDocumentEnricherFactory(); enricher = factory.getEnricher(); diff --git a/features/flows/elastic/src/test/java/org/opennms/netmgt/flows/elastic/MockDocumentEnricherFactory.java b/features/flows/elastic/src/test/java/org/opennms/netmgt/flows/elastic/MockDocumentEnricherFactory.java index 642ab4f4e57c..03a0509dfb1a 100644 --- a/features/flows/elastic/src/test/java/org/opennms/netmgt/flows/elastic/MockDocumentEnricherFactory.java +++ b/features/flows/elastic/src/test/java/org/opennms/netmgt/flows/elastic/MockDocumentEnricherFactory.java @@ -64,11 +64,11 @@ public class MockDocumentEnricherFactory { private final AtomicInteger nodeDaoGetCounter = new AtomicInteger(0); - public MockDocumentEnricherFactory() { + public MockDocumentEnricherFactory() throws InterruptedException { this(0); } - public MockDocumentEnricherFactory(final long clockSkewCorrectionThreshold) { + public MockDocumentEnricherFactory(final long clockSkewCorrectionThreshold) throws InterruptedException { nodeDao = createNodeDao(); interfaceToNodeCache = new MockInterfaceToNodeCache(); assetRecordDao = new MockAssetRecordDao(); diff --git a/features/flows/itests/pom.xml b/features/flows/itests/pom.xml index 15550fb44e3e..ad5f6b4cd111 100644 --- a/features/flows/itests/pom.xml +++ b/features/flows/itests/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.flows - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows @@ -13,7 +13,7 @@ OpenNMS :: Features :: Flows :: Integration Tests true - 0.2.1 + 0.3.0 1.1.1 @@ -30,29 +30,30 @@ + + org.apache.maven.plugins + maven-failsafe-plugin + + + ${test.keystore} + ${test.storepass} + ${test.keystore} + ${test.storepass} + + 1 + false + + org.codehaus.mojo keytool-maven-plugin 1.5 - - - - generateKeyPair - - generate-test-resources - - - ${project.build.directory} - true localhost 2048 RSA CN=localhost, OU=Flows baby flows, O=The OpenNMS Group, C=US - ${project.build.directory}/test-keystore.jks - changeit - 2 SubjectAlternativeName=dns:localhost @@ -61,11 +62,11 @@ org.osgi - org.osgi.core + osgi.core org.osgi - org.osgi.compendium + osgi.cmpn org.opennms.features.flows diff --git a/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/AggregatedFlowQueryIT.java b/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/AggregatedFlowQueryIT.java index 4ede2eed010e..15c8172fc177 100644 --- a/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/AggregatedFlowQueryIT.java +++ b/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/AggregatedFlowQueryIT.java @@ -46,6 +46,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; +import java.util.stream.LongStream; import org.apache.beam.sdk.options.PipelineOptionsFactory; import org.apache.beam.sdk.testing.TestPipeline; @@ -70,6 +71,7 @@ import org.opennms.features.jest.client.template.IndexSettings; import org.opennms.nephron.NephronOptions; import org.opennms.nephron.Pipeline; +import org.opennms.nephron.UnalignedFixedWindows; import org.opennms.nephron.coders.FlowDocumentProtobufCoder; import org.opennms.netmgt.dao.mock.MockNodeDao; import org.opennms.netmgt.dao.mock.MockSessionUtils; @@ -154,11 +156,24 @@ public void setUp() throws MalformedURLException, FlowException, ExecutionExcept flowRepository = new ElasticFlowRepository(metricRegistry, client, IndexStrategy.MONTHLY, documentEnricher, new MockSessionUtils(), new MockNodeDao(), new MockSnmpInterfaceDao(), - new MockIdentity(), new MockTracerRegistry(), documentForwarder, rawIndexSettings); + new MockIdentity(), new MockTracerRegistry(), documentForwarder, rawIndexSettings, 0, 0); flowRepository.setEnableFlowForwarding(true); // The repository should be empty - assertThat(smartQueryService.getFlowCount(Collections.singletonList(new TimeRangeFilter(0, 0))).get(), equalTo(0L)); + assertThat(smartQueryService.getFlowCount(Collections.singletonList(new TimeRangeFilter(0, System.currentTimeMillis()))).get(), equalTo(0L)); + } + + // Nephron uses unaligned windows + // -> windows are shifted by the hash of their exporter node modulo the window size + // -> use dates that are sufficiently "large" in order not to be smaller than the maximum shift + + private static final int NODE_ID = 99; + private static final long SHIFT = UnalignedFixedWindows.perNodeShift(NODE_ID, 60 * 1000); + // align the shift to 10 millis because that makes testing the output by ES simpler (that is calculated for step=10) + private static long OFFSET = (SHIFT / 10 + 1) * 10 + 60000; + + private Date date(long millis) { + return new Date(OFFSET + millis); } @Test @@ -349,21 +364,21 @@ public void canGetHosts() throws Exception { public void canGetDscps() throws Exception { final List flows = new FlowBuilder() - .withExporter("SomeFs", "SomeFid", 99) + .withExporter("SomeFs", "SomeFid", NODE_ID) .withSnmpInterfaceId(98) // 192.168.1.100:43444 <-> 10.1.1.11:80 (110 bytes in [3,15]) .withDirection(Direction.INGRESS) .withTos(0) - .withFlow(new Date(3), new Date(15), "192.168.1.100", 43444, "10.1.1.11", 80, 10) + .withFlow(date(3), date(15), "192.168.1.100", 43444, "10.1.1.11", 80, 10) .withDirection(Direction.EGRESS) .withTos(4) - .withFlow(new Date(3), new Date(15), "10.1.1.11", 80, "192.168.1.100", 43444, 100) + .withFlow(date(3), date(15), "10.1.1.11", 80, "192.168.1.100", 43444, 100) .withDirection(Direction.INGRESS) .withTos(8) - .withFlow(new Date(20), new Date(45), "192.168.1.100", 43444, "10.1.1.11", 80, 10) + .withFlow(date(20), date(45), "192.168.1.100", 43444, "10.1.1.11", 80, 10) .withDirection(Direction.EGRESS) .withTos(12) - .withFlow(new Date(20), new Date(45), "10.1.1.11", 80, "192.168.1.100", 43444, 100) + .withFlow(date(20), date(45), "10.1.1.11", 80, "192.168.1.100", 43444, 100) .build(); // expect 25 flow summary documents @@ -715,7 +730,10 @@ private void verifyHttpsSeries(Table, Long, Double> appTraffi // // 53.8461 + 21.2904 = 75.1365 final double error = 1E-8; - assertThat(timestamps, contains(OFFSET + 10L, OFFSET + 20L, OFFSET + 30L, OFFSET + 40L)); + var startHttps = date(13).getTime() / 10; + var endHttps = date(45).getTime() / 10; + var expectedTimestamps = LongStream.range(startHttps, endHttps + 1).mapToObj(l -> Long.valueOf(l * 10)).toArray(l -> new Long[l]); + assertThat(timestamps, contains(expectedTimestamps)); assertThat(httpsIngressValues, containsDoubles(error, 75.136476426799, 81.63771712158808, 35.483870967741936, 17.741935483870968)); assertThat(httpsEgressValues, containsDoubles(error, 751.36476426799, 816.3771712158809, 354.83870967741933, @@ -766,19 +784,9 @@ private static List getValuesFor(R rowKey, Table ta return column; } - // Nephron uses unaligned windows - // -> windows are shifted by the hash of their exporter node modulo the window size - // -> use dates that are sufficiently "large" in order not to be smaller than the maximum shift - - private static long OFFSET = 60000; - - private Date date(long millis) { - return new Date(OFFSET + millis); - } - private void loadDefaultFlows() throws FlowException { final List flows = new FlowBuilder() - .withExporter("SomeFs", "SomeFid", 99) + .withExporter("SomeFs", "SomeFid", NODE_ID) .withSnmpInterfaceId(98) // 192.168.1.100:43444 <-> 10.1.1.11:80 (110 bytes in [3,15]) .withDirection(Direction.INGRESS) diff --git a/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/BulkingIT.java b/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/BulkingIT.java new file mode 100644 index 000000000000..e4ac822c1556 --- /dev/null +++ b/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/BulkingIT.java @@ -0,0 +1,235 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 2021-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.netmgt.flows.elastic; + +import com.codahale.metrics.MetricRegistry; +import com.google.common.collect.Lists; +import io.searchbox.client.JestClient; +import io.searchbox.core.Search; +import io.searchbox.core.SearchResult; +import org.junit.Rule; +import org.junit.Test; +import org.opennms.core.test.elastic.ElasticSearchRule; +import org.opennms.core.test.elastic.ElasticSearchServerConfig; +import org.opennms.features.jest.client.RestClientFactory; +import org.opennms.features.jest.client.SearchResultUtils; +import org.opennms.features.jest.client.index.IndexStrategy; +import org.opennms.features.jest.client.template.IndexSettings; +import org.opennms.netmgt.dao.mock.MockNodeDao; +import org.opennms.netmgt.dao.mock.MockSessionUtils; +import org.opennms.netmgt.dao.mock.MockSnmpInterfaceDao; +import org.opennms.netmgt.flows.api.Flow; +import org.opennms.netmgt.flows.api.FlowRepository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import static com.jayway.awaitility.Awaitility.with; +import static java.util.concurrent.TimeUnit.*; +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class BulkingIT { + private static Logger LOG = LoggerFactory.getLogger(BulkingIT.class); + + @Rule + public ElasticSearchRule elasticSearchRule = new ElasticSearchRule(new ElasticSearchServerConfig() + .withStartDelay(0) + .withManualStartup() + ); + + private List createMockedFlows(final int count) { + final List flows = new ArrayList<>(count); + for (int i = 0; i < count; i++) { + final Flow flow = mock(Flow.class); + when(flow.getNetflowVersion()).thenReturn(Flow.NetflowVersion.V5); + when(flow.getIpProtocolVersion()).thenReturn(4); + when(flow.getSrcAddr()).thenReturn("192.168." + i / 256 + "." + i % 256); + when(flow.getDstAddr()).thenReturn("192.168." + i / 256 + "." + i % 256); + when(flow.getSrcAddrHostname()).thenReturn(Optional.empty()); + when(flow.getDstAddrHostname()).thenReturn(Optional.empty()); + when(flow.getNextHopHostname()).thenReturn(Optional.empty()); + when(flow.getVlan()).thenReturn(null); + flows.add(flow); + } + return flows; + } + + private FlowRepository createFlowRepository(final JestClient jestClient, final DocumentEnricher documentEnricher, int bulkSize, int bulkFlushMs) { + final ElasticFlowRepository elasticFlowRepository = new ElasticFlowRepository(new MetricRegistry(), jestClient, + IndexStrategy.MONTHLY, documentEnricher, new MockSessionUtils(), new MockNodeDao(), new MockSnmpInterfaceDao(), + new MockIdentity(), new MockTracerRegistry(), new MockDocumentForwarder(), new IndexSettings()); + elasticFlowRepository.setBulkSize(bulkSize); + elasticFlowRepository.setBulkFlushMs(bulkFlushMs); + return new InitializingFlowRepository(elasticFlowRepository, jestClient); + } + + /** + * Tests that small bulk will be persisted after the given timeout of 1000ms (bulkFlushMs). + */ + @Test + public void testFlushTimeout() throws Exception { + elasticSearchRule.startServer(); + + final RestClientFactory restClientFactory = new RestClientFactory(elasticSearchRule.getUrl()); + + try (final JestClient jestClient = restClientFactory.createClient()) { + final MockDocumentEnricherFactory mockDocumentEnricherFactory = new MockDocumentEnricherFactory(); + final DocumentEnricher documentEnricher = mockDocumentEnricherFactory.getEnricher(); + final FlowRepository flowRepository = createFlowRepository(jestClient, documentEnricher, 1000, 5000); + + final long[] persists = new long[2]; + + // send full bulk in order to estimate last persist + flowRepository.persist(Lists.newArrayList(createMockedFlows(1000)), FlowDocumentTest.getMockFlowSource()); + + with().pollInterval(25, MILLISECONDS).await().atMost(10, SECONDS).until(() -> { + final SearchResult searchResult = jestClient.execute(new Search.Builder("").addIndex("netflow-*").build()); + LOG.info("Response: {} {} ", searchResult.isSucceeded() ? "Success" : "Failure", SearchResultUtils.getTotal(searchResult)); + // record the initial persist + persists[0] = System.currentTimeMillis(); + return SearchResultUtils.getTotal(searchResult) == 1000L; + }); + + // send small bulks + flowRepository.persist(Lists.newArrayList(createMockedFlows(30)), FlowDocumentTest.getMockFlowSource()); + flowRepository.persist(Lists.newArrayList(createMockedFlows(30)), FlowDocumentTest.getMockFlowSource()); + flowRepository.persist(Lists.newArrayList(createMockedFlows(30)), FlowDocumentTest.getMockFlowSource()); + + // these 90 flows should not be visible yet + with().pollInterval(2, SECONDS).await().atMost(10, SECONDS).until(() -> { + final SearchResult searchResult = jestClient.execute(new Search.Builder("").addIndex("netflow-*").build()); + LOG.info("Response: {} {} ", searchResult.isSucceeded() ? "Success" : "Failure", SearchResultUtils.getTotal(searchResult)); + return SearchResultUtils.getTotal(searchResult) == 1000L; + }); + + // now wait for the flows to appear + with().pollInterval(25, MILLISECONDS).await().atMost(10, SECONDS).until(() -> { + final SearchResult searchResult = jestClient.execute(new Search.Builder("").addIndex("netflow-*").build()); + LOG.info("Response: {} {} ", searchResult.isSucceeded() ? "Success" : "Failure", SearchResultUtils.getTotal(searchResult)); + // record the final persist + persists[1] = System.currentTimeMillis(); + return SearchResultUtils.getTotal(searchResult) == 1090L; + }); + + long timePassed = (persists[1] - persists[0]); + LOG.info("Time between persists is {}ms", timePassed); + assertTrue(timePassed >= 5000); + } + + // stop ES + elasticSearchRule.stopServer(); + } + + /** + * Tests that large bulk will be persisted immediately. + */ + @Test + public void testSingleLargeBulk() throws Exception { + elasticSearchRule.startServer(); + + final RestClientFactory restClientFactory = new RestClientFactory(elasticSearchRule.getUrl()); + + try (final JestClient jestClient = restClientFactory.createClient()) { + final MockDocumentEnricherFactory mockDocumentEnricherFactory = new MockDocumentEnricherFactory(); + final DocumentEnricher documentEnricher = mockDocumentEnricherFactory.getEnricher(); + final FlowRepository flowRepository = createFlowRepository(jestClient, documentEnricher, 1000, 300000); + flowRepository.persist(Lists.newArrayList(createMockedFlows(1000)), FlowDocumentTest.getMockFlowSource()); + + // these results should appear immediately since the bulk size of 1000 was reached + with().pollInterval(250, MILLISECONDS).await().atMost(10, SECONDS).until(() -> { + final SearchResult searchResult = jestClient.execute(new Search.Builder("").addIndex("netflow-*").build()); + LOG.info("Response: {} {} ", searchResult.isSucceeded() ? "Success" : "Failure", SearchResultUtils.getTotal(searchResult)); + return SearchResultUtils.getTotal(searchResult) == 1000L; + }); + } + + // stop ES + elasticSearchRule.stopServer(); + } + + /** + * Tests that small bulks sum up and will be persisted when bulkSize is reached. + */ + @Test + public void testSmallBulks() throws Exception { + elasticSearchRule.startServer(); + + final RestClientFactory restClientFactory = new RestClientFactory(elasticSearchRule.getUrl()); + + try (final JestClient jestClient = restClientFactory.createClient()) { + final MockDocumentEnricherFactory mockDocumentEnricherFactory = new MockDocumentEnricherFactory(); + final DocumentEnricher documentEnricher = mockDocumentEnricherFactory.getEnricher(); + final FlowRepository flowRepository = createFlowRepository(jestClient, documentEnricher, 1000, 300000); + + flowRepository.persist(Lists.newArrayList(createMockedFlows(1000)), FlowDocumentTest.getMockFlowSource()); + + // these results should appear immediately since the bulk size of 1000 was reached + with().pollInterval(250, MILLISECONDS).await().atMost(10, SECONDS).until(() -> { + final SearchResult searchResult = jestClient.execute(new Search.Builder("").addIndex("netflow-*").build()); + LOG.info("Response: {} {} ", searchResult.isSucceeded() ? "Success" : "Failure", SearchResultUtils.getTotal(searchResult)); + return SearchResultUtils.getTotal(searchResult) == 1000L; + }); + + flowRepository.persist(Lists.newArrayList(createMockedFlows(500)), FlowDocumentTest.getMockFlowSource()); + + // these results should not appear immediately since the bulk size is only 500 + with().pollInterval(250, MILLISECONDS).await().atMost(10, SECONDS).until(() -> { + final SearchResult searchResult = jestClient.execute(new Search.Builder("").addIndex("netflow-*").build()); + LOG.info("Response: {} {} ", searchResult.isSucceeded() ? "Success" : "Failure", SearchResultUtils.getTotal(searchResult)); + return SearchResultUtils.getTotal(searchResult) == 1000L; + }); + + flowRepository.persist(Lists.newArrayList(createMockedFlows(400)), FlowDocumentTest.getMockFlowSource()); + + // these results should not appear immediately since the bulk size is only 900 + with().pollInterval(250, MILLISECONDS).await().atMost(10, SECONDS).until(() -> { + final SearchResult searchResult = jestClient.execute(new Search.Builder("").addIndex("netflow-*").build()); + LOG.info("Response: {} {} ", searchResult.isSucceeded() ? "Success" : "Failure", SearchResultUtils.getTotal(searchResult)); + return SearchResultUtils.getTotal(searchResult) == 1000L; + }); + + flowRepository.persist(Lists.newArrayList(createMockedFlows(100)), FlowDocumentTest.getMockFlowSource()); + + // these results should now appear immediately since the bulk size of 1000 was reached + with().pollInterval(250, MILLISECONDS).await().atMost(10, SECONDS).until(() -> { + final SearchResult searchResult = jestClient.execute(new Search.Builder("").addIndex("netflow-*").build()); + LOG.info("Response: {} {} ", searchResult.isSucceeded() ? "Success" : "Failure", SearchResultUtils.getTotal(searchResult)); + return SearchResultUtils.getTotal(searchResult) == 2000L; + }); + } + + // stop ES + elasticSearchRule.stopServer(); + } +} diff --git a/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/ElasticFlowRepositoryIT.java b/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/ElasticFlowRepositoryIT.java index f4b250b70ad9..573a629c8650 100644 --- a/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/ElasticFlowRepositoryIT.java +++ b/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/ElasticFlowRepositoryIT.java @@ -60,7 +60,7 @@ public class ElasticFlowRepositoryIT { public WireMockRule wireMockRule = new WireMockRule(WireMockConfiguration.options().dynamicPort()); @Test(expected=PersistenceException.class) - public void verifyThrowsPersistenceException() throws IOException, FlowException { + public void verifyThrowsPersistenceException() throws IOException, FlowException, InterruptedException { // Stub request stubFor(post("/_bulk") .willReturn(aResponse() @@ -78,7 +78,7 @@ public void verifyThrowsPersistenceException() throws IOException, FlowException final ElasticFlowRepository elasticFlowRepository = new ElasticFlowRepository(new MetricRegistry(), client, IndexStrategy.MONTHLY, documentEnricher, new MockSessionUtils(), new MockNodeDao(), new MockSnmpInterfaceDao(), - new MockIdentity(), new MockTracerRegistry(), new MockDocumentForwarder(), new IndexSettings()); + new MockIdentity(), new MockTracerRegistry(), new MockDocumentForwarder(), new IndexSettings(), 0, 0); // It does not matter what we persist here, as the response is fixed. // We only have to ensure that the list is not empty diff --git a/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/FlowQueryIT.java b/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/FlowQueryIT.java index 6bff26894993..46215f50c3b9 100644 --- a/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/FlowQueryIT.java +++ b/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/FlowQueryIT.java @@ -127,7 +127,7 @@ public void setUp() throws MalformedURLException, ExecutionException, Interrupte smartQueryService.setAlwaysUseRawForQueries(true); // Always use RAW values for these tests flowRepository = new ElasticFlowRepository(metricRegistry, client, IndexStrategy.MONTHLY, documentEnricher, new MockSessionUtils(), new MockNodeDao(), new MockSnmpInterfaceDao(), - new MockIdentity(), new MockTracerRegistry(), new MockDocumentForwarder(), settings); + new MockIdentity(), new MockTracerRegistry(), new MockDocumentForwarder(), settings, 0, 0); final RawIndexInitializer initializer = new RawIndexInitializer(client, settings); diff --git a/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/NodeIdentificationIT.java b/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/NodeIdentificationIT.java index 64052b04b50f..2bc447a0f374 100644 --- a/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/NodeIdentificationIT.java +++ b/features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/NodeIdentificationIT.java @@ -105,7 +105,7 @@ public void before() { } @Test - public void testSomething() { + public void testSomething() throws InterruptedException { final ClassificationEngine classificationEngine = new DefaultClassificationEngine(() -> Collections.emptyList(), FilterService.NOOP); final DocumentEnricher documentEnricher = new DocumentEnricher( new MetricRegistry(), databasePopulator.getNodeDao(), interfaceToNodeCache, sessionUtils, classificationEngine, diff --git a/features/flows/kafka-persistence/pom.xml b/features/flows/kafka-persistence/pom.xml index 10fafc8e7f47..83bba72d01ab 100644 --- a/features/flows/kafka-persistence/pom.xml +++ b/features/flows/kafka-persistence/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.flows org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 bundle @@ -64,12 +64,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/FlowDocumentBuilder.java b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/FlowDocumentBuilder.java index 3f3107fde9c6..84bb791963fc 100644 --- a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/FlowDocumentBuilder.java +++ b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/FlowDocumentBuilder.java @@ -99,7 +99,6 @@ public static FlowDocument buildFlowDocument(EnrichedFlow enrichedFlow) { getString(enrichedFlow.getApplication()).ifPresent(builder::setApplication); getString(enrichedFlow.getHost()).ifPresent(builder::setHost); getString(enrichedFlow.getLocation()).ifPresent(builder::setLocation); - getString(enrichedFlow.getConvoKey()).ifPresent(builder::setConvoKey); builder.setDstLocality(fromLocality(enrichedFlow.getDstLocality())); builder.setSrcLocality(fromLocality(enrichedFlow.getSrcLocality())); builder.setFlowLocality(fromLocality(enrichedFlow.getFlowLocality())); diff --git a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/Direction.java b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/Direction.java index 602b6b27e562..be1556c26ad3 100644 --- a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/Direction.java +++ b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/Direction.java @@ -59,26 +59,20 @@ public enum Direction public final int getNumber() { if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( + throw new IllegalArgumentException( "Can't get the number of an unknown enum value."); } return value; } /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. * @deprecated Use {@link #forNumber(int)} instead. */ - @java.lang.Deprecated + @Deprecated public static Direction valueOf(int value) { return forNumber(value); } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ public static Direction forNumber(int value) { switch (value) { case 0: return INGRESS; @@ -101,10 +95,6 @@ public Direction findValueByNumber(int number) { public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } return getDescriptor().getValues().get(ordinal()); } public final com.google.protobuf.Descriptors.EnumDescriptor @@ -113,7 +103,7 @@ public Direction findValueByNumber(int number) { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.getDescriptor().getEnumTypes().get(0); + return EnrichedFlowProtos.getDescriptor().getEnumTypes().get(0); } private static final Direction[] VALUES = values(); @@ -121,7 +111,7 @@ public Direction findValueByNumber(int number) { public static Direction valueOf( com.google.protobuf.Descriptors.EnumValueDescriptor desc) { if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( + throw new IllegalArgumentException( "EnumValueDescriptor is not for this type."); } if (desc.getIndex() == -1) { diff --git a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/EnrichedFlowProtos.java b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/EnrichedFlowProtos.java index 8f6947264a98..a0613638c74f 100644 --- a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/EnrichedFlowProtos.java +++ b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/EnrichedFlowProtos.java @@ -60,11 +60,11 @@ public static void registerAllExtensions( private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { - java.lang.String[] descriptorData = { + String[] descriptorData = { "\n\022flowdocument.proto\032\036google/protobuf/wr" + "appers.proto\"[\n\010NodeInfo\022\026\n\016foreign_sour" + "ce\030\001 \001(\t\022\022\n\nforegin_id\030\002 \001(\t\022\017\n\007node_id\030" + - "\003 \001(\r\022\022\n\ncategories\030\004 \003(\t\"\233\016\n\014FlowDocume" + + "\003 \001(\r\022\022\n\ncategories\030\004 \003(\t\"\216\016\n\014FlowDocume" + "nt\022\021\n\ttimestamp\030\001 \001(\004\022/\n\tnum_bytes\030\002 \001(\013" + "2\034.google.protobuf.UInt64Value\022\035\n\tdirect" + "ion\030\003 \001(\0162\n.Direction\022\023\n\013dst_address\030\004 \001" + @@ -106,23 +106,23 @@ public static void registerAllExtensions( "fo\022\023\n\013application\030& \001(\t\022\014\n\004host\030\' \001(\t\022\020\n" + "\010location\030( \001(\t\022\037\n\014src_locality\030) \001(\0162\t." + "Locality\022\037\n\014dst_locality\030* \001(\0162\t.Localit" + - "y\022 \n\rflow_locality\030+ \001(\0162\t.Locality\022\021\n\tc" + - "onvo_key\030, \001(\t\022\030\n\020clock_correction\030- \001(\004" + - "\022*\n\004dscp\030. \001(\0132\034.google.protobuf.UInt32V" + - "alue\022)\n\003ecn\030/ \001(\0132\034.google.protobuf.UInt" + - "32Value*$\n\tDirection\022\013\n\007INGRESS\020\000\022\n\n\006EGR" + - "ESS\020\001*\246\002\n\021SamplingAlgorithm\022\016\n\nUNASSIGNE" + - "D\020\000\022#\n\037SYSTEMATIC_COUNT_BASED_SAMPLING\020\001" + - "\022\"\n\036SYSTEMATIC_TIME_BASED_SAMPLING\020\002\022\036\n\032" + - "RANDOM_N_OUT_OF_N_SAMPLING\020\003\022\"\n\036UNIFORM_" + - "PROBABILISTIC_SAMPLING\020\004\022\034\n\030PROPERTY_MAT" + - "CH_FILTERING\020\005\022\030\n\024HASH_BASED_FILTERING\020\006" + - "\022<\n8FLOW_STATE_DEPENDENT_INTERMEDIATE_FL" + - "OW_SELECTION_PROCESS\020\007*6\n\016NetflowVersion" + - "\022\006\n\002V5\020\000\022\006\n\002V9\020\001\022\t\n\005IPFIX\020\002\022\t\n\005SFLOW\020\003*#" + - "\n\010Locality\022\n\n\006PUBLIC\020\000\022\013\n\007PRIVATE\020\001BB\n*o" + - "rg.opennms.netmgt.flows.persistence.mode" + - "lB\022EnrichedFlowProtosP\001b\006proto3" + "y\022 \n\rflow_locality\030+ \001(\0162\t.Locality\022\030\n\020c" + + "lock_correction\030- \001(\004\022*\n\004dscp\030. \001(\0132\034.go" + + "ogle.protobuf.UInt32Value\022)\n\003ecn\030/ \001(\0132\034" + + ".google.protobuf.UInt32ValueJ\004\010,\020-*$\n\tDi" + + "rection\022\013\n\007INGRESS\020\000\022\n\n\006EGRESS\020\001*\246\002\n\021Sam" + + "plingAlgorithm\022\016\n\nUNASSIGNED\020\000\022#\n\037SYSTEM" + + "ATIC_COUNT_BASED_SAMPLING\020\001\022\"\n\036SYSTEMATI" + + "C_TIME_BASED_SAMPLING\020\002\022\036\n\032RANDOM_N_OUT_" + + "OF_N_SAMPLING\020\003\022\"\n\036UNIFORM_PROBABILISTIC" + + "_SAMPLING\020\004\022\034\n\030PROPERTY_MATCH_FILTERING\020" + + "\005\022\030\n\024HASH_BASED_FILTERING\020\006\022<\n8FLOW_STAT" + + "E_DEPENDENT_INTERMEDIATE_FLOW_SELECTION_" + + "PROCESS\020\007*6\n\016NetflowVersion\022\006\n\002V5\020\000\022\006\n\002V" + + "9\020\001\022\t\n\005IPFIX\020\002\022\t\n\005SFLOW\020\003*#\n\010Locality\022\n\n" + + "\006PUBLIC\020\000\022\013\n\007PRIVATE\020\001BB\n*org.opennms.ne" + + "tmgt.flows.persistence.modelB\022EnrichedFl" + + "owProtosP\001b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -134,13 +134,13 @@ public static void registerAllExtensions( internal_static_NodeInfo_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_NodeInfo_descriptor, - new java.lang.String[] { "ForeignSource", "ForeginId", "NodeId", "Categories", }); + new String[] { "ForeignSource", "ForeginId", "NodeId", "Categories", }); internal_static_FlowDocument_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_FlowDocument_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_FlowDocument_descriptor, - new java.lang.String[] { "Timestamp", "NumBytes", "Direction", "DstAddress", "DstHostname", "DstAs", "DstMaskLen", "DstPort", "EngineId", "EngineType", "DeltaSwitched", "FirstSwitched", "LastSwitched", "NumFlowRecords", "NumPackets", "FlowSeqNum", "InputSnmpIfindex", "OutputSnmpIfindex", "IpProtocolVersion", "NextHopAddress", "NextHopHostname", "Protocol", "SamplingAlgorithm", "SamplingInterval", "SrcAddress", "SrcHostname", "SrcAs", "SrcMaskLen", "SrcPort", "TcpFlags", "Tos", "NetflowVersion", "Vlan", "SrcNode", "ExporterNode", "DestNode", "Application", "Host", "Location", "SrcLocality", "DstLocality", "FlowLocality", "ConvoKey", "ClockCorrection", "Dscp", "Ecn", }); + new String[] { "Timestamp", "NumBytes", "Direction", "DstAddress", "DstHostname", "DstAs", "DstMaskLen", "DstPort", "EngineId", "EngineType", "DeltaSwitched", "FirstSwitched", "LastSwitched", "NumFlowRecords", "NumPackets", "FlowSeqNum", "InputSnmpIfindex", "OutputSnmpIfindex", "IpProtocolVersion", "NextHopAddress", "NextHopHostname", "Protocol", "SamplingAlgorithm", "SamplingInterval", "SrcAddress", "SrcHostname", "SrcAs", "SrcMaskLen", "SrcPort", "TcpFlags", "Tos", "NetflowVersion", "Vlan", "SrcNode", "ExporterNode", "DestNode", "Application", "Host", "Location", "SrcLocality", "DstLocality", "FlowLocality", "ClockCorrection", "Dscp", "Ecn", }); com.google.protobuf.WrappersProto.getDescriptor(); } diff --git a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/FlowDocument.java b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/FlowDocument.java index dbfb3aa652b1..aa73403eebfa 100644 --- a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/FlowDocument.java +++ b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/FlowDocument.java @@ -34,7 +34,7 @@ /** * Protobuf type {@code FlowDocument} */ -public final class FlowDocument extends +public final class FlowDocument extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:FlowDocument) FlowDocumentOrBuilder { @@ -60,17 +60,16 @@ private FlowDocument() { srcLocality_ = 0; dstLocality_ = 0; flowLocality_ = 0; - convoKey_ = ""; } - @java.lang.Override + @Override @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( + protected Object newInstance( UnusedPrivateParameter unused) { return new FlowDocument(); } - @java.lang.Override + @Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; @@ -81,7 +80,7 @@ private FlowDocument( throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); + throw new NullPointerException(); } com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); @@ -118,13 +117,13 @@ private FlowDocument( break; } case 34: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); dstAddress_ = s; break; } case 42: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); dstHostname_ = s; break; @@ -312,13 +311,13 @@ private FlowDocument( break; } case 162: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); nextHopAddress_ = s; break; } case 170: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); nextHopHostname_ = s; break; @@ -356,13 +355,13 @@ private FlowDocument( break; } case 210: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); srcAddress_ = s; break; } case 218: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); srcHostname_ = s; break; @@ -439,17 +438,17 @@ private FlowDocument( break; } case 274: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); vlan_ = s; break; } case 282: { - org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder subBuilder = null; + NodeInfo.Builder subBuilder = null; if (srcNode_ != null) { subBuilder = srcNode_.toBuilder(); } - srcNode_ = input.readMessage(org.opennms.netmgt.flows.persistence.model.NodeInfo.parser(), extensionRegistry); + srcNode_ = input.readMessage(NodeInfo.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(srcNode_); srcNode_ = subBuilder.buildPartial(); @@ -458,11 +457,11 @@ private FlowDocument( break; } case 290: { - org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder subBuilder = null; + NodeInfo.Builder subBuilder = null; if (exporterNode_ != null) { subBuilder = exporterNode_.toBuilder(); } - exporterNode_ = input.readMessage(org.opennms.netmgt.flows.persistence.model.NodeInfo.parser(), extensionRegistry); + exporterNode_ = input.readMessage(NodeInfo.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(exporterNode_); exporterNode_ = subBuilder.buildPartial(); @@ -471,11 +470,11 @@ private FlowDocument( break; } case 298: { - org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder subBuilder = null; + NodeInfo.Builder subBuilder = null; if (destNode_ != null) { subBuilder = destNode_.toBuilder(); } - destNode_ = input.readMessage(org.opennms.netmgt.flows.persistence.model.NodeInfo.parser(), extensionRegistry); + destNode_ = input.readMessage(NodeInfo.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(destNode_); destNode_ = subBuilder.buildPartial(); @@ -484,19 +483,19 @@ private FlowDocument( break; } case 306: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); application_ = s; break; } case 314: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); host_ = s; break; } case 322: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); location_ = s; break; @@ -519,12 +518,6 @@ private FlowDocument( flowLocality_ = rawValue; break; } - case 354: { - java.lang.String s = input.readStringRequireUtf8(); - - convoKey_ = s; - break; - } case 360: { clockCorrection_ = input.readUInt64(); @@ -577,15 +570,15 @@ private FlowDocument( } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.internal_static_FlowDocument_descriptor; + return EnrichedFlowProtos.internal_static_FlowDocument_descriptor; } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + @Override + protected FieldAccessorTable internalGetFieldAccessorTable() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.internal_static_FlowDocument_fieldAccessorTable + return EnrichedFlowProtos.internal_static_FlowDocument_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.opennms.netmgt.flows.persistence.model.FlowDocument.class, org.opennms.netmgt.flows.persistence.model.FlowDocument.Builder.class); + FlowDocument.class, Builder.class); } public static final int TIMESTAMP_FIELD_NUMBER = 1; @@ -596,9 +589,7 @@ private FlowDocument( * * * uint64 timestamp = 1; - * @return The timestamp. */ - @java.lang.Override public long getTimestamp() { return timestamp_; } @@ -611,9 +602,7 @@ public long getTimestamp() { * * * .google.protobuf.UInt64Value num_bytes = 2; - * @return Whether the numBytes field is set. */ - @java.lang.Override public boolean hasNumBytes() { return numBytes_ != null; } @@ -623,9 +612,7 @@ public boolean hasNumBytes() { * * * .google.protobuf.UInt64Value num_bytes = 2; - * @return The numBytes. */ - @java.lang.Override public com.google.protobuf.UInt64Value getNumBytes() { return numBytes_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : numBytes_; } @@ -636,7 +623,6 @@ public com.google.protobuf.UInt64Value getNumBytes() { * * .google.protobuf.UInt64Value num_bytes = 2; */ - @java.lang.Override public com.google.protobuf.UInt64ValueOrBuilder getNumBytesOrBuilder() { return getNumBytes(); } @@ -649,9 +635,8 @@ public com.google.protobuf.UInt64ValueOrBuilder getNumBytesOrBuilder() { * * * .Direction direction = 3; - * @return The enum numeric value on the wire for direction. */ - @java.lang.Override public int getDirectionValue() { + public int getDirectionValue() { return direction_; } /** @@ -660,33 +645,30 @@ public com.google.protobuf.UInt64ValueOrBuilder getNumBytesOrBuilder() { * * * .Direction direction = 3; - * @return The direction. */ - @java.lang.Override public org.opennms.netmgt.flows.persistence.model.Direction getDirection() { + public Direction getDirection() { @SuppressWarnings("deprecation") - org.opennms.netmgt.flows.persistence.model.Direction result = org.opennms.netmgt.flows.persistence.model.Direction.valueOf(direction_); - return result == null ? org.opennms.netmgt.flows.persistence.model.Direction.UNRECOGNIZED : result; + Direction result = Direction.valueOf(direction_); + return result == null ? Direction.UNRECOGNIZED : result; } public static final int DST_ADDRESS_FIELD_NUMBER = 4; - private volatile java.lang.Object dstAddress_; + private volatile Object dstAddress_; /** *

    *  Destination address.
    * 
* * string dst_address = 4; - * @return The dstAddress. */ - @java.lang.Override - public java.lang.String getDstAddress() { - java.lang.Object ref = dstAddress_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; + public String getDstAddress() { + Object ref = dstAddress_; + if (ref instanceof String) { + return (String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); dstAddress_ = s; return s; } @@ -697,16 +679,14 @@ public java.lang.String getDstAddress() { * * * string dst_address = 4; - * @return The bytes for dstAddress. */ - @java.lang.Override public com.google.protobuf.ByteString getDstAddressBytes() { - java.lang.Object ref = dstAddress_; - if (ref instanceof java.lang.String) { + Object ref = dstAddress_; + if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); dstAddress_ = b; return b; } else { @@ -715,24 +695,22 @@ public java.lang.String getDstAddress() { } public static final int DST_HOSTNAME_FIELD_NUMBER = 5; - private volatile java.lang.Object dstHostname_; + private volatile Object dstHostname_; /** *
    * Destination address hostname.
    * 
* * string dst_hostname = 5; - * @return The dstHostname. */ - @java.lang.Override - public java.lang.String getDstHostname() { - java.lang.Object ref = dstHostname_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; + public String getDstHostname() { + Object ref = dstHostname_; + if (ref instanceof String) { + return (String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); dstHostname_ = s; return s; } @@ -743,16 +721,14 @@ public java.lang.String getDstHostname() { * * * string dst_hostname = 5; - * @return The bytes for dstHostname. */ - @java.lang.Override public com.google.protobuf.ByteString getDstHostnameBytes() { - java.lang.Object ref = dstHostname_; - if (ref instanceof java.lang.String) { + Object ref = dstHostname_; + if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); dstHostname_ = b; return b; } else { @@ -768,9 +744,7 @@ public java.lang.String getDstHostname() { * * * .google.protobuf.UInt64Value dst_as = 6; - * @return Whether the dstAs field is set. */ - @java.lang.Override public boolean hasDstAs() { return dstAs_ != null; } @@ -780,9 +754,7 @@ public boolean hasDstAs() { * * * .google.protobuf.UInt64Value dst_as = 6; - * @return The dstAs. */ - @java.lang.Override public com.google.protobuf.UInt64Value getDstAs() { return dstAs_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : dstAs_; } @@ -793,7 +765,6 @@ public com.google.protobuf.UInt64Value getDstAs() { * * .google.protobuf.UInt64Value dst_as = 6; */ - @java.lang.Override public com.google.protobuf.UInt64ValueOrBuilder getDstAsOrBuilder() { return getDstAs(); } @@ -806,9 +777,7 @@ public com.google.protobuf.UInt64ValueOrBuilder getDstAsOrBuilder() { * * * .google.protobuf.UInt32Value dst_mask_len = 7; - * @return Whether the dstMaskLen field is set. */ - @java.lang.Override public boolean hasDstMaskLen() { return dstMaskLen_ != null; } @@ -818,9 +787,7 @@ public boolean hasDstMaskLen() { * * * .google.protobuf.UInt32Value dst_mask_len = 7; - * @return The dstMaskLen. */ - @java.lang.Override public com.google.protobuf.UInt32Value getDstMaskLen() { return dstMaskLen_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : dstMaskLen_; } @@ -831,7 +798,6 @@ public com.google.protobuf.UInt32Value getDstMaskLen() { * * .google.protobuf.UInt32Value dst_mask_len = 7; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getDstMaskLenOrBuilder() { return getDstMaskLen(); } @@ -844,9 +810,7 @@ public com.google.protobuf.UInt32ValueOrBuilder getDstMaskLenOrBuilder() { * * * .google.protobuf.UInt32Value dst_port = 8; - * @return Whether the dstPort field is set. */ - @java.lang.Override public boolean hasDstPort() { return dstPort_ != null; } @@ -856,9 +820,7 @@ public boolean hasDstPort() { * * * .google.protobuf.UInt32Value dst_port = 8; - * @return The dstPort. */ - @java.lang.Override public com.google.protobuf.UInt32Value getDstPort() { return dstPort_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : dstPort_; } @@ -869,7 +831,6 @@ public com.google.protobuf.UInt32Value getDstPort() { * * .google.protobuf.UInt32Value dst_port = 8; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getDstPortOrBuilder() { return getDstPort(); } @@ -882,9 +843,7 @@ public com.google.protobuf.UInt32ValueOrBuilder getDstPortOrBuilder() { * * * .google.protobuf.UInt32Value engine_id = 9; - * @return Whether the engineId field is set. */ - @java.lang.Override public boolean hasEngineId() { return engineId_ != null; } @@ -894,9 +853,7 @@ public boolean hasEngineId() { * * * .google.protobuf.UInt32Value engine_id = 9; - * @return The engineId. */ - @java.lang.Override public com.google.protobuf.UInt32Value getEngineId() { return engineId_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : engineId_; } @@ -907,7 +864,6 @@ public com.google.protobuf.UInt32Value getEngineId() { * * .google.protobuf.UInt32Value engine_id = 9; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getEngineIdOrBuilder() { return getEngineId(); } @@ -920,9 +876,7 @@ public com.google.protobuf.UInt32ValueOrBuilder getEngineIdOrBuilder() { * * * .google.protobuf.UInt32Value engine_type = 10; - * @return Whether the engineType field is set. */ - @java.lang.Override public boolean hasEngineType() { return engineType_ != null; } @@ -932,9 +886,7 @@ public boolean hasEngineType() { * * * .google.protobuf.UInt32Value engine_type = 10; - * @return The engineType. */ - @java.lang.Override public com.google.protobuf.UInt32Value getEngineType() { return engineType_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : engineType_; } @@ -945,7 +897,6 @@ public com.google.protobuf.UInt32Value getEngineType() { * * .google.protobuf.UInt32Value engine_type = 10; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getEngineTypeOrBuilder() { return getEngineType(); } @@ -958,9 +909,7 @@ public com.google.protobuf.UInt32ValueOrBuilder getEngineTypeOrBuilder() { * * * .google.protobuf.UInt64Value delta_switched = 11; - * @return Whether the deltaSwitched field is set. */ - @java.lang.Override public boolean hasDeltaSwitched() { return deltaSwitched_ != null; } @@ -970,9 +919,7 @@ public boolean hasDeltaSwitched() { * * * .google.protobuf.UInt64Value delta_switched = 11; - * @return The deltaSwitched. */ - @java.lang.Override public com.google.protobuf.UInt64Value getDeltaSwitched() { return deltaSwitched_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : deltaSwitched_; } @@ -983,7 +930,6 @@ public com.google.protobuf.UInt64Value getDeltaSwitched() { * * .google.protobuf.UInt64Value delta_switched = 11; */ - @java.lang.Override public com.google.protobuf.UInt64ValueOrBuilder getDeltaSwitchedOrBuilder() { return getDeltaSwitched(); } @@ -996,9 +942,7 @@ public com.google.protobuf.UInt64ValueOrBuilder getDeltaSwitchedOrBuilder() { * * * .google.protobuf.UInt64Value first_switched = 12; - * @return Whether the firstSwitched field is set. */ - @java.lang.Override public boolean hasFirstSwitched() { return firstSwitched_ != null; } @@ -1008,9 +952,7 @@ public boolean hasFirstSwitched() { * * * .google.protobuf.UInt64Value first_switched = 12; - * @return The firstSwitched. */ - @java.lang.Override public com.google.protobuf.UInt64Value getFirstSwitched() { return firstSwitched_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : firstSwitched_; } @@ -1021,7 +963,6 @@ public com.google.protobuf.UInt64Value getFirstSwitched() { * * .google.protobuf.UInt64Value first_switched = 12; */ - @java.lang.Override public com.google.protobuf.UInt64ValueOrBuilder getFirstSwitchedOrBuilder() { return getFirstSwitched(); } @@ -1034,9 +975,7 @@ public com.google.protobuf.UInt64ValueOrBuilder getFirstSwitchedOrBuilder() { * * * .google.protobuf.UInt64Value last_switched = 13; - * @return Whether the lastSwitched field is set. */ - @java.lang.Override public boolean hasLastSwitched() { return lastSwitched_ != null; } @@ -1046,9 +985,7 @@ public boolean hasLastSwitched() { * * * .google.protobuf.UInt64Value last_switched = 13; - * @return The lastSwitched. */ - @java.lang.Override public com.google.protobuf.UInt64Value getLastSwitched() { return lastSwitched_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : lastSwitched_; } @@ -1059,7 +996,6 @@ public com.google.protobuf.UInt64Value getLastSwitched() { * * .google.protobuf.UInt64Value last_switched = 13; */ - @java.lang.Override public com.google.protobuf.UInt64ValueOrBuilder getLastSwitchedOrBuilder() { return getLastSwitched(); } @@ -1072,9 +1008,7 @@ public com.google.protobuf.UInt64ValueOrBuilder getLastSwitchedOrBuilder() { * * * .google.protobuf.UInt32Value num_flow_records = 14; - * @return Whether the numFlowRecords field is set. */ - @java.lang.Override public boolean hasNumFlowRecords() { return numFlowRecords_ != null; } @@ -1084,9 +1018,7 @@ public boolean hasNumFlowRecords() { * * * .google.protobuf.UInt32Value num_flow_records = 14; - * @return The numFlowRecords. */ - @java.lang.Override public com.google.protobuf.UInt32Value getNumFlowRecords() { return numFlowRecords_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : numFlowRecords_; } @@ -1097,7 +1029,6 @@ public com.google.protobuf.UInt32Value getNumFlowRecords() { * * .google.protobuf.UInt32Value num_flow_records = 14; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getNumFlowRecordsOrBuilder() { return getNumFlowRecords(); } @@ -1110,9 +1041,7 @@ public com.google.protobuf.UInt32ValueOrBuilder getNumFlowRecordsOrBuilder() { * * * .google.protobuf.UInt64Value num_packets = 15; - * @return Whether the numPackets field is set. */ - @java.lang.Override public boolean hasNumPackets() { return numPackets_ != null; } @@ -1122,9 +1051,7 @@ public boolean hasNumPackets() { * * * .google.protobuf.UInt64Value num_packets = 15; - * @return The numPackets. */ - @java.lang.Override public com.google.protobuf.UInt64Value getNumPackets() { return numPackets_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : numPackets_; } @@ -1135,7 +1062,6 @@ public com.google.protobuf.UInt64Value getNumPackets() { * * .google.protobuf.UInt64Value num_packets = 15; */ - @java.lang.Override public com.google.protobuf.UInt64ValueOrBuilder getNumPacketsOrBuilder() { return getNumPackets(); } @@ -1148,9 +1074,7 @@ public com.google.protobuf.UInt64ValueOrBuilder getNumPacketsOrBuilder() { * * * .google.protobuf.UInt64Value flow_seq_num = 16; - * @return Whether the flowSeqNum field is set. */ - @java.lang.Override public boolean hasFlowSeqNum() { return flowSeqNum_ != null; } @@ -1160,9 +1084,7 @@ public boolean hasFlowSeqNum() { * * * .google.protobuf.UInt64Value flow_seq_num = 16; - * @return The flowSeqNum. */ - @java.lang.Override public com.google.protobuf.UInt64Value getFlowSeqNum() { return flowSeqNum_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : flowSeqNum_; } @@ -1173,7 +1095,6 @@ public com.google.protobuf.UInt64Value getFlowSeqNum() { * * .google.protobuf.UInt64Value flow_seq_num = 16; */ - @java.lang.Override public com.google.protobuf.UInt64ValueOrBuilder getFlowSeqNumOrBuilder() { return getFlowSeqNum(); } @@ -1186,9 +1107,7 @@ public com.google.protobuf.UInt64ValueOrBuilder getFlowSeqNumOrBuilder() { * * * .google.protobuf.UInt32Value input_snmp_ifindex = 17; - * @return Whether the inputSnmpIfindex field is set. */ - @java.lang.Override public boolean hasInputSnmpIfindex() { return inputSnmpIfindex_ != null; } @@ -1198,9 +1117,7 @@ public boolean hasInputSnmpIfindex() { * * * .google.protobuf.UInt32Value input_snmp_ifindex = 17; - * @return The inputSnmpIfindex. */ - @java.lang.Override public com.google.protobuf.UInt32Value getInputSnmpIfindex() { return inputSnmpIfindex_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : inputSnmpIfindex_; } @@ -1211,7 +1128,6 @@ public com.google.protobuf.UInt32Value getInputSnmpIfindex() { * * .google.protobuf.UInt32Value input_snmp_ifindex = 17; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getInputSnmpIfindexOrBuilder() { return getInputSnmpIfindex(); } @@ -1224,9 +1140,7 @@ public com.google.protobuf.UInt32ValueOrBuilder getInputSnmpIfindexOrBuilder() { * * * .google.protobuf.UInt32Value output_snmp_ifindex = 18; - * @return Whether the outputSnmpIfindex field is set. */ - @java.lang.Override public boolean hasOutputSnmpIfindex() { return outputSnmpIfindex_ != null; } @@ -1236,9 +1150,7 @@ public boolean hasOutputSnmpIfindex() { * * * .google.protobuf.UInt32Value output_snmp_ifindex = 18; - * @return The outputSnmpIfindex. */ - @java.lang.Override public com.google.protobuf.UInt32Value getOutputSnmpIfindex() { return outputSnmpIfindex_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : outputSnmpIfindex_; } @@ -1249,7 +1161,6 @@ public com.google.protobuf.UInt32Value getOutputSnmpIfindex() { * * .google.protobuf.UInt32Value output_snmp_ifindex = 18; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getOutputSnmpIfindexOrBuilder() { return getOutputSnmpIfindex(); } @@ -1262,9 +1173,7 @@ public com.google.protobuf.UInt32ValueOrBuilder getOutputSnmpIfindexOrBuilder() * * * .google.protobuf.UInt32Value ip_protocol_version = 19; - * @return Whether the ipProtocolVersion field is set. */ - @java.lang.Override public boolean hasIpProtocolVersion() { return ipProtocolVersion_ != null; } @@ -1274,9 +1183,7 @@ public boolean hasIpProtocolVersion() { * * * .google.protobuf.UInt32Value ip_protocol_version = 19; - * @return The ipProtocolVersion. */ - @java.lang.Override public com.google.protobuf.UInt32Value getIpProtocolVersion() { return ipProtocolVersion_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : ipProtocolVersion_; } @@ -1287,30 +1194,27 @@ public com.google.protobuf.UInt32Value getIpProtocolVersion() { * * .google.protobuf.UInt32Value ip_protocol_version = 19; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getIpProtocolVersionOrBuilder() { return getIpProtocolVersion(); } public static final int NEXT_HOP_ADDRESS_FIELD_NUMBER = 20; - private volatile java.lang.Object nextHopAddress_; + private volatile Object nextHopAddress_; /** *
    * Next hop IpAddress.
    * 
* * string next_hop_address = 20; - * @return The nextHopAddress. */ - @java.lang.Override - public java.lang.String getNextHopAddress() { - java.lang.Object ref = nextHopAddress_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; + public String getNextHopAddress() { + Object ref = nextHopAddress_; + if (ref instanceof String) { + return (String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); nextHopAddress_ = s; return s; } @@ -1321,16 +1225,14 @@ public java.lang.String getNextHopAddress() { * * * string next_hop_address = 20; - * @return The bytes for nextHopAddress. */ - @java.lang.Override public com.google.protobuf.ByteString getNextHopAddressBytes() { - java.lang.Object ref = nextHopAddress_; - if (ref instanceof java.lang.String) { + Object ref = nextHopAddress_; + if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); nextHopAddress_ = b; return b; } else { @@ -1339,24 +1241,22 @@ public java.lang.String getNextHopAddress() { } public static final int NEXT_HOP_HOSTNAME_FIELD_NUMBER = 21; - private volatile java.lang.Object nextHopHostname_; + private volatile Object nextHopHostname_; /** *
    * Next hop hostname.
    * 
* * string next_hop_hostname = 21; - * @return The nextHopHostname. */ - @java.lang.Override - public java.lang.String getNextHopHostname() { - java.lang.Object ref = nextHopHostname_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; + public String getNextHopHostname() { + Object ref = nextHopHostname_; + if (ref instanceof String) { + return (String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); nextHopHostname_ = s; return s; } @@ -1367,16 +1267,14 @@ public java.lang.String getNextHopHostname() { * * * string next_hop_hostname = 21; - * @return The bytes for nextHopHostname. */ - @java.lang.Override public com.google.protobuf.ByteString getNextHopHostnameBytes() { - java.lang.Object ref = nextHopHostname_; - if (ref instanceof java.lang.String) { + Object ref = nextHopHostname_; + if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); nextHopHostname_ = b; return b; } else { @@ -1392,9 +1290,7 @@ public java.lang.String getNextHopHostname() { * * * .google.protobuf.UInt32Value protocol = 22; - * @return Whether the protocol field is set. */ - @java.lang.Override public boolean hasProtocol() { return protocol_ != null; } @@ -1404,9 +1300,7 @@ public boolean hasProtocol() { * * * .google.protobuf.UInt32Value protocol = 22; - * @return The protocol. */ - @java.lang.Override public com.google.protobuf.UInt32Value getProtocol() { return protocol_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : protocol_; } @@ -1417,7 +1311,6 @@ public com.google.protobuf.UInt32Value getProtocol() { * * .google.protobuf.UInt32Value protocol = 22; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getProtocolOrBuilder() { return getProtocol(); } @@ -1430,9 +1323,8 @@ public com.google.protobuf.UInt32ValueOrBuilder getProtocolOrBuilder() { * * * .SamplingAlgorithm sampling_algorithm = 23; - * @return The enum numeric value on the wire for samplingAlgorithm. */ - @java.lang.Override public int getSamplingAlgorithmValue() { + public int getSamplingAlgorithmValue() { return samplingAlgorithm_; } /** @@ -1441,12 +1333,11 @@ public com.google.protobuf.UInt32ValueOrBuilder getProtocolOrBuilder() { * * * .SamplingAlgorithm sampling_algorithm = 23; - * @return The samplingAlgorithm. */ - @java.lang.Override public org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm getSamplingAlgorithm() { + public SamplingAlgorithm getSamplingAlgorithm() { @SuppressWarnings("deprecation") - org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm result = org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm.valueOf(samplingAlgorithm_); - return result == null ? org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm.UNRECOGNIZED : result; + SamplingAlgorithm result = SamplingAlgorithm.valueOf(samplingAlgorithm_); + return result == null ? SamplingAlgorithm.UNRECOGNIZED : result; } public static final int SAMPLING_INTERVAL_FIELD_NUMBER = 24; @@ -1457,9 +1348,7 @@ public com.google.protobuf.UInt32ValueOrBuilder getProtocolOrBuilder() { * * * .google.protobuf.DoubleValue sampling_interval = 24; - * @return Whether the samplingInterval field is set. */ - @java.lang.Override public boolean hasSamplingInterval() { return samplingInterval_ != null; } @@ -1469,9 +1358,7 @@ public boolean hasSamplingInterval() { * * * .google.protobuf.DoubleValue sampling_interval = 24; - * @return The samplingInterval. */ - @java.lang.Override public com.google.protobuf.DoubleValue getSamplingInterval() { return samplingInterval_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : samplingInterval_; } @@ -1482,30 +1369,27 @@ public com.google.protobuf.DoubleValue getSamplingInterval() { * * .google.protobuf.DoubleValue sampling_interval = 24; */ - @java.lang.Override public com.google.protobuf.DoubleValueOrBuilder getSamplingIntervalOrBuilder() { return getSamplingInterval(); } public static final int SRC_ADDRESS_FIELD_NUMBER = 26; - private volatile java.lang.Object srcAddress_; + private volatile Object srcAddress_; /** *
    * Source address.
    * 
* * string src_address = 26; - * @return The srcAddress. */ - @java.lang.Override - public java.lang.String getSrcAddress() { - java.lang.Object ref = srcAddress_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; + public String getSrcAddress() { + Object ref = srcAddress_; + if (ref instanceof String) { + return (String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); srcAddress_ = s; return s; } @@ -1516,16 +1400,14 @@ public java.lang.String getSrcAddress() { * * * string src_address = 26; - * @return The bytes for srcAddress. */ - @java.lang.Override public com.google.protobuf.ByteString getSrcAddressBytes() { - java.lang.Object ref = srcAddress_; - if (ref instanceof java.lang.String) { + Object ref = srcAddress_; + if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); srcAddress_ = b; return b; } else { @@ -1534,24 +1416,22 @@ public java.lang.String getSrcAddress() { } public static final int SRC_HOSTNAME_FIELD_NUMBER = 27; - private volatile java.lang.Object srcHostname_; + private volatile Object srcHostname_; /** *
    * Source hostname.
    * 
* * string src_hostname = 27; - * @return The srcHostname. */ - @java.lang.Override - public java.lang.String getSrcHostname() { - java.lang.Object ref = srcHostname_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; + public String getSrcHostname() { + Object ref = srcHostname_; + if (ref instanceof String) { + return (String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); srcHostname_ = s; return s; } @@ -1562,16 +1442,14 @@ public java.lang.String getSrcHostname() { * * * string src_hostname = 27; - * @return The bytes for srcHostname. */ - @java.lang.Override public com.google.protobuf.ByteString getSrcHostnameBytes() { - java.lang.Object ref = srcHostname_; - if (ref instanceof java.lang.String) { + Object ref = srcHostname_; + if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); srcHostname_ = b; return b; } else { @@ -1587,9 +1465,7 @@ public java.lang.String getSrcHostname() { * * * .google.protobuf.UInt64Value src_as = 28; - * @return Whether the srcAs field is set. */ - @java.lang.Override public boolean hasSrcAs() { return srcAs_ != null; } @@ -1599,9 +1475,7 @@ public boolean hasSrcAs() { * * * .google.protobuf.UInt64Value src_as = 28; - * @return The srcAs. */ - @java.lang.Override public com.google.protobuf.UInt64Value getSrcAs() { return srcAs_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : srcAs_; } @@ -1612,7 +1486,6 @@ public com.google.protobuf.UInt64Value getSrcAs() { * * .google.protobuf.UInt64Value src_as = 28; */ - @java.lang.Override public com.google.protobuf.UInt64ValueOrBuilder getSrcAsOrBuilder() { return getSrcAs(); } @@ -1625,9 +1498,7 @@ public com.google.protobuf.UInt64ValueOrBuilder getSrcAsOrBuilder() { * * * .google.protobuf.UInt32Value src_mask_len = 29; - * @return Whether the srcMaskLen field is set. */ - @java.lang.Override public boolean hasSrcMaskLen() { return srcMaskLen_ != null; } @@ -1637,9 +1508,7 @@ public boolean hasSrcMaskLen() { * * * .google.protobuf.UInt32Value src_mask_len = 29; - * @return The srcMaskLen. */ - @java.lang.Override public com.google.protobuf.UInt32Value getSrcMaskLen() { return srcMaskLen_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : srcMaskLen_; } @@ -1650,7 +1519,6 @@ public com.google.protobuf.UInt32Value getSrcMaskLen() { * * .google.protobuf.UInt32Value src_mask_len = 29; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getSrcMaskLenOrBuilder() { return getSrcMaskLen(); } @@ -1663,9 +1531,7 @@ public com.google.protobuf.UInt32ValueOrBuilder getSrcMaskLenOrBuilder() { * * * .google.protobuf.UInt32Value src_port = 30; - * @return Whether the srcPort field is set. */ - @java.lang.Override public boolean hasSrcPort() { return srcPort_ != null; } @@ -1675,9 +1541,7 @@ public boolean hasSrcPort() { * * * .google.protobuf.UInt32Value src_port = 30; - * @return The srcPort. */ - @java.lang.Override public com.google.protobuf.UInt32Value getSrcPort() { return srcPort_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : srcPort_; } @@ -1688,7 +1552,6 @@ public com.google.protobuf.UInt32Value getSrcPort() { * * .google.protobuf.UInt32Value src_port = 30; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getSrcPortOrBuilder() { return getSrcPort(); } @@ -1701,9 +1564,7 @@ public com.google.protobuf.UInt32ValueOrBuilder getSrcPortOrBuilder() { * * * .google.protobuf.UInt32Value tcp_flags = 31; - * @return Whether the tcpFlags field is set. */ - @java.lang.Override public boolean hasTcpFlags() { return tcpFlags_ != null; } @@ -1713,9 +1574,7 @@ public boolean hasTcpFlags() { * * * .google.protobuf.UInt32Value tcp_flags = 31; - * @return The tcpFlags. */ - @java.lang.Override public com.google.protobuf.UInt32Value getTcpFlags() { return tcpFlags_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : tcpFlags_; } @@ -1726,7 +1585,6 @@ public com.google.protobuf.UInt32Value getTcpFlags() { * * .google.protobuf.UInt32Value tcp_flags = 31; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getTcpFlagsOrBuilder() { return getTcpFlags(); } @@ -1739,9 +1597,7 @@ public com.google.protobuf.UInt32ValueOrBuilder getTcpFlagsOrBuilder() { * * * .google.protobuf.UInt32Value tos = 32; - * @return Whether the tos field is set. */ - @java.lang.Override public boolean hasTos() { return tos_ != null; } @@ -1751,9 +1607,7 @@ public boolean hasTos() { * * * .google.protobuf.UInt32Value tos = 32; - * @return The tos. */ - @java.lang.Override public com.google.protobuf.UInt32Value getTos() { return tos_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : tos_; } @@ -1764,7 +1618,6 @@ public com.google.protobuf.UInt32Value getTos() { * * .google.protobuf.UInt32Value tos = 32; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getTosOrBuilder() { return getTos(); } @@ -1777,9 +1630,8 @@ public com.google.protobuf.UInt32ValueOrBuilder getTosOrBuilder() { * * * .NetflowVersion netflow_version = 33; - * @return The enum numeric value on the wire for netflowVersion. */ - @java.lang.Override public int getNetflowVersionValue() { + public int getNetflowVersionValue() { return netflowVersion_; } /** @@ -1788,33 +1640,30 @@ public com.google.protobuf.UInt32ValueOrBuilder getTosOrBuilder() { * * * .NetflowVersion netflow_version = 33; - * @return The netflowVersion. */ - @java.lang.Override public org.opennms.netmgt.flows.persistence.model.NetflowVersion getNetflowVersion() { + public NetflowVersion getNetflowVersion() { @SuppressWarnings("deprecation") - org.opennms.netmgt.flows.persistence.model.NetflowVersion result = org.opennms.netmgt.flows.persistence.model.NetflowVersion.valueOf(netflowVersion_); - return result == null ? org.opennms.netmgt.flows.persistence.model.NetflowVersion.UNRECOGNIZED : result; + NetflowVersion result = NetflowVersion.valueOf(netflowVersion_); + return result == null ? NetflowVersion.UNRECOGNIZED : result; } public static final int VLAN_FIELD_NUMBER = 34; - private volatile java.lang.Object vlan_; + private volatile Object vlan_; /** *
    * VLAN ID.
    * 
* * string vlan = 34; - * @return The vlan. */ - @java.lang.Override - public java.lang.String getVlan() { - java.lang.Object ref = vlan_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; + public String getVlan() { + Object ref = vlan_; + if (ref instanceof String) { + return (String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); vlan_ = s; return s; } @@ -1825,16 +1674,14 @@ public java.lang.String getVlan() { * * * string vlan = 34; - * @return The bytes for vlan. */ - @java.lang.Override public com.google.protobuf.ByteString getVlanBytes() { - java.lang.Object ref = vlan_; - if (ref instanceof java.lang.String) { + Object ref = vlan_; + if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); vlan_ = b; return b; } else { @@ -1843,114 +1690,95 @@ public java.lang.String getVlan() { } public static final int SRC_NODE_FIELD_NUMBER = 35; - private org.opennms.netmgt.flows.persistence.model.NodeInfo srcNode_; + private NodeInfo srcNode_; /** * .NodeInfo src_node = 35; - * @return Whether the srcNode field is set. */ - @java.lang.Override public boolean hasSrcNode() { return srcNode_ != null; } /** * .NodeInfo src_node = 35; - * @return The srcNode. */ - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.NodeInfo getSrcNode() { - return srcNode_ == null ? org.opennms.netmgt.flows.persistence.model.NodeInfo.getDefaultInstance() : srcNode_; + public NodeInfo getSrcNode() { + return srcNode_ == null ? NodeInfo.getDefaultInstance() : srcNode_; } /** * .NodeInfo src_node = 35; */ - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder getSrcNodeOrBuilder() { + public NodeInfoOrBuilder getSrcNodeOrBuilder() { return getSrcNode(); } public static final int EXPORTER_NODE_FIELD_NUMBER = 36; - private org.opennms.netmgt.flows.persistence.model.NodeInfo exporterNode_; + private NodeInfo exporterNode_; /** * .NodeInfo exporter_node = 36; - * @return Whether the exporterNode field is set. */ - @java.lang.Override public boolean hasExporterNode() { return exporterNode_ != null; } /** * .NodeInfo exporter_node = 36; - * @return The exporterNode. */ - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.NodeInfo getExporterNode() { - return exporterNode_ == null ? org.opennms.netmgt.flows.persistence.model.NodeInfo.getDefaultInstance() : exporterNode_; + public NodeInfo getExporterNode() { + return exporterNode_ == null ? NodeInfo.getDefaultInstance() : exporterNode_; } /** * .NodeInfo exporter_node = 36; */ - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder getExporterNodeOrBuilder() { + public NodeInfoOrBuilder getExporterNodeOrBuilder() { return getExporterNode(); } public static final int DEST_NODE_FIELD_NUMBER = 37; - private org.opennms.netmgt.flows.persistence.model.NodeInfo destNode_; + private NodeInfo destNode_; /** * .NodeInfo dest_node = 37; - * @return Whether the destNode field is set. */ - @java.lang.Override public boolean hasDestNode() { return destNode_ != null; } /** * .NodeInfo dest_node = 37; - * @return The destNode. */ - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.NodeInfo getDestNode() { - return destNode_ == null ? org.opennms.netmgt.flows.persistence.model.NodeInfo.getDefaultInstance() : destNode_; + public NodeInfo getDestNode() { + return destNode_ == null ? NodeInfo.getDefaultInstance() : destNode_; } /** * .NodeInfo dest_node = 37; */ - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder getDestNodeOrBuilder() { + public NodeInfoOrBuilder getDestNodeOrBuilder() { return getDestNode(); } public static final int APPLICATION_FIELD_NUMBER = 38; - private volatile java.lang.Object application_; + private volatile Object application_; /** * string application = 38; - * @return The application. */ - @java.lang.Override - public java.lang.String getApplication() { - java.lang.Object ref = application_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; + public String getApplication() { + Object ref = application_; + if (ref instanceof String) { + return (String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); application_ = s; return s; } } /** * string application = 38; - * @return The bytes for application. */ - @java.lang.Override public com.google.protobuf.ByteString getApplicationBytes() { - java.lang.Object ref = application_; - if (ref instanceof java.lang.String) { + Object ref = application_; + if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); application_ = b; return b; } else { @@ -1959,36 +1787,32 @@ public java.lang.String getApplication() { } public static final int HOST_FIELD_NUMBER = 39; - private volatile java.lang.Object host_; + private volatile Object host_; /** * string host = 39; - * @return The host. */ - @java.lang.Override - public java.lang.String getHost() { - java.lang.Object ref = host_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; + public String getHost() { + Object ref = host_; + if (ref instanceof String) { + return (String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); host_ = s; return s; } } /** * string host = 39; - * @return The bytes for host. */ - @java.lang.Override public com.google.protobuf.ByteString getHostBytes() { - java.lang.Object ref = host_; - if (ref instanceof java.lang.String) { + Object ref = host_; + if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); host_ = b; return b; } else { @@ -1997,36 +1821,32 @@ public java.lang.String getHost() { } public static final int LOCATION_FIELD_NUMBER = 40; - private volatile java.lang.Object location_; + private volatile Object location_; /** * string location = 40; - * @return The location. */ - @java.lang.Override - public java.lang.String getLocation() { - java.lang.Object ref = location_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; + public String getLocation() { + Object ref = location_; + if (ref instanceof String) { + return (String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); location_ = s; return s; } } /** * string location = 40; - * @return The bytes for location. */ - @java.lang.Override public com.google.protobuf.ByteString getLocationBytes() { - java.lang.Object ref = location_; - if (ref instanceof java.lang.String) { + Object ref = location_; + if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); location_ = b; return b; } else { @@ -2038,95 +1858,51 @@ public java.lang.String getLocation() { private int srcLocality_; /** * .Locality src_locality = 41; - * @return The enum numeric value on the wire for srcLocality. */ - @java.lang.Override public int getSrcLocalityValue() { + public int getSrcLocalityValue() { return srcLocality_; } /** * .Locality src_locality = 41; - * @return The srcLocality. */ - @java.lang.Override public org.opennms.netmgt.flows.persistence.model.Locality getSrcLocality() { + public Locality getSrcLocality() { @SuppressWarnings("deprecation") - org.opennms.netmgt.flows.persistence.model.Locality result = org.opennms.netmgt.flows.persistence.model.Locality.valueOf(srcLocality_); - return result == null ? org.opennms.netmgt.flows.persistence.model.Locality.UNRECOGNIZED : result; + Locality result = Locality.valueOf(srcLocality_); + return result == null ? Locality.UNRECOGNIZED : result; } public static final int DST_LOCALITY_FIELD_NUMBER = 42; private int dstLocality_; /** * .Locality dst_locality = 42; - * @return The enum numeric value on the wire for dstLocality. */ - @java.lang.Override public int getDstLocalityValue() { + public int getDstLocalityValue() { return dstLocality_; } /** * .Locality dst_locality = 42; - * @return The dstLocality. */ - @java.lang.Override public org.opennms.netmgt.flows.persistence.model.Locality getDstLocality() { + public Locality getDstLocality() { @SuppressWarnings("deprecation") - org.opennms.netmgt.flows.persistence.model.Locality result = org.opennms.netmgt.flows.persistence.model.Locality.valueOf(dstLocality_); - return result == null ? org.opennms.netmgt.flows.persistence.model.Locality.UNRECOGNIZED : result; + Locality result = Locality.valueOf(dstLocality_); + return result == null ? Locality.UNRECOGNIZED : result; } public static final int FLOW_LOCALITY_FIELD_NUMBER = 43; private int flowLocality_; /** * .Locality flow_locality = 43; - * @return The enum numeric value on the wire for flowLocality. */ - @java.lang.Override public int getFlowLocalityValue() { + public int getFlowLocalityValue() { return flowLocality_; } /** * .Locality flow_locality = 43; - * @return The flowLocality. */ - @java.lang.Override public org.opennms.netmgt.flows.persistence.model.Locality getFlowLocality() { + public Locality getFlowLocality() { @SuppressWarnings("deprecation") - org.opennms.netmgt.flows.persistence.model.Locality result = org.opennms.netmgt.flows.persistence.model.Locality.valueOf(flowLocality_); - return result == null ? org.opennms.netmgt.flows.persistence.model.Locality.UNRECOGNIZED : result; - } - - public static final int CONVO_KEY_FIELD_NUMBER = 44; - private volatile java.lang.Object convoKey_; - /** - * string convo_key = 44; - * @return The convoKey. - */ - @java.lang.Override - public java.lang.String getConvoKey() { - java.lang.Object ref = convoKey_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - convoKey_ = s; - return s; - } - } - /** - * string convo_key = 44; - * @return The bytes for convoKey. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getConvoKeyBytes() { - java.lang.Object ref = convoKey_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - convoKey_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + Locality result = Locality.valueOf(flowLocality_); + return result == null ? Locality.UNRECOGNIZED : result; } public static final int CLOCK_CORRECTION_FIELD_NUMBER = 45; @@ -2137,9 +1913,7 @@ public java.lang.String getConvoKey() { * * * uint64 clock_correction = 45; - * @return The clockCorrection. */ - @java.lang.Override public long getClockCorrection() { return clockCorrection_; } @@ -2152,9 +1926,7 @@ public long getClockCorrection() { * * * .google.protobuf.UInt32Value dscp = 46; - * @return Whether the dscp field is set. */ - @java.lang.Override public boolean hasDscp() { return dscp_ != null; } @@ -2164,9 +1936,7 @@ public boolean hasDscp() { * * * .google.protobuf.UInt32Value dscp = 46; - * @return The dscp. */ - @java.lang.Override public com.google.protobuf.UInt32Value getDscp() { return dscp_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : dscp_; } @@ -2177,7 +1947,6 @@ public com.google.protobuf.UInt32Value getDscp() { * * .google.protobuf.UInt32Value dscp = 46; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getDscpOrBuilder() { return getDscp(); } @@ -2190,9 +1959,7 @@ public com.google.protobuf.UInt32ValueOrBuilder getDscpOrBuilder() { * * * .google.protobuf.UInt32Value ecn = 47; - * @return Whether the ecn field is set. */ - @java.lang.Override public boolean hasEcn() { return ecn_ != null; } @@ -2202,9 +1969,7 @@ public boolean hasEcn() { * * * .google.protobuf.UInt32Value ecn = 47; - * @return The ecn. */ - @java.lang.Override public com.google.protobuf.UInt32Value getEcn() { return ecn_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : ecn_; } @@ -2215,13 +1980,12 @@ public com.google.protobuf.UInt32Value getEcn() { * * .google.protobuf.UInt32Value ecn = 47; */ - @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getEcnOrBuilder() { return getEcn(); } private byte memoizedIsInitialized = -1; - @java.lang.Override + @Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -2231,7 +1995,7 @@ public final boolean isInitialized() { return true; } - @java.lang.Override + @Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (timestamp_ != 0L) { @@ -2240,7 +2004,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (numBytes_ != null) { output.writeMessage(2, getNumBytes()); } - if (direction_ != org.opennms.netmgt.flows.persistence.model.Direction.INGRESS.getNumber()) { + if (direction_ != Direction.INGRESS.getNumber()) { output.writeEnum(3, direction_); } if (!getDstAddressBytes().isEmpty()) { @@ -2300,7 +2064,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (protocol_ != null) { output.writeMessage(22, getProtocol()); } - if (samplingAlgorithm_ != org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm.UNASSIGNED.getNumber()) { + if (samplingAlgorithm_ != SamplingAlgorithm.UNASSIGNED.getNumber()) { output.writeEnum(23, samplingAlgorithm_); } if (samplingInterval_ != null) { @@ -2327,7 +2091,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (tos_ != null) { output.writeMessage(32, getTos()); } - if (netflowVersion_ != org.opennms.netmgt.flows.persistence.model.NetflowVersion.V5.getNumber()) { + if (netflowVersion_ != NetflowVersion.V5.getNumber()) { output.writeEnum(33, netflowVersion_); } if (!getVlanBytes().isEmpty()) { @@ -2351,18 +2115,15 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!getLocationBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 40, location_); } - if (srcLocality_ != org.opennms.netmgt.flows.persistence.model.Locality.PUBLIC.getNumber()) { + if (srcLocality_ != Locality.PUBLIC.getNumber()) { output.writeEnum(41, srcLocality_); } - if (dstLocality_ != org.opennms.netmgt.flows.persistence.model.Locality.PUBLIC.getNumber()) { + if (dstLocality_ != Locality.PUBLIC.getNumber()) { output.writeEnum(42, dstLocality_); } - if (flowLocality_ != org.opennms.netmgt.flows.persistence.model.Locality.PUBLIC.getNumber()) { + if (flowLocality_ != Locality.PUBLIC.getNumber()) { output.writeEnum(43, flowLocality_); } - if (!getConvoKeyBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 44, convoKey_); - } if (clockCorrection_ != 0L) { output.writeUInt64(45, clockCorrection_); } @@ -2375,7 +2136,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) unknownFields.writeTo(output); } - @java.lang.Override + @Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -2389,7 +2150,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getNumBytes()); } - if (direction_ != org.opennms.netmgt.flows.persistence.model.Direction.INGRESS.getNumber()) { + if (direction_ != Direction.INGRESS.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(3, direction_); } @@ -2465,7 +2226,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(22, getProtocol()); } - if (samplingAlgorithm_ != org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm.UNASSIGNED.getNumber()) { + if (samplingAlgorithm_ != SamplingAlgorithm.UNASSIGNED.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(23, samplingAlgorithm_); } @@ -2499,7 +2260,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(32, getTos()); } - if (netflowVersion_ != org.opennms.netmgt.flows.persistence.model.NetflowVersion.V5.getNumber()) { + if (netflowVersion_ != NetflowVersion.V5.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(33, netflowVersion_); } @@ -2527,21 +2288,18 @@ public int getSerializedSize() { if (!getLocationBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(40, location_); } - if (srcLocality_ != org.opennms.netmgt.flows.persistence.model.Locality.PUBLIC.getNumber()) { + if (srcLocality_ != Locality.PUBLIC.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(41, srcLocality_); } - if (dstLocality_ != org.opennms.netmgt.flows.persistence.model.Locality.PUBLIC.getNumber()) { + if (dstLocality_ != Locality.PUBLIC.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(42, dstLocality_); } - if (flowLocality_ != org.opennms.netmgt.flows.persistence.model.Locality.PUBLIC.getNumber()) { + if (flowLocality_ != Locality.PUBLIC.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(43, flowLocality_); } - if (!getConvoKeyBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(44, convoKey_); - } if (clockCorrection_ != 0L) { size += com.google.protobuf.CodedOutputStream .computeUInt64Size(45, clockCorrection_); @@ -2559,15 +2317,15 @@ public int getSerializedSize() { return size; } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { + @Override + public boolean equals(final Object obj) { if (obj == this) { return true; } - if (!(obj instanceof org.opennms.netmgt.flows.persistence.model.FlowDocument)) { + if (!(obj instanceof FlowDocument)) { return super.equals(obj); } - org.opennms.netmgt.flows.persistence.model.FlowDocument other = (org.opennms.netmgt.flows.persistence.model.FlowDocument) obj; + FlowDocument other = (FlowDocument) obj; if (getTimestamp() != other.getTimestamp()) return false; @@ -2722,8 +2480,6 @@ public boolean equals(final java.lang.Object obj) { if (srcLocality_ != other.srcLocality_) return false; if (dstLocality_ != other.dstLocality_) return false; if (flowLocality_ != other.flowLocality_) return false; - if (!getConvoKey() - .equals(other.getConvoKey())) return false; if (getClockCorrection() != other.getClockCorrection()) return false; if (hasDscp() != other.hasDscp()) return false; @@ -2740,7 +2496,7 @@ public boolean equals(final java.lang.Object obj) { return true; } - @java.lang.Override + @Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; @@ -2882,8 +2638,6 @@ public int hashCode() { hash = (53 * hash) + dstLocality_; hash = (37 * hash) + FLOW_LOCALITY_FIELD_NUMBER; hash = (53 * hash) + flowLocality_; - hash = (37 * hash) + CONVO_KEY_FIELD_NUMBER; - hash = (53 * hash) + getConvoKey().hashCode(); hash = (37 * hash) + CLOCK_CORRECTION_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getClockCorrection()); @@ -2900,69 +2654,69 @@ public int hashCode() { return hash; } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseFrom( + public static FlowDocument parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseFrom( + public static FlowDocument parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseFrom( + public static FlowDocument parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseFrom( + public static FlowDocument parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseFrom(byte[] data) + public static FlowDocument parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseFrom( + public static FlowDocument parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseFrom(java.io.InputStream input) + public static FlowDocument parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseFrom( + public static FlowDocument parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseDelimitedFrom(java.io.InputStream input) + public static FlowDocument parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseDelimitedFrom( + public static FlowDocument parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseFrom( + public static FlowDocument parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseFrom( + public static FlowDocument parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -2970,23 +2724,23 @@ public static org.opennms.netmgt.flows.persistence.model.FlowDocument parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } - @java.lang.Override + @Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(org.opennms.netmgt.flows.persistence.model.FlowDocument prototype) { + public static Builder newBuilder(FlowDocument prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - @java.lang.Override + @Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @java.lang.Override + @Override protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + BuilderParent parent) { Builder builder = new Builder(parent); return builder; } @@ -2996,18 +2750,18 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:FlowDocument) - org.opennms.netmgt.flows.persistence.model.FlowDocumentOrBuilder { + FlowDocumentOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.internal_static_FlowDocument_descriptor; + return EnrichedFlowProtos.internal_static_FlowDocument_descriptor; } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + @Override + protected FieldAccessorTable internalGetFieldAccessorTable() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.internal_static_FlowDocument_fieldAccessorTable + return EnrichedFlowProtos.internal_static_FlowDocument_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.opennms.netmgt.flows.persistence.model.FlowDocument.class, org.opennms.netmgt.flows.persistence.model.FlowDocument.Builder.class); + FlowDocument.class, Builder.class); } // Construct using org.opennms.netmgt.flows.persistence.model.FlowDocument.newBuilder() @@ -3016,7 +2770,7 @@ private Builder() { } private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } @@ -3025,7 +2779,7 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } - @java.lang.Override + @Override public Builder clear() { super.clear(); timestamp_ = 0L; @@ -3212,8 +2966,6 @@ public Builder clear() { flowLocality_ = 0; - convoKey_ = ""; - clockCorrection_ = 0L; if (dscpBuilder_ == null) { @@ -3231,29 +2983,29 @@ public Builder clear() { return this; } - @java.lang.Override + @Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.internal_static_FlowDocument_descriptor; + return EnrichedFlowProtos.internal_static_FlowDocument_descriptor; } - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.FlowDocument getDefaultInstanceForType() { - return org.opennms.netmgt.flows.persistence.model.FlowDocument.getDefaultInstance(); + @Override + public FlowDocument getDefaultInstanceForType() { + return FlowDocument.getDefaultInstance(); } - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.FlowDocument build() { - org.opennms.netmgt.flows.persistence.model.FlowDocument result = buildPartial(); + @Override + public FlowDocument build() { + FlowDocument result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.FlowDocument buildPartial() { - org.opennms.netmgt.flows.persistence.model.FlowDocument result = new org.opennms.netmgt.flows.persistence.model.FlowDocument(this); + @Override + public FlowDocument buildPartial() { + FlowDocument result = new FlowDocument(this); result.timestamp_ = timestamp_; if (numBytesBuilder_ == null) { result.numBytes_ = numBytes_; @@ -3396,7 +3148,6 @@ public org.opennms.netmgt.flows.persistence.model.FlowDocument buildPartial() { result.srcLocality_ = srcLocality_; result.dstLocality_ = dstLocality_; result.flowLocality_ = flowLocality_; - result.convoKey_ = convoKey_; result.clockCorrection_ = clockCorrection_; if (dscpBuilder_ == null) { result.dscp_ = dscp_; @@ -3412,50 +3163,50 @@ public org.opennms.netmgt.flows.persistence.model.FlowDocument buildPartial() { return result; } - @java.lang.Override + @Override public Builder clone() { return super.clone(); } - @java.lang.Override + @Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { + Object value) { return super.setField(field, value); } - @java.lang.Override + @Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } - @java.lang.Override + @Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } - @java.lang.Override + @Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { + int index, Object value) { return super.setRepeatedField(field, index, value); } - @java.lang.Override + @Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { + Object value) { return super.addRepeatedField(field, value); } - @java.lang.Override + @Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.opennms.netmgt.flows.persistence.model.FlowDocument) { - return mergeFrom((org.opennms.netmgt.flows.persistence.model.FlowDocument)other); + if (other instanceof FlowDocument) { + return mergeFrom((FlowDocument)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(org.opennms.netmgt.flows.persistence.model.FlowDocument other) { - if (other == org.opennms.netmgt.flows.persistence.model.FlowDocument.getDefaultInstance()) return this; + public Builder mergeFrom(FlowDocument other) { + if (other == FlowDocument.getDefaultInstance()) return this; if (other.getTimestamp() != 0L) { setTimestamp(other.getTimestamp()); } @@ -3592,10 +3343,6 @@ public Builder mergeFrom(org.opennms.netmgt.flows.persistence.model.FlowDocument if (other.flowLocality_ != 0) { setFlowLocalityValue(other.getFlowLocalityValue()); } - if (!other.getConvoKey().isEmpty()) { - convoKey_ = other.convoKey_; - onChanged(); - } if (other.getClockCorrection() != 0L) { setClockCorrection(other.getClockCorrection()); } @@ -3610,21 +3357,21 @@ public Builder mergeFrom(org.opennms.netmgt.flows.persistence.model.FlowDocument return this; } - @java.lang.Override + @Override public final boolean isInitialized() { return true; } - @java.lang.Override + @Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - org.opennms.netmgt.flows.persistence.model.FlowDocument parsedMessage = null; + FlowDocument parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.opennms.netmgt.flows.persistence.model.FlowDocument) e.getUnfinishedMessage(); + parsedMessage = (FlowDocument) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -3641,9 +3388,7 @@ public Builder mergeFrom( * * * uint64 timestamp = 1; - * @return The timestamp. */ - @java.lang.Override public long getTimestamp() { return timestamp_; } @@ -3653,8 +3398,6 @@ public long getTimestamp() { * * * uint64 timestamp = 1; - * @param value The timestamp to set. - * @return This builder for chaining. */ public Builder setTimestamp(long value) { @@ -3668,7 +3411,6 @@ public Builder setTimestamp(long value) { * * * uint64 timestamp = 1; - * @return This builder for chaining. */ public Builder clearTimestamp() { @@ -3686,7 +3428,6 @@ public Builder clearTimestamp() { * * * .google.protobuf.UInt64Value num_bytes = 2; - * @return Whether the numBytes field is set. */ public boolean hasNumBytes() { return numBytesBuilder_ != null || numBytes_ != null; @@ -3697,7 +3438,6 @@ public boolean hasNumBytes() { * * * .google.protobuf.UInt64Value num_bytes = 2; - * @return The numBytes. */ public com.google.protobuf.UInt64Value getNumBytes() { if (numBytesBuilder_ == null) { @@ -3839,9 +3579,8 @@ public com.google.protobuf.UInt64ValueOrBuilder getNumBytesOrBuilder() { * * * .Direction direction = 3; - * @return The enum numeric value on the wire for direction. */ - @java.lang.Override public int getDirectionValue() { + public int getDirectionValue() { return direction_; } /** @@ -3850,11 +3589,8 @@ public com.google.protobuf.UInt64ValueOrBuilder getNumBytesOrBuilder() { * * * .Direction direction = 3; - * @param value The enum numeric value on the wire for direction to set. - * @return This builder for chaining. */ public Builder setDirectionValue(int value) { - direction_ = value; onChanged(); return this; @@ -3865,13 +3601,11 @@ public Builder setDirectionValue(int value) { * * * .Direction direction = 3; - * @return The direction. */ - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.Direction getDirection() { + public Direction getDirection() { @SuppressWarnings("deprecation") - org.opennms.netmgt.flows.persistence.model.Direction result = org.opennms.netmgt.flows.persistence.model.Direction.valueOf(direction_); - return result == null ? org.opennms.netmgt.flows.persistence.model.Direction.UNRECOGNIZED : result; + Direction result = Direction.valueOf(direction_); + return result == null ? Direction.UNRECOGNIZED : result; } /** *
@@ -3879,10 +3613,8 @@ public org.opennms.netmgt.flows.persistence.model.Direction getDirection() {
      * 
* * .Direction direction = 3; - * @param value The direction to set. - * @return This builder for chaining. */ - public Builder setDirection(org.opennms.netmgt.flows.persistence.model.Direction value) { + public Builder setDirection(Direction value) { if (value == null) { throw new NullPointerException(); } @@ -3897,7 +3629,6 @@ public Builder setDirection(org.opennms.netmgt.flows.persistence.model.Direction * * * .Direction direction = 3; - * @return This builder for chaining. */ public Builder clearDirection() { @@ -3906,25 +3637,24 @@ public Builder clearDirection() { return this; } - private java.lang.Object dstAddress_ = ""; + private Object dstAddress_ = ""; /** *
      *  Destination address.
      * 
* * string dst_address = 4; - * @return The dstAddress. */ - public java.lang.String getDstAddress() { - java.lang.Object ref = dstAddress_; - if (!(ref instanceof java.lang.String)) { + public String getDstAddress() { + Object ref = dstAddress_; + if (!(ref instanceof String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); dstAddress_ = s; return s; } else { - return (java.lang.String) ref; + return (String) ref; } } /** @@ -3933,15 +3663,14 @@ public java.lang.String getDstAddress() { * * * string dst_address = 4; - * @return The bytes for dstAddress. */ public com.google.protobuf.ByteString getDstAddressBytes() { - java.lang.Object ref = dstAddress_; + Object ref = dstAddress_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); dstAddress_ = b; return b; } else { @@ -3954,11 +3683,9 @@ public java.lang.String getDstAddress() { * * * string dst_address = 4; - * @param value The dstAddress to set. - * @return This builder for chaining. */ public Builder setDstAddress( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -3973,7 +3700,6 @@ public Builder setDstAddress( * * * string dst_address = 4; - * @return This builder for chaining. */ public Builder clearDstAddress() { @@ -3987,8 +3713,6 @@ public Builder clearDstAddress() { * * * string dst_address = 4; - * @param value The bytes for dstAddress to set. - * @return This builder for chaining. */ public Builder setDstAddressBytes( com.google.protobuf.ByteString value) { @@ -4002,25 +3726,24 @@ public Builder setDstAddressBytes( return this; } - private java.lang.Object dstHostname_ = ""; + private Object dstHostname_ = ""; /** *
      * Destination address hostname.
      * 
* * string dst_hostname = 5; - * @return The dstHostname. */ - public java.lang.String getDstHostname() { - java.lang.Object ref = dstHostname_; - if (!(ref instanceof java.lang.String)) { + public String getDstHostname() { + Object ref = dstHostname_; + if (!(ref instanceof String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); dstHostname_ = s; return s; } else { - return (java.lang.String) ref; + return (String) ref; } } /** @@ -4029,15 +3752,14 @@ public java.lang.String getDstHostname() { * * * string dst_hostname = 5; - * @return The bytes for dstHostname. */ public com.google.protobuf.ByteString getDstHostnameBytes() { - java.lang.Object ref = dstHostname_; + Object ref = dstHostname_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); dstHostname_ = b; return b; } else { @@ -4050,11 +3772,9 @@ public java.lang.String getDstHostname() { * * * string dst_hostname = 5; - * @param value The dstHostname to set. - * @return This builder for chaining. */ public Builder setDstHostname( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -4069,7 +3789,6 @@ public Builder setDstHostname( * * * string dst_hostname = 5; - * @return This builder for chaining. */ public Builder clearDstHostname() { @@ -4083,8 +3802,6 @@ public Builder clearDstHostname() { * * * string dst_hostname = 5; - * @param value The bytes for dstHostname to set. - * @return This builder for chaining. */ public Builder setDstHostnameBytes( com.google.protobuf.ByteString value) { @@ -4107,7 +3824,6 @@ public Builder setDstHostnameBytes( * * * .google.protobuf.UInt64Value dst_as = 6; - * @return Whether the dstAs field is set. */ public boolean hasDstAs() { return dstAsBuilder_ != null || dstAs_ != null; @@ -4118,7 +3834,6 @@ public boolean hasDstAs() { * * * .google.protobuf.UInt64Value dst_as = 6; - * @return The dstAs. */ public com.google.protobuf.UInt64Value getDstAs() { if (dstAsBuilder_ == null) { @@ -4262,7 +3977,6 @@ public com.google.protobuf.UInt64ValueOrBuilder getDstAsOrBuilder() { * * * .google.protobuf.UInt32Value dst_mask_len = 7; - * @return Whether the dstMaskLen field is set. */ public boolean hasDstMaskLen() { return dstMaskLenBuilder_ != null || dstMaskLen_ != null; @@ -4273,7 +3987,6 @@ public boolean hasDstMaskLen() { * * * .google.protobuf.UInt32Value dst_mask_len = 7; - * @return The dstMaskLen. */ public com.google.protobuf.UInt32Value getDstMaskLen() { if (dstMaskLenBuilder_ == null) { @@ -4417,7 +4130,6 @@ public com.google.protobuf.UInt32ValueOrBuilder getDstMaskLenOrBuilder() { * * * .google.protobuf.UInt32Value dst_port = 8; - * @return Whether the dstPort field is set. */ public boolean hasDstPort() { return dstPortBuilder_ != null || dstPort_ != null; @@ -4428,7 +4140,6 @@ public boolean hasDstPort() { * * * .google.protobuf.UInt32Value dst_port = 8; - * @return The dstPort. */ public com.google.protobuf.UInt32Value getDstPort() { if (dstPortBuilder_ == null) { @@ -4572,7 +4283,6 @@ public com.google.protobuf.UInt32ValueOrBuilder getDstPortOrBuilder() { * * * .google.protobuf.UInt32Value engine_id = 9; - * @return Whether the engineId field is set. */ public boolean hasEngineId() { return engineIdBuilder_ != null || engineId_ != null; @@ -4583,7 +4293,6 @@ public boolean hasEngineId() { * * * .google.protobuf.UInt32Value engine_id = 9; - * @return The engineId. */ public com.google.protobuf.UInt32Value getEngineId() { if (engineIdBuilder_ == null) { @@ -4727,7 +4436,6 @@ public com.google.protobuf.UInt32ValueOrBuilder getEngineIdOrBuilder() { * * * .google.protobuf.UInt32Value engine_type = 10; - * @return Whether the engineType field is set. */ public boolean hasEngineType() { return engineTypeBuilder_ != null || engineType_ != null; @@ -4738,7 +4446,6 @@ public boolean hasEngineType() { * * * .google.protobuf.UInt32Value engine_type = 10; - * @return The engineType. */ public com.google.protobuf.UInt32Value getEngineType() { if (engineTypeBuilder_ == null) { @@ -4882,7 +4589,6 @@ public com.google.protobuf.UInt32ValueOrBuilder getEngineTypeOrBuilder() { * * * .google.protobuf.UInt64Value delta_switched = 11; - * @return Whether the deltaSwitched field is set. */ public boolean hasDeltaSwitched() { return deltaSwitchedBuilder_ != null || deltaSwitched_ != null; @@ -4893,7 +4599,6 @@ public boolean hasDeltaSwitched() { * * * .google.protobuf.UInt64Value delta_switched = 11; - * @return The deltaSwitched. */ public com.google.protobuf.UInt64Value getDeltaSwitched() { if (deltaSwitchedBuilder_ == null) { @@ -5037,7 +4742,6 @@ public com.google.protobuf.UInt64ValueOrBuilder getDeltaSwitchedOrBuilder() { * * * .google.protobuf.UInt64Value first_switched = 12; - * @return Whether the firstSwitched field is set. */ public boolean hasFirstSwitched() { return firstSwitchedBuilder_ != null || firstSwitched_ != null; @@ -5048,7 +4752,6 @@ public boolean hasFirstSwitched() { * * * .google.protobuf.UInt64Value first_switched = 12; - * @return The firstSwitched. */ public com.google.protobuf.UInt64Value getFirstSwitched() { if (firstSwitchedBuilder_ == null) { @@ -5192,7 +4895,6 @@ public com.google.protobuf.UInt64ValueOrBuilder getFirstSwitchedOrBuilder() { * * * .google.protobuf.UInt64Value last_switched = 13; - * @return Whether the lastSwitched field is set. */ public boolean hasLastSwitched() { return lastSwitchedBuilder_ != null || lastSwitched_ != null; @@ -5203,7 +4905,6 @@ public boolean hasLastSwitched() { * * * .google.protobuf.UInt64Value last_switched = 13; - * @return The lastSwitched. */ public com.google.protobuf.UInt64Value getLastSwitched() { if (lastSwitchedBuilder_ == null) { @@ -5347,7 +5048,6 @@ public com.google.protobuf.UInt64ValueOrBuilder getLastSwitchedOrBuilder() { * * * .google.protobuf.UInt32Value num_flow_records = 14; - * @return Whether the numFlowRecords field is set. */ public boolean hasNumFlowRecords() { return numFlowRecordsBuilder_ != null || numFlowRecords_ != null; @@ -5358,7 +5058,6 @@ public boolean hasNumFlowRecords() { * * * .google.protobuf.UInt32Value num_flow_records = 14; - * @return The numFlowRecords. */ public com.google.protobuf.UInt32Value getNumFlowRecords() { if (numFlowRecordsBuilder_ == null) { @@ -5502,7 +5201,6 @@ public com.google.protobuf.UInt32ValueOrBuilder getNumFlowRecordsOrBuilder() { * * * .google.protobuf.UInt64Value num_packets = 15; - * @return Whether the numPackets field is set. */ public boolean hasNumPackets() { return numPacketsBuilder_ != null || numPackets_ != null; @@ -5513,7 +5211,6 @@ public boolean hasNumPackets() { * * * .google.protobuf.UInt64Value num_packets = 15; - * @return The numPackets. */ public com.google.protobuf.UInt64Value getNumPackets() { if (numPacketsBuilder_ == null) { @@ -5657,7 +5354,6 @@ public com.google.protobuf.UInt64ValueOrBuilder getNumPacketsOrBuilder() { * * * .google.protobuf.UInt64Value flow_seq_num = 16; - * @return Whether the flowSeqNum field is set. */ public boolean hasFlowSeqNum() { return flowSeqNumBuilder_ != null || flowSeqNum_ != null; @@ -5668,7 +5364,6 @@ public boolean hasFlowSeqNum() { * * * .google.protobuf.UInt64Value flow_seq_num = 16; - * @return The flowSeqNum. */ public com.google.protobuf.UInt64Value getFlowSeqNum() { if (flowSeqNumBuilder_ == null) { @@ -5812,7 +5507,6 @@ public com.google.protobuf.UInt64ValueOrBuilder getFlowSeqNumOrBuilder() { * * * .google.protobuf.UInt32Value input_snmp_ifindex = 17; - * @return Whether the inputSnmpIfindex field is set. */ public boolean hasInputSnmpIfindex() { return inputSnmpIfindexBuilder_ != null || inputSnmpIfindex_ != null; @@ -5823,7 +5517,6 @@ public boolean hasInputSnmpIfindex() { * * * .google.protobuf.UInt32Value input_snmp_ifindex = 17; - * @return The inputSnmpIfindex. */ public com.google.protobuf.UInt32Value getInputSnmpIfindex() { if (inputSnmpIfindexBuilder_ == null) { @@ -5967,7 +5660,6 @@ public com.google.protobuf.UInt32ValueOrBuilder getInputSnmpIfindexOrBuilder() { * * * .google.protobuf.UInt32Value output_snmp_ifindex = 18; - * @return Whether the outputSnmpIfindex field is set. */ public boolean hasOutputSnmpIfindex() { return outputSnmpIfindexBuilder_ != null || outputSnmpIfindex_ != null; @@ -5978,7 +5670,6 @@ public boolean hasOutputSnmpIfindex() { * * * .google.protobuf.UInt32Value output_snmp_ifindex = 18; - * @return The outputSnmpIfindex. */ public com.google.protobuf.UInt32Value getOutputSnmpIfindex() { if (outputSnmpIfindexBuilder_ == null) { @@ -6122,7 +5813,6 @@ public com.google.protobuf.UInt32ValueOrBuilder getOutputSnmpIfindexOrBuilder() * * * .google.protobuf.UInt32Value ip_protocol_version = 19; - * @return Whether the ipProtocolVersion field is set. */ public boolean hasIpProtocolVersion() { return ipProtocolVersionBuilder_ != null || ipProtocolVersion_ != null; @@ -6133,7 +5823,6 @@ public boolean hasIpProtocolVersion() { * * * .google.protobuf.UInt32Value ip_protocol_version = 19; - * @return The ipProtocolVersion. */ public com.google.protobuf.UInt32Value getIpProtocolVersion() { if (ipProtocolVersionBuilder_ == null) { @@ -6268,25 +5957,24 @@ public com.google.protobuf.UInt32ValueOrBuilder getIpProtocolVersionOrBuilder() return ipProtocolVersionBuilder_; } - private java.lang.Object nextHopAddress_ = ""; + private Object nextHopAddress_ = ""; /** *
      * Next hop IpAddress.
      * 
* * string next_hop_address = 20; - * @return The nextHopAddress. */ - public java.lang.String getNextHopAddress() { - java.lang.Object ref = nextHopAddress_; - if (!(ref instanceof java.lang.String)) { + public String getNextHopAddress() { + Object ref = nextHopAddress_; + if (!(ref instanceof String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); nextHopAddress_ = s; return s; } else { - return (java.lang.String) ref; + return (String) ref; } } /** @@ -6295,15 +5983,14 @@ public java.lang.String getNextHopAddress() { * * * string next_hop_address = 20; - * @return The bytes for nextHopAddress. */ public com.google.protobuf.ByteString getNextHopAddressBytes() { - java.lang.Object ref = nextHopAddress_; + Object ref = nextHopAddress_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); nextHopAddress_ = b; return b; } else { @@ -6316,11 +6003,9 @@ public java.lang.String getNextHopAddress() { * * * string next_hop_address = 20; - * @param value The nextHopAddress to set. - * @return This builder for chaining. */ public Builder setNextHopAddress( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -6335,7 +6020,6 @@ public Builder setNextHopAddress( * * * string next_hop_address = 20; - * @return This builder for chaining. */ public Builder clearNextHopAddress() { @@ -6349,8 +6033,6 @@ public Builder clearNextHopAddress() { * * * string next_hop_address = 20; - * @param value The bytes for nextHopAddress to set. - * @return This builder for chaining. */ public Builder setNextHopAddressBytes( com.google.protobuf.ByteString value) { @@ -6364,25 +6046,24 @@ public Builder setNextHopAddressBytes( return this; } - private java.lang.Object nextHopHostname_ = ""; + private Object nextHopHostname_ = ""; /** *
      * Next hop hostname.
      * 
* * string next_hop_hostname = 21; - * @return The nextHopHostname. */ - public java.lang.String getNextHopHostname() { - java.lang.Object ref = nextHopHostname_; - if (!(ref instanceof java.lang.String)) { + public String getNextHopHostname() { + Object ref = nextHopHostname_; + if (!(ref instanceof String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); nextHopHostname_ = s; return s; } else { - return (java.lang.String) ref; + return (String) ref; } } /** @@ -6391,15 +6072,14 @@ public java.lang.String getNextHopHostname() { * * * string next_hop_hostname = 21; - * @return The bytes for nextHopHostname. */ public com.google.protobuf.ByteString getNextHopHostnameBytes() { - java.lang.Object ref = nextHopHostname_; + Object ref = nextHopHostname_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); nextHopHostname_ = b; return b; } else { @@ -6412,11 +6092,9 @@ public java.lang.String getNextHopHostname() { * * * string next_hop_hostname = 21; - * @param value The nextHopHostname to set. - * @return This builder for chaining. */ public Builder setNextHopHostname( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -6431,7 +6109,6 @@ public Builder setNextHopHostname( * * * string next_hop_hostname = 21; - * @return This builder for chaining. */ public Builder clearNextHopHostname() { @@ -6445,8 +6122,6 @@ public Builder clearNextHopHostname() { * * * string next_hop_hostname = 21; - * @param value The bytes for nextHopHostname to set. - * @return This builder for chaining. */ public Builder setNextHopHostnameBytes( com.google.protobuf.ByteString value) { @@ -6469,7 +6144,6 @@ public Builder setNextHopHostnameBytes( * * * .google.protobuf.UInt32Value protocol = 22; - * @return Whether the protocol field is set. */ public boolean hasProtocol() { return protocolBuilder_ != null || protocol_ != null; @@ -6480,7 +6154,6 @@ public boolean hasProtocol() { * * * .google.protobuf.UInt32Value protocol = 22; - * @return The protocol. */ public com.google.protobuf.UInt32Value getProtocol() { if (protocolBuilder_ == null) { @@ -6622,9 +6295,8 @@ public com.google.protobuf.UInt32ValueOrBuilder getProtocolOrBuilder() { * * * .SamplingAlgorithm sampling_algorithm = 23; - * @return The enum numeric value on the wire for samplingAlgorithm. */ - @java.lang.Override public int getSamplingAlgorithmValue() { + public int getSamplingAlgorithmValue() { return samplingAlgorithm_; } /** @@ -6633,11 +6305,8 @@ public com.google.protobuf.UInt32ValueOrBuilder getProtocolOrBuilder() { * * * .SamplingAlgorithm sampling_algorithm = 23; - * @param value The enum numeric value on the wire for samplingAlgorithm to set. - * @return This builder for chaining. */ public Builder setSamplingAlgorithmValue(int value) { - samplingAlgorithm_ = value; onChanged(); return this; @@ -6648,13 +6317,11 @@ public Builder setSamplingAlgorithmValue(int value) { * * * .SamplingAlgorithm sampling_algorithm = 23; - * @return The samplingAlgorithm. */ - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm getSamplingAlgorithm() { + public SamplingAlgorithm getSamplingAlgorithm() { @SuppressWarnings("deprecation") - org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm result = org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm.valueOf(samplingAlgorithm_); - return result == null ? org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm.UNRECOGNIZED : result; + SamplingAlgorithm result = SamplingAlgorithm.valueOf(samplingAlgorithm_); + return result == null ? SamplingAlgorithm.UNRECOGNIZED : result; } /** *
@@ -6662,10 +6329,8 @@ public org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm getSamplingA
      * 
* * .SamplingAlgorithm sampling_algorithm = 23; - * @param value The samplingAlgorithm to set. - * @return This builder for chaining. */ - public Builder setSamplingAlgorithm(org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm value) { + public Builder setSamplingAlgorithm(SamplingAlgorithm value) { if (value == null) { throw new NullPointerException(); } @@ -6680,7 +6345,6 @@ public Builder setSamplingAlgorithm(org.opennms.netmgt.flows.persistence.model.S * * * .SamplingAlgorithm sampling_algorithm = 23; - * @return This builder for chaining. */ public Builder clearSamplingAlgorithm() { @@ -6698,7 +6362,6 @@ public Builder clearSamplingAlgorithm() { * * * .google.protobuf.DoubleValue sampling_interval = 24; - * @return Whether the samplingInterval field is set. */ public boolean hasSamplingInterval() { return samplingIntervalBuilder_ != null || samplingInterval_ != null; @@ -6709,7 +6372,6 @@ public boolean hasSamplingInterval() { * * * .google.protobuf.DoubleValue sampling_interval = 24; - * @return The samplingInterval. */ public com.google.protobuf.DoubleValue getSamplingInterval() { if (samplingIntervalBuilder_ == null) { @@ -6844,25 +6506,24 @@ public com.google.protobuf.DoubleValueOrBuilder getSamplingIntervalOrBuilder() { return samplingIntervalBuilder_; } - private java.lang.Object srcAddress_ = ""; + private Object srcAddress_ = ""; /** *
      * Source address.
      * 
* * string src_address = 26; - * @return The srcAddress. */ - public java.lang.String getSrcAddress() { - java.lang.Object ref = srcAddress_; - if (!(ref instanceof java.lang.String)) { + public String getSrcAddress() { + Object ref = srcAddress_; + if (!(ref instanceof String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); srcAddress_ = s; return s; } else { - return (java.lang.String) ref; + return (String) ref; } } /** @@ -6871,15 +6532,14 @@ public java.lang.String getSrcAddress() { * * * string src_address = 26; - * @return The bytes for srcAddress. */ public com.google.protobuf.ByteString getSrcAddressBytes() { - java.lang.Object ref = srcAddress_; + Object ref = srcAddress_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); srcAddress_ = b; return b; } else { @@ -6892,11 +6552,9 @@ public java.lang.String getSrcAddress() { * * * string src_address = 26; - * @param value The srcAddress to set. - * @return This builder for chaining. */ public Builder setSrcAddress( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -6911,7 +6569,6 @@ public Builder setSrcAddress( * * * string src_address = 26; - * @return This builder for chaining. */ public Builder clearSrcAddress() { @@ -6925,8 +6582,6 @@ public Builder clearSrcAddress() { * * * string src_address = 26; - * @param value The bytes for srcAddress to set. - * @return This builder for chaining. */ public Builder setSrcAddressBytes( com.google.protobuf.ByteString value) { @@ -6940,25 +6595,24 @@ public Builder setSrcAddressBytes( return this; } - private java.lang.Object srcHostname_ = ""; + private Object srcHostname_ = ""; /** *
      * Source hostname.
      * 
* * string src_hostname = 27; - * @return The srcHostname. */ - public java.lang.String getSrcHostname() { - java.lang.Object ref = srcHostname_; - if (!(ref instanceof java.lang.String)) { + public String getSrcHostname() { + Object ref = srcHostname_; + if (!(ref instanceof String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); srcHostname_ = s; return s; } else { - return (java.lang.String) ref; + return (String) ref; } } /** @@ -6967,15 +6621,14 @@ public java.lang.String getSrcHostname() { * * * string src_hostname = 27; - * @return The bytes for srcHostname. */ public com.google.protobuf.ByteString getSrcHostnameBytes() { - java.lang.Object ref = srcHostname_; + Object ref = srcHostname_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); srcHostname_ = b; return b; } else { @@ -6988,11 +6641,9 @@ public java.lang.String getSrcHostname() { * * * string src_hostname = 27; - * @param value The srcHostname to set. - * @return This builder for chaining. */ public Builder setSrcHostname( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -7007,7 +6658,6 @@ public Builder setSrcHostname( * * * string src_hostname = 27; - * @return This builder for chaining. */ public Builder clearSrcHostname() { @@ -7021,8 +6671,6 @@ public Builder clearSrcHostname() { * * * string src_hostname = 27; - * @param value The bytes for srcHostname to set. - * @return This builder for chaining. */ public Builder setSrcHostnameBytes( com.google.protobuf.ByteString value) { @@ -7045,7 +6693,6 @@ public Builder setSrcHostnameBytes( * * * .google.protobuf.UInt64Value src_as = 28; - * @return Whether the srcAs field is set. */ public boolean hasSrcAs() { return srcAsBuilder_ != null || srcAs_ != null; @@ -7056,7 +6703,6 @@ public boolean hasSrcAs() { * * * .google.protobuf.UInt64Value src_as = 28; - * @return The srcAs. */ public com.google.protobuf.UInt64Value getSrcAs() { if (srcAsBuilder_ == null) { @@ -7200,7 +6846,6 @@ public com.google.protobuf.UInt64ValueOrBuilder getSrcAsOrBuilder() { * * * .google.protobuf.UInt32Value src_mask_len = 29; - * @return Whether the srcMaskLen field is set. */ public boolean hasSrcMaskLen() { return srcMaskLenBuilder_ != null || srcMaskLen_ != null; @@ -7211,7 +6856,6 @@ public boolean hasSrcMaskLen() { * * * .google.protobuf.UInt32Value src_mask_len = 29; - * @return The srcMaskLen. */ public com.google.protobuf.UInt32Value getSrcMaskLen() { if (srcMaskLenBuilder_ == null) { @@ -7355,7 +6999,6 @@ public com.google.protobuf.UInt32ValueOrBuilder getSrcMaskLenOrBuilder() { * * * .google.protobuf.UInt32Value src_port = 30; - * @return Whether the srcPort field is set. */ public boolean hasSrcPort() { return srcPortBuilder_ != null || srcPort_ != null; @@ -7366,7 +7009,6 @@ public boolean hasSrcPort() { * * * .google.protobuf.UInt32Value src_port = 30; - * @return The srcPort. */ public com.google.protobuf.UInt32Value getSrcPort() { if (srcPortBuilder_ == null) { @@ -7510,7 +7152,6 @@ public com.google.protobuf.UInt32ValueOrBuilder getSrcPortOrBuilder() { * * * .google.protobuf.UInt32Value tcp_flags = 31; - * @return Whether the tcpFlags field is set. */ public boolean hasTcpFlags() { return tcpFlagsBuilder_ != null || tcpFlags_ != null; @@ -7521,7 +7162,6 @@ public boolean hasTcpFlags() { * * * .google.protobuf.UInt32Value tcp_flags = 31; - * @return The tcpFlags. */ public com.google.protobuf.UInt32Value getTcpFlags() { if (tcpFlagsBuilder_ == null) { @@ -7665,7 +7305,6 @@ public com.google.protobuf.UInt32ValueOrBuilder getTcpFlagsOrBuilder() { * * * .google.protobuf.UInt32Value tos = 32; - * @return Whether the tos field is set. */ public boolean hasTos() { return tosBuilder_ != null || tos_ != null; @@ -7676,7 +7315,6 @@ public boolean hasTos() { * * * .google.protobuf.UInt32Value tos = 32; - * @return The tos. */ public com.google.protobuf.UInt32Value getTos() { if (tosBuilder_ == null) { @@ -7818,9 +7456,8 @@ public com.google.protobuf.UInt32ValueOrBuilder getTosOrBuilder() { * * * .NetflowVersion netflow_version = 33; - * @return The enum numeric value on the wire for netflowVersion. */ - @java.lang.Override public int getNetflowVersionValue() { + public int getNetflowVersionValue() { return netflowVersion_; } /** @@ -7829,11 +7466,8 @@ public com.google.protobuf.UInt32ValueOrBuilder getTosOrBuilder() { * * * .NetflowVersion netflow_version = 33; - * @param value The enum numeric value on the wire for netflowVersion to set. - * @return This builder for chaining. */ public Builder setNetflowVersionValue(int value) { - netflowVersion_ = value; onChanged(); return this; @@ -7844,13 +7478,11 @@ public Builder setNetflowVersionValue(int value) { * * * .NetflowVersion netflow_version = 33; - * @return The netflowVersion. */ - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.NetflowVersion getNetflowVersion() { + public NetflowVersion getNetflowVersion() { @SuppressWarnings("deprecation") - org.opennms.netmgt.flows.persistence.model.NetflowVersion result = org.opennms.netmgt.flows.persistence.model.NetflowVersion.valueOf(netflowVersion_); - return result == null ? org.opennms.netmgt.flows.persistence.model.NetflowVersion.UNRECOGNIZED : result; + NetflowVersion result = NetflowVersion.valueOf(netflowVersion_); + return result == null ? NetflowVersion.UNRECOGNIZED : result; } /** *
@@ -7858,10 +7490,8 @@ public org.opennms.netmgt.flows.persistence.model.NetflowVersion getNetflowVersi
      * 
* * .NetflowVersion netflow_version = 33; - * @param value The netflowVersion to set. - * @return This builder for chaining. */ - public Builder setNetflowVersion(org.opennms.netmgt.flows.persistence.model.NetflowVersion value) { + public Builder setNetflowVersion(NetflowVersion value) { if (value == null) { throw new NullPointerException(); } @@ -7876,7 +7506,6 @@ public Builder setNetflowVersion(org.opennms.netmgt.flows.persistence.model.Netf * * * .NetflowVersion netflow_version = 33; - * @return This builder for chaining. */ public Builder clearNetflowVersion() { @@ -7885,25 +7514,24 @@ public Builder clearNetflowVersion() { return this; } - private java.lang.Object vlan_ = ""; + private Object vlan_ = ""; /** *
      * VLAN ID.
      * 
* * string vlan = 34; - * @return The vlan. */ - public java.lang.String getVlan() { - java.lang.Object ref = vlan_; - if (!(ref instanceof java.lang.String)) { + public String getVlan() { + Object ref = vlan_; + if (!(ref instanceof String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); vlan_ = s; return s; } else { - return (java.lang.String) ref; + return (String) ref; } } /** @@ -7912,15 +7540,14 @@ public java.lang.String getVlan() { * * * string vlan = 34; - * @return The bytes for vlan. */ public com.google.protobuf.ByteString getVlanBytes() { - java.lang.Object ref = vlan_; + Object ref = vlan_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); vlan_ = b; return b; } else { @@ -7933,11 +7560,9 @@ public java.lang.String getVlan() { * * * string vlan = 34; - * @param value The vlan to set. - * @return This builder for chaining. */ public Builder setVlan( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -7952,7 +7577,6 @@ public Builder setVlan( * * * string vlan = 34; - * @return This builder for chaining. */ public Builder clearVlan() { @@ -7966,8 +7590,6 @@ public Builder clearVlan() { * * * string vlan = 34; - * @param value The bytes for vlan to set. - * @return This builder for chaining. */ public Builder setVlanBytes( com.google.protobuf.ByteString value) { @@ -7981,23 +7603,21 @@ public Builder setVlanBytes( return this; } - private org.opennms.netmgt.flows.persistence.model.NodeInfo srcNode_; + private NodeInfo srcNode_; private com.google.protobuf.SingleFieldBuilderV3< - org.opennms.netmgt.flows.persistence.model.NodeInfo, org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder, org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder> srcNodeBuilder_; + NodeInfo, NodeInfo.Builder, NodeInfoOrBuilder> srcNodeBuilder_; /** * .NodeInfo src_node = 35; - * @return Whether the srcNode field is set. */ public boolean hasSrcNode() { return srcNodeBuilder_ != null || srcNode_ != null; } /** * .NodeInfo src_node = 35; - * @return The srcNode. */ - public org.opennms.netmgt.flows.persistence.model.NodeInfo getSrcNode() { + public NodeInfo getSrcNode() { if (srcNodeBuilder_ == null) { - return srcNode_ == null ? org.opennms.netmgt.flows.persistence.model.NodeInfo.getDefaultInstance() : srcNode_; + return srcNode_ == null ? NodeInfo.getDefaultInstance() : srcNode_; } else { return srcNodeBuilder_.getMessage(); } @@ -8005,7 +7625,7 @@ public org.opennms.netmgt.flows.persistence.model.NodeInfo getSrcNode() { /** * .NodeInfo src_node = 35; */ - public Builder setSrcNode(org.opennms.netmgt.flows.persistence.model.NodeInfo value) { + public Builder setSrcNode(NodeInfo value) { if (srcNodeBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -8022,7 +7642,7 @@ public Builder setSrcNode(org.opennms.netmgt.flows.persistence.model.NodeInfo va * .NodeInfo src_node = 35; */ public Builder setSrcNode( - org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder builderForValue) { + NodeInfo.Builder builderForValue) { if (srcNodeBuilder_ == null) { srcNode_ = builderForValue.build(); onChanged(); @@ -8035,11 +7655,11 @@ public Builder setSrcNode( /** * .NodeInfo src_node = 35; */ - public Builder mergeSrcNode(org.opennms.netmgt.flows.persistence.model.NodeInfo value) { + public Builder mergeSrcNode(NodeInfo value) { if (srcNodeBuilder_ == null) { if (srcNode_ != null) { srcNode_ = - org.opennms.netmgt.flows.persistence.model.NodeInfo.newBuilder(srcNode_).mergeFrom(value).buildPartial(); + NodeInfo.newBuilder(srcNode_).mergeFrom(value).buildPartial(); } else { srcNode_ = value; } @@ -8067,7 +7687,7 @@ public Builder clearSrcNode() { /** * .NodeInfo src_node = 35; */ - public org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder getSrcNodeBuilder() { + public NodeInfo.Builder getSrcNodeBuilder() { onChanged(); return getSrcNodeFieldBuilder().getBuilder(); @@ -8075,23 +7695,23 @@ public org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder getSrcNodeBui /** * .NodeInfo src_node = 35; */ - public org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder getSrcNodeOrBuilder() { + public NodeInfoOrBuilder getSrcNodeOrBuilder() { if (srcNodeBuilder_ != null) { return srcNodeBuilder_.getMessageOrBuilder(); } else { return srcNode_ == null ? - org.opennms.netmgt.flows.persistence.model.NodeInfo.getDefaultInstance() : srcNode_; + NodeInfo.getDefaultInstance() : srcNode_; } } /** * .NodeInfo src_node = 35; */ private com.google.protobuf.SingleFieldBuilderV3< - org.opennms.netmgt.flows.persistence.model.NodeInfo, org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder, org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder> + NodeInfo, NodeInfo.Builder, NodeInfoOrBuilder> getSrcNodeFieldBuilder() { if (srcNodeBuilder_ == null) { srcNodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - org.opennms.netmgt.flows.persistence.model.NodeInfo, org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder, org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder>( + NodeInfo, NodeInfo.Builder, NodeInfoOrBuilder>( getSrcNode(), getParentForChildren(), isClean()); @@ -8100,23 +7720,21 @@ public org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder getSrcNodeOr return srcNodeBuilder_; } - private org.opennms.netmgt.flows.persistence.model.NodeInfo exporterNode_; + private NodeInfo exporterNode_; private com.google.protobuf.SingleFieldBuilderV3< - org.opennms.netmgt.flows.persistence.model.NodeInfo, org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder, org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder> exporterNodeBuilder_; + NodeInfo, NodeInfo.Builder, NodeInfoOrBuilder> exporterNodeBuilder_; /** * .NodeInfo exporter_node = 36; - * @return Whether the exporterNode field is set. */ public boolean hasExporterNode() { return exporterNodeBuilder_ != null || exporterNode_ != null; } /** * .NodeInfo exporter_node = 36; - * @return The exporterNode. */ - public org.opennms.netmgt.flows.persistence.model.NodeInfo getExporterNode() { + public NodeInfo getExporterNode() { if (exporterNodeBuilder_ == null) { - return exporterNode_ == null ? org.opennms.netmgt.flows.persistence.model.NodeInfo.getDefaultInstance() : exporterNode_; + return exporterNode_ == null ? NodeInfo.getDefaultInstance() : exporterNode_; } else { return exporterNodeBuilder_.getMessage(); } @@ -8124,7 +7742,7 @@ public org.opennms.netmgt.flows.persistence.model.NodeInfo getExporterNode() { /** * .NodeInfo exporter_node = 36; */ - public Builder setExporterNode(org.opennms.netmgt.flows.persistence.model.NodeInfo value) { + public Builder setExporterNode(NodeInfo value) { if (exporterNodeBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -8141,7 +7759,7 @@ public Builder setExporterNode(org.opennms.netmgt.flows.persistence.model.NodeIn * .NodeInfo exporter_node = 36; */ public Builder setExporterNode( - org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder builderForValue) { + NodeInfo.Builder builderForValue) { if (exporterNodeBuilder_ == null) { exporterNode_ = builderForValue.build(); onChanged(); @@ -8154,11 +7772,11 @@ public Builder setExporterNode( /** * .NodeInfo exporter_node = 36; */ - public Builder mergeExporterNode(org.opennms.netmgt.flows.persistence.model.NodeInfo value) { + public Builder mergeExporterNode(NodeInfo value) { if (exporterNodeBuilder_ == null) { if (exporterNode_ != null) { exporterNode_ = - org.opennms.netmgt.flows.persistence.model.NodeInfo.newBuilder(exporterNode_).mergeFrom(value).buildPartial(); + NodeInfo.newBuilder(exporterNode_).mergeFrom(value).buildPartial(); } else { exporterNode_ = value; } @@ -8186,7 +7804,7 @@ public Builder clearExporterNode() { /** * .NodeInfo exporter_node = 36; */ - public org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder getExporterNodeBuilder() { + public NodeInfo.Builder getExporterNodeBuilder() { onChanged(); return getExporterNodeFieldBuilder().getBuilder(); @@ -8194,23 +7812,23 @@ public org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder getExporterNo /** * .NodeInfo exporter_node = 36; */ - public org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder getExporterNodeOrBuilder() { + public NodeInfoOrBuilder getExporterNodeOrBuilder() { if (exporterNodeBuilder_ != null) { return exporterNodeBuilder_.getMessageOrBuilder(); } else { return exporterNode_ == null ? - org.opennms.netmgt.flows.persistence.model.NodeInfo.getDefaultInstance() : exporterNode_; + NodeInfo.getDefaultInstance() : exporterNode_; } } /** * .NodeInfo exporter_node = 36; */ private com.google.protobuf.SingleFieldBuilderV3< - org.opennms.netmgt.flows.persistence.model.NodeInfo, org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder, org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder> + NodeInfo, NodeInfo.Builder, NodeInfoOrBuilder> getExporterNodeFieldBuilder() { if (exporterNodeBuilder_ == null) { exporterNodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - org.opennms.netmgt.flows.persistence.model.NodeInfo, org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder, org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder>( + NodeInfo, NodeInfo.Builder, NodeInfoOrBuilder>( getExporterNode(), getParentForChildren(), isClean()); @@ -8219,23 +7837,21 @@ public org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder getExporterN return exporterNodeBuilder_; } - private org.opennms.netmgt.flows.persistence.model.NodeInfo destNode_; + private NodeInfo destNode_; private com.google.protobuf.SingleFieldBuilderV3< - org.opennms.netmgt.flows.persistence.model.NodeInfo, org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder, org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder> destNodeBuilder_; + NodeInfo, NodeInfo.Builder, NodeInfoOrBuilder> destNodeBuilder_; /** * .NodeInfo dest_node = 37; - * @return Whether the destNode field is set. */ public boolean hasDestNode() { return destNodeBuilder_ != null || destNode_ != null; } /** * .NodeInfo dest_node = 37; - * @return The destNode. */ - public org.opennms.netmgt.flows.persistence.model.NodeInfo getDestNode() { + public NodeInfo getDestNode() { if (destNodeBuilder_ == null) { - return destNode_ == null ? org.opennms.netmgt.flows.persistence.model.NodeInfo.getDefaultInstance() : destNode_; + return destNode_ == null ? NodeInfo.getDefaultInstance() : destNode_; } else { return destNodeBuilder_.getMessage(); } @@ -8243,7 +7859,7 @@ public org.opennms.netmgt.flows.persistence.model.NodeInfo getDestNode() { /** * .NodeInfo dest_node = 37; */ - public Builder setDestNode(org.opennms.netmgt.flows.persistence.model.NodeInfo value) { + public Builder setDestNode(NodeInfo value) { if (destNodeBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -8260,7 +7876,7 @@ public Builder setDestNode(org.opennms.netmgt.flows.persistence.model.NodeInfo v * .NodeInfo dest_node = 37; */ public Builder setDestNode( - org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder builderForValue) { + NodeInfo.Builder builderForValue) { if (destNodeBuilder_ == null) { destNode_ = builderForValue.build(); onChanged(); @@ -8273,11 +7889,11 @@ public Builder setDestNode( /** * .NodeInfo dest_node = 37; */ - public Builder mergeDestNode(org.opennms.netmgt.flows.persistence.model.NodeInfo value) { + public Builder mergeDestNode(NodeInfo value) { if (destNodeBuilder_ == null) { if (destNode_ != null) { destNode_ = - org.opennms.netmgt.flows.persistence.model.NodeInfo.newBuilder(destNode_).mergeFrom(value).buildPartial(); + NodeInfo.newBuilder(destNode_).mergeFrom(value).buildPartial(); } else { destNode_ = value; } @@ -8305,7 +7921,7 @@ public Builder clearDestNode() { /** * .NodeInfo dest_node = 37; */ - public org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder getDestNodeBuilder() { + public NodeInfo.Builder getDestNodeBuilder() { onChanged(); return getDestNodeFieldBuilder().getBuilder(); @@ -8313,23 +7929,23 @@ public org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder getDestNodeBu /** * .NodeInfo dest_node = 37; */ - public org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder getDestNodeOrBuilder() { + public NodeInfoOrBuilder getDestNodeOrBuilder() { if (destNodeBuilder_ != null) { return destNodeBuilder_.getMessageOrBuilder(); } else { return destNode_ == null ? - org.opennms.netmgt.flows.persistence.model.NodeInfo.getDefaultInstance() : destNode_; + NodeInfo.getDefaultInstance() : destNode_; } } /** * .NodeInfo dest_node = 37; */ private com.google.protobuf.SingleFieldBuilderV3< - org.opennms.netmgt.flows.persistence.model.NodeInfo, org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder, org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder> + NodeInfo, NodeInfo.Builder, NodeInfoOrBuilder> getDestNodeFieldBuilder() { if (destNodeBuilder_ == null) { destNodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - org.opennms.netmgt.flows.persistence.model.NodeInfo, org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder, org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder>( + NodeInfo, NodeInfo.Builder, NodeInfoOrBuilder>( getDestNode(), getParentForChildren(), isClean()); @@ -8338,34 +7954,32 @@ public org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder getDestNodeO return destNodeBuilder_; } - private java.lang.Object application_ = ""; + private Object application_ = ""; /** * string application = 38; - * @return The application. */ - public java.lang.String getApplication() { - java.lang.Object ref = application_; - if (!(ref instanceof java.lang.String)) { + public String getApplication() { + Object ref = application_; + if (!(ref instanceof String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); application_ = s; return s; } else { - return (java.lang.String) ref; + return (String) ref; } } /** * string application = 38; - * @return The bytes for application. */ public com.google.protobuf.ByteString getApplicationBytes() { - java.lang.Object ref = application_; + Object ref = application_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); application_ = b; return b; } else { @@ -8374,11 +7988,9 @@ public java.lang.String getApplication() { } /** * string application = 38; - * @param value The application to set. - * @return This builder for chaining. */ public Builder setApplication( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -8389,7 +8001,6 @@ public Builder setApplication( } /** * string application = 38; - * @return This builder for chaining. */ public Builder clearApplication() { @@ -8399,8 +8010,6 @@ public Builder clearApplication() { } /** * string application = 38; - * @param value The bytes for application to set. - * @return This builder for chaining. */ public Builder setApplicationBytes( com.google.protobuf.ByteString value) { @@ -8414,34 +8023,32 @@ public Builder setApplicationBytes( return this; } - private java.lang.Object host_ = ""; + private Object host_ = ""; /** * string host = 39; - * @return The host. */ - public java.lang.String getHost() { - java.lang.Object ref = host_; - if (!(ref instanceof java.lang.String)) { + public String getHost() { + Object ref = host_; + if (!(ref instanceof String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); host_ = s; return s; } else { - return (java.lang.String) ref; + return (String) ref; } } /** * string host = 39; - * @return The bytes for host. */ public com.google.protobuf.ByteString getHostBytes() { - java.lang.Object ref = host_; + Object ref = host_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); host_ = b; return b; } else { @@ -8450,11 +8057,9 @@ public java.lang.String getHost() { } /** * string host = 39; - * @param value The host to set. - * @return This builder for chaining. */ public Builder setHost( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -8465,7 +8070,6 @@ public Builder setHost( } /** * string host = 39; - * @return This builder for chaining. */ public Builder clearHost() { @@ -8475,8 +8079,6 @@ public Builder clearHost() { } /** * string host = 39; - * @param value The bytes for host to set. - * @return This builder for chaining. */ public Builder setHostBytes( com.google.protobuf.ByteString value) { @@ -8490,34 +8092,32 @@ public Builder setHostBytes( return this; } - private java.lang.Object location_ = ""; + private Object location_ = ""; /** * string location = 40; - * @return The location. */ - public java.lang.String getLocation() { - java.lang.Object ref = location_; - if (!(ref instanceof java.lang.String)) { + public String getLocation() { + Object ref = location_; + if (!(ref instanceof String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); location_ = s; return s; } else { - return (java.lang.String) ref; + return (String) ref; } } /** * string location = 40; - * @return The bytes for location. */ public com.google.protobuf.ByteString getLocationBytes() { - java.lang.Object ref = location_; + Object ref = location_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); location_ = b; return b; } else { @@ -8526,11 +8126,9 @@ public java.lang.String getLocation() { } /** * string location = 40; - * @param value The location to set. - * @return This builder for chaining. */ public Builder setLocation( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -8541,7 +8139,6 @@ public Builder setLocation( } /** * string location = 40; - * @return This builder for chaining. */ public Builder clearLocation() { @@ -8551,8 +8148,6 @@ public Builder clearLocation() { } /** * string location = 40; - * @param value The bytes for location to set. - * @return This builder for chaining. */ public Builder setLocationBytes( com.google.protobuf.ByteString value) { @@ -8569,38 +8164,30 @@ public Builder setLocationBytes( private int srcLocality_ = 0; /** * .Locality src_locality = 41; - * @return The enum numeric value on the wire for srcLocality. */ - @java.lang.Override public int getSrcLocalityValue() { + public int getSrcLocalityValue() { return srcLocality_; } /** * .Locality src_locality = 41; - * @param value The enum numeric value on the wire for srcLocality to set. - * @return This builder for chaining. */ public Builder setSrcLocalityValue(int value) { - srcLocality_ = value; onChanged(); return this; } /** * .Locality src_locality = 41; - * @return The srcLocality. */ - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.Locality getSrcLocality() { + public Locality getSrcLocality() { @SuppressWarnings("deprecation") - org.opennms.netmgt.flows.persistence.model.Locality result = org.opennms.netmgt.flows.persistence.model.Locality.valueOf(srcLocality_); - return result == null ? org.opennms.netmgt.flows.persistence.model.Locality.UNRECOGNIZED : result; + Locality result = Locality.valueOf(srcLocality_); + return result == null ? Locality.UNRECOGNIZED : result; } /** * .Locality src_locality = 41; - * @param value The srcLocality to set. - * @return This builder for chaining. */ - public Builder setSrcLocality(org.opennms.netmgt.flows.persistence.model.Locality value) { + public Builder setSrcLocality(Locality value) { if (value == null) { throw new NullPointerException(); } @@ -8611,7 +8198,6 @@ public Builder setSrcLocality(org.opennms.netmgt.flows.persistence.model.Localit } /** * .Locality src_locality = 41; - * @return This builder for chaining. */ public Builder clearSrcLocality() { @@ -8623,38 +8209,30 @@ public Builder clearSrcLocality() { private int dstLocality_ = 0; /** * .Locality dst_locality = 42; - * @return The enum numeric value on the wire for dstLocality. */ - @java.lang.Override public int getDstLocalityValue() { + public int getDstLocalityValue() { return dstLocality_; } /** * .Locality dst_locality = 42; - * @param value The enum numeric value on the wire for dstLocality to set. - * @return This builder for chaining. */ public Builder setDstLocalityValue(int value) { - dstLocality_ = value; onChanged(); return this; } /** * .Locality dst_locality = 42; - * @return The dstLocality. */ - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.Locality getDstLocality() { + public Locality getDstLocality() { @SuppressWarnings("deprecation") - org.opennms.netmgt.flows.persistence.model.Locality result = org.opennms.netmgt.flows.persistence.model.Locality.valueOf(dstLocality_); - return result == null ? org.opennms.netmgt.flows.persistence.model.Locality.UNRECOGNIZED : result; + Locality result = Locality.valueOf(dstLocality_); + return result == null ? Locality.UNRECOGNIZED : result; } /** * .Locality dst_locality = 42; - * @param value The dstLocality to set. - * @return This builder for chaining. */ - public Builder setDstLocality(org.opennms.netmgt.flows.persistence.model.Locality value) { + public Builder setDstLocality(Locality value) { if (value == null) { throw new NullPointerException(); } @@ -8665,7 +8243,6 @@ public Builder setDstLocality(org.opennms.netmgt.flows.persistence.model.Localit } /** * .Locality dst_locality = 42; - * @return This builder for chaining. */ public Builder clearDstLocality() { @@ -8677,38 +8254,30 @@ public Builder clearDstLocality() { private int flowLocality_ = 0; /** * .Locality flow_locality = 43; - * @return The enum numeric value on the wire for flowLocality. */ - @java.lang.Override public int getFlowLocalityValue() { + public int getFlowLocalityValue() { return flowLocality_; } /** * .Locality flow_locality = 43; - * @param value The enum numeric value on the wire for flowLocality to set. - * @return This builder for chaining. */ public Builder setFlowLocalityValue(int value) { - flowLocality_ = value; onChanged(); return this; } /** * .Locality flow_locality = 43; - * @return The flowLocality. */ - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.Locality getFlowLocality() { + public Locality getFlowLocality() { @SuppressWarnings("deprecation") - org.opennms.netmgt.flows.persistence.model.Locality result = org.opennms.netmgt.flows.persistence.model.Locality.valueOf(flowLocality_); - return result == null ? org.opennms.netmgt.flows.persistence.model.Locality.UNRECOGNIZED : result; + Locality result = Locality.valueOf(flowLocality_); + return result == null ? Locality.UNRECOGNIZED : result; } /** * .Locality flow_locality = 43; - * @param value The flowLocality to set. - * @return This builder for chaining. */ - public Builder setFlowLocality(org.opennms.netmgt.flows.persistence.model.Locality value) { + public Builder setFlowLocality(Locality value) { if (value == null) { throw new NullPointerException(); } @@ -8719,7 +8288,6 @@ public Builder setFlowLocality(org.opennms.netmgt.flows.persistence.model.Locali } /** * .Locality flow_locality = 43; - * @return This builder for chaining. */ public Builder clearFlowLocality() { @@ -8728,82 +8296,6 @@ public Builder clearFlowLocality() { return this; } - private java.lang.Object convoKey_ = ""; - /** - * string convo_key = 44; - * @return The convoKey. - */ - public java.lang.String getConvoKey() { - java.lang.Object ref = convoKey_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - convoKey_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string convo_key = 44; - * @return The bytes for convoKey. - */ - public com.google.protobuf.ByteString - getConvoKeyBytes() { - java.lang.Object ref = convoKey_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - convoKey_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string convo_key = 44; - * @param value The convoKey to set. - * @return This builder for chaining. - */ - public Builder setConvoKey( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - convoKey_ = value; - onChanged(); - return this; - } - /** - * string convo_key = 44; - * @return This builder for chaining. - */ - public Builder clearConvoKey() { - - convoKey_ = getDefaultInstance().getConvoKey(); - onChanged(); - return this; - } - /** - * string convo_key = 44; - * @param value The bytes for convoKey to set. - * @return This builder for chaining. - */ - public Builder setConvoKeyBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - convoKey_ = value; - onChanged(); - return this; - } - private long clockCorrection_ ; /** *
@@ -8811,9 +8303,7 @@ public Builder setConvoKeyBytes(
      * 
* * uint64 clock_correction = 45; - * @return The clockCorrection. */ - @java.lang.Override public long getClockCorrection() { return clockCorrection_; } @@ -8823,8 +8313,6 @@ public long getClockCorrection() { * * * uint64 clock_correction = 45; - * @param value The clockCorrection to set. - * @return This builder for chaining. */ public Builder setClockCorrection(long value) { @@ -8838,7 +8326,6 @@ public Builder setClockCorrection(long value) { * * * uint64 clock_correction = 45; - * @return This builder for chaining. */ public Builder clearClockCorrection() { @@ -8856,7 +8343,6 @@ public Builder clearClockCorrection() { * * * .google.protobuf.UInt32Value dscp = 46; - * @return Whether the dscp field is set. */ public boolean hasDscp() { return dscpBuilder_ != null || dscp_ != null; @@ -8867,7 +8353,6 @@ public boolean hasDscp() { * * * .google.protobuf.UInt32Value dscp = 46; - * @return The dscp. */ public com.google.protobuf.UInt32Value getDscp() { if (dscpBuilder_ == null) { @@ -9011,7 +8496,6 @@ public com.google.protobuf.UInt32ValueOrBuilder getDscpOrBuilder() { * * * .google.protobuf.UInt32Value ecn = 47; - * @return Whether the ecn field is set. */ public boolean hasEcn() { return ecnBuilder_ != null || ecn_ != null; @@ -9022,7 +8506,6 @@ public boolean hasEcn() { * * * .google.protobuf.UInt32Value ecn = 47; - * @return The ecn. */ public com.google.protobuf.UInt32Value getEcn() { if (ecnBuilder_ == null) { @@ -9156,13 +8639,13 @@ public com.google.protobuf.UInt32ValueOrBuilder getEcnOrBuilder() { } return ecnBuilder_; } - @java.lang.Override + @Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } - @java.lang.Override + @Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); @@ -9173,18 +8656,18 @@ public final Builder mergeUnknownFields( } // @@protoc_insertion_point(class_scope:FlowDocument) - private static final org.opennms.netmgt.flows.persistence.model.FlowDocument DEFAULT_INSTANCE; + private static final FlowDocument DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new org.opennms.netmgt.flows.persistence.model.FlowDocument(); + DEFAULT_INSTANCE = new FlowDocument(); } - public static org.opennms.netmgt.flows.persistence.model.FlowDocument getDefaultInstance() { + public static FlowDocument getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override + @Override public FlowDocument parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -9197,13 +8680,13 @@ public static com.google.protobuf.Parser parser() { return PARSER; } - @java.lang.Override + @Override public com.google.protobuf.Parser getParserForType() { return PARSER; } - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.FlowDocument getDefaultInstanceForType() { + @Override + public FlowDocument getDefaultInstanceForType() { return DEFAULT_INSTANCE; } diff --git a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/FlowDocumentOrBuilder.java b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/FlowDocumentOrBuilder.java index beb61a7515e9..774a8354a7e9 100644 --- a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/FlowDocumentOrBuilder.java +++ b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/FlowDocumentOrBuilder.java @@ -41,7 +41,6 @@ public interface FlowDocumentOrBuilder extends * * * uint64 timestamp = 1; - * @return The timestamp. */ long getTimestamp(); @@ -51,7 +50,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value num_bytes = 2; - * @return Whether the numBytes field is set. */ boolean hasNumBytes(); /** @@ -60,7 +58,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value num_bytes = 2; - * @return The numBytes. */ com.google.protobuf.UInt64Value getNumBytes(); /** @@ -78,7 +75,6 @@ public interface FlowDocumentOrBuilder extends * * * .Direction direction = 3; - * @return The enum numeric value on the wire for direction. */ int getDirectionValue(); /** @@ -87,9 +83,8 @@ public interface FlowDocumentOrBuilder extends * * * .Direction direction = 3; - * @return The direction. */ - org.opennms.netmgt.flows.persistence.model.Direction getDirection(); + Direction getDirection(); /** *
@@ -97,16 +92,14 @@ public interface FlowDocumentOrBuilder extends
    * 
* * string dst_address = 4; - * @return The dstAddress. */ - java.lang.String getDstAddress(); + String getDstAddress(); /** *
    *  Destination address.
    * 
* * string dst_address = 4; - * @return The bytes for dstAddress. */ com.google.protobuf.ByteString getDstAddressBytes(); @@ -117,16 +110,14 @@ public interface FlowDocumentOrBuilder extends * * * string dst_hostname = 5; - * @return The dstHostname. */ - java.lang.String getDstHostname(); + String getDstHostname(); /** *
    * Destination address hostname.
    * 
* * string dst_hostname = 5; - * @return The bytes for dstHostname. */ com.google.protobuf.ByteString getDstHostnameBytes(); @@ -137,7 +128,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value dst_as = 6; - * @return Whether the dstAs field is set. */ boolean hasDstAs(); /** @@ -146,7 +136,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value dst_as = 6; - * @return The dstAs. */ com.google.protobuf.UInt64Value getDstAs(); /** @@ -164,7 +153,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value dst_mask_len = 7; - * @return Whether the dstMaskLen field is set. */ boolean hasDstMaskLen(); /** @@ -173,7 +161,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value dst_mask_len = 7; - * @return The dstMaskLen. */ com.google.protobuf.UInt32Value getDstMaskLen(); /** @@ -191,7 +178,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value dst_port = 8; - * @return Whether the dstPort field is set. */ boolean hasDstPort(); /** @@ -200,7 +186,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value dst_port = 8; - * @return The dstPort. */ com.google.protobuf.UInt32Value getDstPort(); /** @@ -218,7 +203,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value engine_id = 9; - * @return Whether the engineId field is set. */ boolean hasEngineId(); /** @@ -227,7 +211,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value engine_id = 9; - * @return The engineId. */ com.google.protobuf.UInt32Value getEngineId(); /** @@ -245,7 +228,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value engine_type = 10; - * @return Whether the engineType field is set. */ boolean hasEngineType(); /** @@ -254,7 +236,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value engine_type = 10; - * @return The engineType. */ com.google.protobuf.UInt32Value getEngineType(); /** @@ -272,7 +253,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value delta_switched = 11; - * @return Whether the deltaSwitched field is set. */ boolean hasDeltaSwitched(); /** @@ -281,7 +261,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value delta_switched = 11; - * @return The deltaSwitched. */ com.google.protobuf.UInt64Value getDeltaSwitched(); /** @@ -299,7 +278,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value first_switched = 12; - * @return Whether the firstSwitched field is set. */ boolean hasFirstSwitched(); /** @@ -308,7 +286,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value first_switched = 12; - * @return The firstSwitched. */ com.google.protobuf.UInt64Value getFirstSwitched(); /** @@ -326,7 +303,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value last_switched = 13; - * @return Whether the lastSwitched field is set. */ boolean hasLastSwitched(); /** @@ -335,7 +311,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value last_switched = 13; - * @return The lastSwitched. */ com.google.protobuf.UInt64Value getLastSwitched(); /** @@ -353,7 +328,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value num_flow_records = 14; - * @return Whether the numFlowRecords field is set. */ boolean hasNumFlowRecords(); /** @@ -362,7 +336,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value num_flow_records = 14; - * @return The numFlowRecords. */ com.google.protobuf.UInt32Value getNumFlowRecords(); /** @@ -380,7 +353,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value num_packets = 15; - * @return Whether the numPackets field is set. */ boolean hasNumPackets(); /** @@ -389,7 +361,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value num_packets = 15; - * @return The numPackets. */ com.google.protobuf.UInt64Value getNumPackets(); /** @@ -407,7 +378,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value flow_seq_num = 16; - * @return Whether the flowSeqNum field is set. */ boolean hasFlowSeqNum(); /** @@ -416,7 +386,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value flow_seq_num = 16; - * @return The flowSeqNum. */ com.google.protobuf.UInt64Value getFlowSeqNum(); /** @@ -434,7 +403,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value input_snmp_ifindex = 17; - * @return Whether the inputSnmpIfindex field is set. */ boolean hasInputSnmpIfindex(); /** @@ -443,7 +411,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value input_snmp_ifindex = 17; - * @return The inputSnmpIfindex. */ com.google.protobuf.UInt32Value getInputSnmpIfindex(); /** @@ -461,7 +428,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value output_snmp_ifindex = 18; - * @return Whether the outputSnmpIfindex field is set. */ boolean hasOutputSnmpIfindex(); /** @@ -470,7 +436,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value output_snmp_ifindex = 18; - * @return The outputSnmpIfindex. */ com.google.protobuf.UInt32Value getOutputSnmpIfindex(); /** @@ -488,7 +453,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value ip_protocol_version = 19; - * @return Whether the ipProtocolVersion field is set. */ boolean hasIpProtocolVersion(); /** @@ -497,7 +461,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value ip_protocol_version = 19; - * @return The ipProtocolVersion. */ com.google.protobuf.UInt32Value getIpProtocolVersion(); /** @@ -515,16 +478,14 @@ public interface FlowDocumentOrBuilder extends * * * string next_hop_address = 20; - * @return The nextHopAddress. */ - java.lang.String getNextHopAddress(); + String getNextHopAddress(); /** *
    * Next hop IpAddress.
    * 
* * string next_hop_address = 20; - * @return The bytes for nextHopAddress. */ com.google.protobuf.ByteString getNextHopAddressBytes(); @@ -535,16 +496,14 @@ public interface FlowDocumentOrBuilder extends * * * string next_hop_hostname = 21; - * @return The nextHopHostname. */ - java.lang.String getNextHopHostname(); + String getNextHopHostname(); /** *
    * Next hop hostname.
    * 
* * string next_hop_hostname = 21; - * @return The bytes for nextHopHostname. */ com.google.protobuf.ByteString getNextHopHostnameBytes(); @@ -555,7 +514,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value protocol = 22; - * @return Whether the protocol field is set. */ boolean hasProtocol(); /** @@ -564,7 +522,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value protocol = 22; - * @return The protocol. */ com.google.protobuf.UInt32Value getProtocol(); /** @@ -582,7 +539,6 @@ public interface FlowDocumentOrBuilder extends * * * .SamplingAlgorithm sampling_algorithm = 23; - * @return The enum numeric value on the wire for samplingAlgorithm. */ int getSamplingAlgorithmValue(); /** @@ -591,9 +547,8 @@ public interface FlowDocumentOrBuilder extends * * * .SamplingAlgorithm sampling_algorithm = 23; - * @return The samplingAlgorithm. */ - org.opennms.netmgt.flows.persistence.model.SamplingAlgorithm getSamplingAlgorithm(); + SamplingAlgorithm getSamplingAlgorithm(); /** *
@@ -601,7 +556,6 @@ public interface FlowDocumentOrBuilder extends
    * 
* * .google.protobuf.DoubleValue sampling_interval = 24; - * @return Whether the samplingInterval field is set. */ boolean hasSamplingInterval(); /** @@ -610,7 +564,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.DoubleValue sampling_interval = 24; - * @return The samplingInterval. */ com.google.protobuf.DoubleValue getSamplingInterval(); /** @@ -628,16 +581,14 @@ public interface FlowDocumentOrBuilder extends * * * string src_address = 26; - * @return The srcAddress. */ - java.lang.String getSrcAddress(); + String getSrcAddress(); /** *
    * Source address.
    * 
* * string src_address = 26; - * @return The bytes for srcAddress. */ com.google.protobuf.ByteString getSrcAddressBytes(); @@ -648,16 +599,14 @@ public interface FlowDocumentOrBuilder extends * * * string src_hostname = 27; - * @return The srcHostname. */ - java.lang.String getSrcHostname(); + String getSrcHostname(); /** *
    * Source hostname.
    * 
* * string src_hostname = 27; - * @return The bytes for srcHostname. */ com.google.protobuf.ByteString getSrcHostnameBytes(); @@ -668,7 +617,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value src_as = 28; - * @return Whether the srcAs field is set. */ boolean hasSrcAs(); /** @@ -677,7 +625,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt64Value src_as = 28; - * @return The srcAs. */ com.google.protobuf.UInt64Value getSrcAs(); /** @@ -695,7 +642,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value src_mask_len = 29; - * @return Whether the srcMaskLen field is set. */ boolean hasSrcMaskLen(); /** @@ -704,7 +650,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value src_mask_len = 29; - * @return The srcMaskLen. */ com.google.protobuf.UInt32Value getSrcMaskLen(); /** @@ -722,7 +667,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value src_port = 30; - * @return Whether the srcPort field is set. */ boolean hasSrcPort(); /** @@ -731,7 +675,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value src_port = 30; - * @return The srcPort. */ com.google.protobuf.UInt32Value getSrcPort(); /** @@ -749,7 +692,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value tcp_flags = 31; - * @return Whether the tcpFlags field is set. */ boolean hasTcpFlags(); /** @@ -758,7 +700,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value tcp_flags = 31; - * @return The tcpFlags. */ com.google.protobuf.UInt32Value getTcpFlags(); /** @@ -776,7 +717,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value tos = 32; - * @return Whether the tos field is set. */ boolean hasTos(); /** @@ -785,7 +725,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value tos = 32; - * @return The tos. */ com.google.protobuf.UInt32Value getTos(); /** @@ -803,7 +742,6 @@ public interface FlowDocumentOrBuilder extends * * * .NetflowVersion netflow_version = 33; - * @return The enum numeric value on the wire for netflowVersion. */ int getNetflowVersionValue(); /** @@ -812,9 +750,8 @@ public interface FlowDocumentOrBuilder extends * * * .NetflowVersion netflow_version = 33; - * @return The netflowVersion. */ - org.opennms.netmgt.flows.persistence.model.NetflowVersion getNetflowVersion(); + NetflowVersion getNetflowVersion(); /** *
@@ -822,145 +759,113 @@ public interface FlowDocumentOrBuilder extends
    * 
* * string vlan = 34; - * @return The vlan. */ - java.lang.String getVlan(); + String getVlan(); /** *
    * VLAN ID.
    * 
* * string vlan = 34; - * @return The bytes for vlan. */ com.google.protobuf.ByteString getVlanBytes(); /** * .NodeInfo src_node = 35; - * @return Whether the srcNode field is set. */ boolean hasSrcNode(); /** * .NodeInfo src_node = 35; - * @return The srcNode. */ - org.opennms.netmgt.flows.persistence.model.NodeInfo getSrcNode(); + NodeInfo getSrcNode(); /** * .NodeInfo src_node = 35; */ - org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder getSrcNodeOrBuilder(); + NodeInfoOrBuilder getSrcNodeOrBuilder(); /** * .NodeInfo exporter_node = 36; - * @return Whether the exporterNode field is set. */ boolean hasExporterNode(); /** * .NodeInfo exporter_node = 36; - * @return The exporterNode. */ - org.opennms.netmgt.flows.persistence.model.NodeInfo getExporterNode(); + NodeInfo getExporterNode(); /** * .NodeInfo exporter_node = 36; */ - org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder getExporterNodeOrBuilder(); + NodeInfoOrBuilder getExporterNodeOrBuilder(); /** * .NodeInfo dest_node = 37; - * @return Whether the destNode field is set. */ boolean hasDestNode(); /** * .NodeInfo dest_node = 37; - * @return The destNode. */ - org.opennms.netmgt.flows.persistence.model.NodeInfo getDestNode(); + NodeInfo getDestNode(); /** * .NodeInfo dest_node = 37; */ - org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder getDestNodeOrBuilder(); + NodeInfoOrBuilder getDestNodeOrBuilder(); /** * string application = 38; - * @return The application. */ - java.lang.String getApplication(); + String getApplication(); /** * string application = 38; - * @return The bytes for application. */ com.google.protobuf.ByteString getApplicationBytes(); /** * string host = 39; - * @return The host. */ - java.lang.String getHost(); + String getHost(); /** * string host = 39; - * @return The bytes for host. */ com.google.protobuf.ByteString getHostBytes(); /** * string location = 40; - * @return The location. */ - java.lang.String getLocation(); + String getLocation(); /** * string location = 40; - * @return The bytes for location. */ com.google.protobuf.ByteString getLocationBytes(); /** * .Locality src_locality = 41; - * @return The enum numeric value on the wire for srcLocality. */ int getSrcLocalityValue(); /** * .Locality src_locality = 41; - * @return The srcLocality. */ - org.opennms.netmgt.flows.persistence.model.Locality getSrcLocality(); + Locality getSrcLocality(); /** * .Locality dst_locality = 42; - * @return The enum numeric value on the wire for dstLocality. */ int getDstLocalityValue(); /** * .Locality dst_locality = 42; - * @return The dstLocality. */ - org.opennms.netmgt.flows.persistence.model.Locality getDstLocality(); + Locality getDstLocality(); /** * .Locality flow_locality = 43; - * @return The enum numeric value on the wire for flowLocality. */ int getFlowLocalityValue(); /** * .Locality flow_locality = 43; - * @return The flowLocality. */ - org.opennms.netmgt.flows.persistence.model.Locality getFlowLocality(); - - /** - * string convo_key = 44; - * @return The convoKey. - */ - java.lang.String getConvoKey(); - /** - * string convo_key = 44; - * @return The bytes for convoKey. - */ - com.google.protobuf.ByteString - getConvoKeyBytes(); + Locality getFlowLocality(); /** *
@@ -968,7 +873,6 @@ public interface FlowDocumentOrBuilder extends
    * 
* * uint64 clock_correction = 45; - * @return The clockCorrection. */ long getClockCorrection(); @@ -978,7 +882,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value dscp = 46; - * @return Whether the dscp field is set. */ boolean hasDscp(); /** @@ -987,7 +890,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value dscp = 46; - * @return The dscp. */ com.google.protobuf.UInt32Value getDscp(); /** @@ -1005,7 +907,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value ecn = 47; - * @return Whether the ecn field is set. */ boolean hasEcn(); /** @@ -1014,7 +915,6 @@ public interface FlowDocumentOrBuilder extends * * * .google.protobuf.UInt32Value ecn = 47; - * @return The ecn. */ com.google.protobuf.UInt32Value getEcn(); /** diff --git a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/Locality.java b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/Locality.java index 9f26c058e001..48725ed53f56 100644 --- a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/Locality.java +++ b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/Locality.java @@ -59,26 +59,20 @@ public enum Locality public final int getNumber() { if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( + throw new IllegalArgumentException( "Can't get the number of an unknown enum value."); } return value; } /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. * @deprecated Use {@link #forNumber(int)} instead. */ - @java.lang.Deprecated + @Deprecated public static Locality valueOf(int value) { return forNumber(value); } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ public static Locality forNumber(int value) { switch (value) { case 0: return PUBLIC; @@ -101,10 +95,6 @@ public Locality findValueByNumber(int number) { public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } return getDescriptor().getValues().get(ordinal()); } public final com.google.protobuf.Descriptors.EnumDescriptor @@ -113,7 +103,7 @@ public Locality findValueByNumber(int number) { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.getDescriptor().getEnumTypes().get(3); + return EnrichedFlowProtos.getDescriptor().getEnumTypes().get(3); } private static final Locality[] VALUES = values(); @@ -121,7 +111,7 @@ public Locality findValueByNumber(int number) { public static Locality valueOf( com.google.protobuf.Descriptors.EnumValueDescriptor desc) { if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( + throw new IllegalArgumentException( "EnumValueDescriptor is not for this type."); } if (desc.getIndex() == -1) { diff --git a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/NetflowVersion.java b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/NetflowVersion.java index 0f379e6c015e..bf80069cf4af 100644 --- a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/NetflowVersion.java +++ b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/NetflowVersion.java @@ -76,26 +76,20 @@ public enum NetflowVersion public final int getNumber() { if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( + throw new IllegalArgumentException( "Can't get the number of an unknown enum value."); } return value; } /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. * @deprecated Use {@link #forNumber(int)} instead. */ - @java.lang.Deprecated + @Deprecated public static NetflowVersion valueOf(int value) { return forNumber(value); } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ public static NetflowVersion forNumber(int value) { switch (value) { case 0: return V5; @@ -120,10 +114,6 @@ public NetflowVersion findValueByNumber(int number) { public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } return getDescriptor().getValues().get(ordinal()); } public final com.google.protobuf.Descriptors.EnumDescriptor @@ -132,7 +122,7 @@ public NetflowVersion findValueByNumber(int number) { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.getDescriptor().getEnumTypes().get(2); + return EnrichedFlowProtos.getDescriptor().getEnumTypes().get(2); } private static final NetflowVersion[] VALUES = values(); @@ -140,7 +130,7 @@ public NetflowVersion findValueByNumber(int number) { public static NetflowVersion valueOf( com.google.protobuf.Descriptors.EnumValueDescriptor desc) { if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( + throw new IllegalArgumentException( "EnumValueDescriptor is not for this type."); } if (desc.getIndex() == -1) { diff --git a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/NodeInfo.java b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/NodeInfo.java index 428515373871..dc0aab5073ef 100644 --- a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/NodeInfo.java +++ b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/NodeInfo.java @@ -34,7 +34,7 @@ /** * Protobuf type {@code NodeInfo} */ -public final class NodeInfo extends +public final class NodeInfo extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:NodeInfo) NodeInfoOrBuilder { @@ -49,14 +49,14 @@ private NodeInfo() { categories_ = com.google.protobuf.LazyStringArrayList.EMPTY; } - @java.lang.Override + @Override @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( + protected Object newInstance( UnusedPrivateParameter unused) { return new NodeInfo(); } - @java.lang.Override + @Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; @@ -67,7 +67,7 @@ private NodeInfo( throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); + throw new NullPointerException(); } int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = @@ -81,13 +81,13 @@ private NodeInfo( done = true; break; case 10: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); foreignSource_ = s; break; } case 18: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); foreginId_ = s; break; @@ -98,7 +98,7 @@ private NodeInfo( break; } case 34: { - java.lang.String s = input.readStringRequireUtf8(); + String s = input.readStringRequireUtf8(); if (!((mutable_bitField0_ & 0x00000001) != 0)) { categories_ = new com.google.protobuf.LazyStringArrayList(); mutable_bitField0_ |= 0x00000001; @@ -130,48 +130,44 @@ private NodeInfo( } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.internal_static_NodeInfo_descriptor; + return EnrichedFlowProtos.internal_static_NodeInfo_descriptor; } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + @Override + protected FieldAccessorTable internalGetFieldAccessorTable() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.internal_static_NodeInfo_fieldAccessorTable + return EnrichedFlowProtos.internal_static_NodeInfo_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.opennms.netmgt.flows.persistence.model.NodeInfo.class, org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder.class); + NodeInfo.class, Builder.class); } public static final int FOREIGN_SOURCE_FIELD_NUMBER = 1; - private volatile java.lang.Object foreignSource_; + private volatile Object foreignSource_; /** * string foreign_source = 1; - * @return The foreignSource. */ - @java.lang.Override - public java.lang.String getForeignSource() { - java.lang.Object ref = foreignSource_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; + public String getForeignSource() { + Object ref = foreignSource_; + if (ref instanceof String) { + return (String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); foreignSource_ = s; return s; } } /** * string foreign_source = 1; - * @return The bytes for foreignSource. */ - @java.lang.Override public com.google.protobuf.ByteString getForeignSourceBytes() { - java.lang.Object ref = foreignSource_; - if (ref instanceof java.lang.String) { + Object ref = foreignSource_; + if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); foreignSource_ = b; return b; } else { @@ -180,36 +176,32 @@ public java.lang.String getForeignSource() { } public static final int FOREGIN_ID_FIELD_NUMBER = 2; - private volatile java.lang.Object foreginId_; + private volatile Object foreginId_; /** * string foregin_id = 2; - * @return The foreginId. */ - @java.lang.Override - public java.lang.String getForeginId() { - java.lang.Object ref = foreginId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; + public String getForeginId() { + Object ref = foreginId_; + if (ref instanceof String) { + return (String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); foreginId_ = s; return s; } } /** * string foregin_id = 2; - * @return The bytes for foreginId. */ - @java.lang.Override public com.google.protobuf.ByteString getForeginIdBytes() { - java.lang.Object ref = foreginId_; - if (ref instanceof java.lang.String) { + Object ref = foreginId_; + if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); foreginId_ = b; return b; } else { @@ -221,9 +213,7 @@ public java.lang.String getForeginId() { private int nodeId_; /** * uint32 node_id = 3; - * @return The nodeId. */ - @java.lang.Override public int getNodeId() { return nodeId_; } @@ -232,7 +222,6 @@ public int getNodeId() { private com.google.protobuf.LazyStringList categories_; /** * repeated string categories = 4; - * @return A list containing the categories. */ public com.google.protobuf.ProtocolStringList getCategoriesList() { @@ -240,23 +229,18 @@ public int getNodeId() { } /** * repeated string categories = 4; - * @return The count of categories. */ public int getCategoriesCount() { return categories_.size(); } /** * repeated string categories = 4; - * @param index The index of the element to return. - * @return The categories at the given index. */ - public java.lang.String getCategories(int index) { + public String getCategories(int index) { return categories_.get(index); } /** * repeated string categories = 4; - * @param index The index of the value to return. - * @return The bytes of the categories at the given index. */ public com.google.protobuf.ByteString getCategoriesBytes(int index) { @@ -264,7 +248,7 @@ public java.lang.String getCategories(int index) { } private byte memoizedIsInitialized = -1; - @java.lang.Override + @Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -274,7 +258,7 @@ public final boolean isInitialized() { return true; } - @java.lang.Override + @Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!getForeignSourceBytes().isEmpty()) { @@ -292,7 +276,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) unknownFields.writeTo(output); } - @java.lang.Override + @Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -321,15 +305,15 @@ public int getSerializedSize() { return size; } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { + @Override + public boolean equals(final Object obj) { if (obj == this) { return true; } - if (!(obj instanceof org.opennms.netmgt.flows.persistence.model.NodeInfo)) { + if (!(obj instanceof NodeInfo)) { return super.equals(obj); } - org.opennms.netmgt.flows.persistence.model.NodeInfo other = (org.opennms.netmgt.flows.persistence.model.NodeInfo) obj; + NodeInfo other = (NodeInfo) obj; if (!getForeignSource() .equals(other.getForeignSource())) return false; @@ -343,7 +327,7 @@ public boolean equals(final java.lang.Object obj) { return true; } - @java.lang.Override + @Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; @@ -365,69 +349,69 @@ public int hashCode() { return hash; } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseFrom( + public static NodeInfo parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseFrom( + public static NodeInfo parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseFrom( + public static NodeInfo parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseFrom( + public static NodeInfo parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseFrom(byte[] data) + public static NodeInfo parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseFrom( + public static NodeInfo parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseFrom(java.io.InputStream input) + public static NodeInfo parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseFrom( + public static NodeInfo parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseDelimitedFrom(java.io.InputStream input) + public static NodeInfo parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseDelimitedFrom( + public static NodeInfo parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseFrom( + public static NodeInfo parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseFrom( + public static NodeInfo parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -435,23 +419,23 @@ public static org.opennms.netmgt.flows.persistence.model.NodeInfo parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } - @java.lang.Override + @Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(org.opennms.netmgt.flows.persistence.model.NodeInfo prototype) { + public static Builder newBuilder(NodeInfo prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - @java.lang.Override + @Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @java.lang.Override + @Override protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + BuilderParent parent) { Builder builder = new Builder(parent); return builder; } @@ -461,18 +445,18 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:NodeInfo) - org.opennms.netmgt.flows.persistence.model.NodeInfoOrBuilder { + NodeInfoOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.internal_static_NodeInfo_descriptor; + return EnrichedFlowProtos.internal_static_NodeInfo_descriptor; } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + @Override + protected FieldAccessorTable internalGetFieldAccessorTable() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.internal_static_NodeInfo_fieldAccessorTable + return EnrichedFlowProtos.internal_static_NodeInfo_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.opennms.netmgt.flows.persistence.model.NodeInfo.class, org.opennms.netmgt.flows.persistence.model.NodeInfo.Builder.class); + NodeInfo.class, Builder.class); } // Construct using org.opennms.netmgt.flows.persistence.model.NodeInfo.newBuilder() @@ -481,7 +465,7 @@ private Builder() { } private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } @@ -490,7 +474,7 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } - @java.lang.Override + @Override public Builder clear() { super.clear(); foreignSource_ = ""; @@ -504,29 +488,29 @@ public Builder clear() { return this; } - @java.lang.Override + @Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.internal_static_NodeInfo_descriptor; + return EnrichedFlowProtos.internal_static_NodeInfo_descriptor; } - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.NodeInfo getDefaultInstanceForType() { - return org.opennms.netmgt.flows.persistence.model.NodeInfo.getDefaultInstance(); + @Override + public NodeInfo getDefaultInstanceForType() { + return NodeInfo.getDefaultInstance(); } - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.NodeInfo build() { - org.opennms.netmgt.flows.persistence.model.NodeInfo result = buildPartial(); + @Override + public NodeInfo build() { + NodeInfo result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.NodeInfo buildPartial() { - org.opennms.netmgt.flows.persistence.model.NodeInfo result = new org.opennms.netmgt.flows.persistence.model.NodeInfo(this); + @Override + public NodeInfo buildPartial() { + NodeInfo result = new NodeInfo(this); int from_bitField0_ = bitField0_; result.foreignSource_ = foreignSource_; result.foreginId_ = foreginId_; @@ -540,50 +524,50 @@ public org.opennms.netmgt.flows.persistence.model.NodeInfo buildPartial() { return result; } - @java.lang.Override + @Override public Builder clone() { return super.clone(); } - @java.lang.Override + @Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { + Object value) { return super.setField(field, value); } - @java.lang.Override + @Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } - @java.lang.Override + @Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } - @java.lang.Override + @Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { + int index, Object value) { return super.setRepeatedField(field, index, value); } - @java.lang.Override + @Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { + Object value) { return super.addRepeatedField(field, value); } - @java.lang.Override + @Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.opennms.netmgt.flows.persistence.model.NodeInfo) { - return mergeFrom((org.opennms.netmgt.flows.persistence.model.NodeInfo)other); + if (other instanceof NodeInfo) { + return mergeFrom((NodeInfo)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(org.opennms.netmgt.flows.persistence.model.NodeInfo other) { - if (other == org.opennms.netmgt.flows.persistence.model.NodeInfo.getDefaultInstance()) return this; + public Builder mergeFrom(NodeInfo other) { + if (other == NodeInfo.getDefaultInstance()) return this; if (!other.getForeignSource().isEmpty()) { foreignSource_ = other.foreignSource_; onChanged(); @@ -610,21 +594,21 @@ public Builder mergeFrom(org.opennms.netmgt.flows.persistence.model.NodeInfo oth return this; } - @java.lang.Override + @Override public final boolean isInitialized() { return true; } - @java.lang.Override + @Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - org.opennms.netmgt.flows.persistence.model.NodeInfo parsedMessage = null; + NodeInfo parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.opennms.netmgt.flows.persistence.model.NodeInfo) e.getUnfinishedMessage(); + parsedMessage = (NodeInfo) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -635,34 +619,32 @@ public Builder mergeFrom( } private int bitField0_; - private java.lang.Object foreignSource_ = ""; + private Object foreignSource_ = ""; /** * string foreign_source = 1; - * @return The foreignSource. */ - public java.lang.String getForeignSource() { - java.lang.Object ref = foreignSource_; - if (!(ref instanceof java.lang.String)) { + public String getForeignSource() { + Object ref = foreignSource_; + if (!(ref instanceof String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); foreignSource_ = s; return s; } else { - return (java.lang.String) ref; + return (String) ref; } } /** * string foreign_source = 1; - * @return The bytes for foreignSource. */ public com.google.protobuf.ByteString getForeignSourceBytes() { - java.lang.Object ref = foreignSource_; + Object ref = foreignSource_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); foreignSource_ = b; return b; } else { @@ -671,11 +653,9 @@ public java.lang.String getForeignSource() { } /** * string foreign_source = 1; - * @param value The foreignSource to set. - * @return This builder for chaining. */ public Builder setForeignSource( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -686,7 +666,6 @@ public Builder setForeignSource( } /** * string foreign_source = 1; - * @return This builder for chaining. */ public Builder clearForeignSource() { @@ -696,8 +675,6 @@ public Builder clearForeignSource() { } /** * string foreign_source = 1; - * @param value The bytes for foreignSource to set. - * @return This builder for chaining. */ public Builder setForeignSourceBytes( com.google.protobuf.ByteString value) { @@ -711,34 +688,32 @@ public Builder setForeignSourceBytes( return this; } - private java.lang.Object foreginId_ = ""; + private Object foreginId_ = ""; /** * string foregin_id = 2; - * @return The foreginId. */ - public java.lang.String getForeginId() { - java.lang.Object ref = foreginId_; - if (!(ref instanceof java.lang.String)) { + public String getForeginId() { + Object ref = foreginId_; + if (!(ref instanceof String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); + String s = bs.toStringUtf8(); foreginId_ = s; return s; } else { - return (java.lang.String) ref; + return (String) ref; } } /** * string foregin_id = 2; - * @return The bytes for foreginId. */ public com.google.protobuf.ByteString getForeginIdBytes() { - java.lang.Object ref = foreginId_; + Object ref = foreginId_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); + (String) ref); foreginId_ = b; return b; } else { @@ -747,11 +722,9 @@ public java.lang.String getForeginId() { } /** * string foregin_id = 2; - * @param value The foreginId to set. - * @return This builder for chaining. */ public Builder setForeginId( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -762,7 +735,6 @@ public Builder setForeginId( } /** * string foregin_id = 2; - * @return This builder for chaining. */ public Builder clearForeginId() { @@ -772,8 +744,6 @@ public Builder clearForeginId() { } /** * string foregin_id = 2; - * @param value The bytes for foreginId to set. - * @return This builder for chaining. */ public Builder setForeginIdBytes( com.google.protobuf.ByteString value) { @@ -790,16 +760,12 @@ public Builder setForeginIdBytes( private int nodeId_ ; /** * uint32 node_id = 3; - * @return The nodeId. */ - @java.lang.Override public int getNodeId() { return nodeId_; } /** * uint32 node_id = 3; - * @param value The nodeId to set. - * @return This builder for chaining. */ public Builder setNodeId(int value) { @@ -809,7 +775,6 @@ public Builder setNodeId(int value) { } /** * uint32 node_id = 3; - * @return This builder for chaining. */ public Builder clearNodeId() { @@ -827,7 +792,6 @@ private void ensureCategoriesIsMutable() { } /** * repeated string categories = 4; - * @return A list containing the categories. */ public com.google.protobuf.ProtocolStringList getCategoriesList() { @@ -835,23 +799,18 @@ private void ensureCategoriesIsMutable() { } /** * repeated string categories = 4; - * @return The count of categories. */ public int getCategoriesCount() { return categories_.size(); } /** * repeated string categories = 4; - * @param index The index of the element to return. - * @return The categories at the given index. */ - public java.lang.String getCategories(int index) { + public String getCategories(int index) { return categories_.get(index); } /** * repeated string categories = 4; - * @param index The index of the value to return. - * @return The bytes of the categories at the given index. */ public com.google.protobuf.ByteString getCategoriesBytes(int index) { @@ -859,12 +818,9 @@ public java.lang.String getCategories(int index) { } /** * repeated string categories = 4; - * @param index The index to set the value at. - * @param value The categories to set. - * @return This builder for chaining. */ public Builder setCategories( - int index, java.lang.String value) { + int index, String value) { if (value == null) { throw new NullPointerException(); } @@ -875,11 +831,9 @@ public Builder setCategories( } /** * repeated string categories = 4; - * @param value The categories to add. - * @return This builder for chaining. */ public Builder addCategories( - java.lang.String value) { + String value) { if (value == null) { throw new NullPointerException(); } @@ -890,11 +844,9 @@ public Builder addCategories( } /** * repeated string categories = 4; - * @param values The categories to add. - * @return This builder for chaining. */ public Builder addAllCategories( - java.lang.Iterable values) { + Iterable values) { ensureCategoriesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, categories_); @@ -903,7 +855,6 @@ public Builder addAllCategories( } /** * repeated string categories = 4; - * @return This builder for chaining. */ public Builder clearCategories() { categories_ = com.google.protobuf.LazyStringArrayList.EMPTY; @@ -913,8 +864,6 @@ public Builder clearCategories() { } /** * repeated string categories = 4; - * @param value The bytes of the categories to add. - * @return This builder for chaining. */ public Builder addCategoriesBytes( com.google.protobuf.ByteString value) { @@ -927,13 +876,13 @@ public Builder addCategoriesBytes( onChanged(); return this; } - @java.lang.Override + @Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } - @java.lang.Override + @Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); @@ -944,18 +893,18 @@ public final Builder mergeUnknownFields( } // @@protoc_insertion_point(class_scope:NodeInfo) - private static final org.opennms.netmgt.flows.persistence.model.NodeInfo DEFAULT_INSTANCE; + private static final NodeInfo DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new org.opennms.netmgt.flows.persistence.model.NodeInfo(); + DEFAULT_INSTANCE = new NodeInfo(); } - public static org.opennms.netmgt.flows.persistence.model.NodeInfo getDefaultInstance() { + public static NodeInfo getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override + @Override public NodeInfo parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -968,13 +917,13 @@ public static com.google.protobuf.Parser parser() { return PARSER; } - @java.lang.Override + @Override public com.google.protobuf.Parser getParserForType() { return PARSER; } - @java.lang.Override - public org.opennms.netmgt.flows.persistence.model.NodeInfo getDefaultInstanceForType() { + @Override + public NodeInfo getDefaultInstanceForType() { return DEFAULT_INSTANCE; } diff --git a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/NodeInfoOrBuilder.java b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/NodeInfoOrBuilder.java index 2564862163cf..a3f0c72541e8 100644 --- a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/NodeInfoOrBuilder.java +++ b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/NodeInfoOrBuilder.java @@ -37,55 +37,44 @@ public interface NodeInfoOrBuilder extends /** * string foreign_source = 1; - * @return The foreignSource. */ - java.lang.String getForeignSource(); + String getForeignSource(); /** * string foreign_source = 1; - * @return The bytes for foreignSource. */ com.google.protobuf.ByteString getForeignSourceBytes(); /** * string foregin_id = 2; - * @return The foreginId. */ - java.lang.String getForeginId(); + String getForeginId(); /** * string foregin_id = 2; - * @return The bytes for foreginId. */ com.google.protobuf.ByteString getForeginIdBytes(); /** * uint32 node_id = 3; - * @return The nodeId. */ int getNodeId(); /** * repeated string categories = 4; - * @return A list containing the categories. */ - java.util.List + java.util.List getCategoriesList(); /** * repeated string categories = 4; - * @return The count of categories. */ int getCategoriesCount(); /** * repeated string categories = 4; - * @param index The index of the element to return. - * @return The categories at the given index. */ - java.lang.String getCategories(int index); + String getCategories(int index); /** * repeated string categories = 4; - * @param index The index of the value to return. - * @return The bytes of the categories at the given index. */ com.google.protobuf.ByteString getCategoriesBytes(int index); diff --git a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/SamplingAlgorithm.java b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/SamplingAlgorithm.java index 778a5f9d5cc4..e32537cc78e7 100644 --- a/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/SamplingAlgorithm.java +++ b/features/flows/kafka-persistence/src/main/java/org/opennms/netmgt/flows/persistence/model/SamplingAlgorithm.java @@ -107,26 +107,20 @@ public enum SamplingAlgorithm public final int getNumber() { if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( + throw new IllegalArgumentException( "Can't get the number of an unknown enum value."); } return value; } /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. * @deprecated Use {@link #forNumber(int)} instead. */ - @java.lang.Deprecated + @Deprecated public static SamplingAlgorithm valueOf(int value) { return forNumber(value); } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ public static SamplingAlgorithm forNumber(int value) { switch (value) { case 0: return UNASSIGNED; @@ -155,10 +149,6 @@ public SamplingAlgorithm findValueByNumber(int number) { public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } return getDescriptor().getValues().get(ordinal()); } public final com.google.protobuf.Descriptors.EnumDescriptor @@ -167,7 +157,7 @@ public SamplingAlgorithm findValueByNumber(int number) { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return org.opennms.netmgt.flows.persistence.model.EnrichedFlowProtos.getDescriptor().getEnumTypes().get(1); + return EnrichedFlowProtos.getDescriptor().getEnumTypes().get(1); } private static final SamplingAlgorithm[] VALUES = values(); @@ -175,7 +165,7 @@ public SamplingAlgorithm findValueByNumber(int number) { public static SamplingAlgorithm valueOf( com.google.protobuf.Descriptors.EnumValueDescriptor desc) { if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( + throw new IllegalArgumentException( "EnumValueDescriptor is not for this type."); } if (desc.getIndex() == -1) { diff --git a/features/flows/kafka-persistence/src/main/proto/flowdocument.proto b/features/flows/kafka-persistence/src/main/proto/flowdocument.proto index eaa1da23bf2d..8003a011e39a 100644 --- a/features/flows/kafka-persistence/src/main/proto/flowdocument.proto +++ b/features/flows/kafka-persistence/src/main/proto/flowdocument.proto @@ -89,7 +89,7 @@ message FlowDocument { Locality src_locality = 41; Locality dst_locality = 42; Locality flow_locality = 43; - string convo_key = 44; + reserved 44; // former convo_key uint64 clock_correction = 45; // Applied clock correction im milliseconds. google.protobuf.UInt32Value dscp = 46; // DSCP; upper 6 bits of TOS google.protobuf.UInt32Value ecn = 47; // ECN; lower 2 bits of TOS diff --git a/features/flows/pom.xml b/features/flows/pom.xml index 208c38d3e589..2f6d879fbead 100644 --- a/features/flows/pom.xml +++ b/features/flows/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/flows/rest/api/pom.xml b/features/flows/rest/api/pom.xml index b13cb60f0ad6..b45b64e6a2d3 100644 --- a/features/flows/rest/api/pom.xml +++ b/features/flows/rest/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.flows org.opennms.features.flows.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows.rest diff --git a/features/flows/rest/impl/pom.xml b/features/flows/rest/impl/pom.xml index 2f8a56aeabf9..e38107defc6b 100644 --- a/features/flows/rest/impl/pom.xml +++ b/features/flows/rest/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.flows org.opennms.features.flows.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows.rest diff --git a/features/flows/rest/pom.xml b/features/flows/rest/pom.xml index d350e0f40f19..d27ac6f540a8 100644 --- a/features/flows/rest/pom.xml +++ b/features/flows/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.flows - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.flows diff --git a/features/geocoder/api/pom.xml b/features/geocoder/api/pom.xml index 87111d633658..ea6cf9050e3b 100644 --- a/features/geocoder/api/pom.xml +++ b/features/geocoder/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.geocoder - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.geocoder diff --git a/features/geocoder/google/pom.xml b/features/geocoder/google/pom.xml index 0911a6ba7145..a2cc1b85fb1e 100644 --- a/features/geocoder/google/pom.xml +++ b/features/geocoder/google/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.geocoder - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.geocoder diff --git a/features/geocoder/mapquest/pom.xml b/features/geocoder/mapquest/pom.xml index b8652f7ffecc..10c068e17db9 100644 --- a/features/geocoder/mapquest/pom.xml +++ b/features/geocoder/mapquest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.geocoder - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.geocoder diff --git a/features/geocoder/nominatim/pom.xml b/features/geocoder/nominatim/pom.xml index 7aec4c47e17b..995336e23ce8 100644 --- a/features/geocoder/nominatim/pom.xml +++ b/features/geocoder/nominatim/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.geocoder - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.geocoder @@ -64,7 +64,7 @@ true opennms-repo OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/features/geocoder/pom.xml b/features/geocoder/pom.xml index 147ead05be0f..65aa2f9f2add 100644 --- a/features/geocoder/pom.xml +++ b/features/geocoder/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/geocoder/rest/pom.xml b/features/geocoder/rest/pom.xml index 81b55636045a..9d3454903300 100644 --- a/features/geocoder/rest/pom.xml +++ b/features/geocoder/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.geocoder - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.geocoder diff --git a/features/geocoder/service/pom.xml b/features/geocoder/service/pom.xml index 25f0d66fab39..344eed6c31d6 100644 --- a/features/geocoder/service/pom.xml +++ b/features/geocoder/service/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.geocoder - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.geocoder @@ -34,7 +34,7 @@
org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/geolocation/api/pom.xml b/features/geolocation/api/pom.xml index e037869e2d4e..63b991c77f1b 100644 --- a/features/geolocation/api/pom.xml +++ b/features/geolocation/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.geolocation - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.geolocation diff --git a/features/geolocation/pom.xml b/features/geolocation/pom.xml index 0e502ea77887..77cfe2e6db86 100644 --- a/features/geolocation/pom.xml +++ b/features/geolocation/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/geolocation/rest/pom.xml b/features/geolocation/rest/pom.xml index 2a1d18655505..890ee3854266 100644 --- a/features/geolocation/rest/pom.xml +++ b/features/geolocation/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.geolocation - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.geolocation diff --git a/features/geolocation/service/pom.xml b/features/geolocation/service/pom.xml index 02b525dc703b..fdad564129d6 100644 --- a/features/geolocation/service/pom.xml +++ b/features/geolocation/service/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.geolocation - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.geolocation @@ -25,7 +25,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/graph/api/pom.xml b/features/graph/api/pom.xml index bd8cb401ec28..2b84863735d7 100644 --- a/features/graph/api/pom.xml +++ b/features/graph/api/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.graph - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph diff --git a/features/graph/dao/api/pom.xml b/features/graph/dao/api/pom.xml index 859e19b04ad4..f349390e6f59 100644 --- a/features/graph/dao/api/pom.xml +++ b/features/graph/dao/api/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.graph org.opennms.features.graph.dao - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph.dao diff --git a/features/graph/dao/impl/pom.xml b/features/graph/dao/impl/pom.xml index d6824766ac18..a3025a080a5f 100644 --- a/features/graph/dao/impl/pom.xml +++ b/features/graph/dao/impl/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.graph org.opennms.features.graph.dao - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph.dao diff --git a/features/graph/dao/pom.xml b/features/graph/dao/pom.xml index 3ea39f36325d..fd3e0f5a12fc 100644 --- a/features/graph/dao/pom.xml +++ b/features/graph/dao/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.graph - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph diff --git a/features/graph/domain/pom.xml b/features/graph/domain/pom.xml index 7beef82cea65..164c4f00bcbd 100644 --- a/features/graph/domain/pom.xml +++ b/features/graph/domain/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.graph - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph diff --git a/features/graph/jung/pom.xml b/features/graph/jung/pom.xml index 912a997143e8..c062392cdd47 100644 --- a/features/graph/jung/pom.xml +++ b/features/graph/jung/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.graph - 28.1.1 + 29.0.0-SNAPSHOT diff --git a/features/graph/pom.xml b/features/graph/pom.xml index 5eb7413e1f85..6b318ea45d72 100644 --- a/features/graph/pom.xml +++ b/features/graph/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/graph/provider/application/pom.xml b/features/graph/provider/application/pom.xml index 2aafabaf9654..7825e4ecb66c 100644 --- a/features/graph/provider/application/pom.xml +++ b/features/graph/provider/application/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.graph org.opennms.features.graph.provider - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph.provider diff --git a/features/graph/provider/bsm/pom.xml b/features/graph/provider/bsm/pom.xml index 878a0f0126c5..45c3919c9672 100644 --- a/features/graph/provider/bsm/pom.xml +++ b/features/graph/provider/bsm/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.graph org.opennms.features.graph.provider - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph.provider diff --git a/features/graph/provider/graphml/pom.xml b/features/graph/provider/graphml/pom.xml index 5c42e60f6031..da8b4eacbfd5 100644 --- a/features/graph/provider/graphml/pom.xml +++ b/features/graph/provider/graphml/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.graph org.opennms.features.graph.provider - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph.provider @@ -36,7 +36,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/graph/provider/legacy/pom.xml b/features/graph/provider/legacy/pom.xml index e3952e258b06..040bd2afbcb7 100644 --- a/features/graph/provider/legacy/pom.xml +++ b/features/graph/provider/legacy/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.graph org.opennms.features.graph.provider - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph.provider @@ -30,7 +30,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/graph/provider/persistence-test/pom.xml b/features/graph/provider/persistence-test/pom.xml index ec15e5e35c69..242bb9f6be1c 100644 --- a/features/graph/provider/persistence-test/pom.xml +++ b/features/graph/provider/persistence-test/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.graph org.opennms.features.graph.provider - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph.provider @@ -29,7 +29,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/graph/provider/pom.xml b/features/graph/provider/pom.xml index 3455b4f2cc26..60636d18f26c 100644 --- a/features/graph/provider/pom.xml +++ b/features/graph/provider/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.graph - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph diff --git a/features/graph/provider/topology/pom.xml b/features/graph/provider/topology/pom.xml index 6eda3ce53322..595cfd9a4770 100644 --- a/features/graph/provider/topology/pom.xml +++ b/features/graph/provider/topology/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.graph org.opennms.features.graph.provider - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph.provider @@ -30,7 +30,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/graph/rest/api/pom.xml b/features/graph/rest/api/pom.xml index 9eafe5058356..3a8dc9f43262 100644 --- a/features/graph/rest/api/pom.xml +++ b/features/graph/rest/api/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.graph org.opennms.features.graph.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph.rest diff --git a/features/graph/rest/impl/pom.xml b/features/graph/rest/impl/pom.xml index c2e36eaa011c..068664e4e4a9 100644 --- a/features/graph/rest/impl/pom.xml +++ b/features/graph/rest/impl/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.graph org.opennms.features.graph.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph.rest @@ -32,7 +32,7 @@ org.osgi - org.osgi.core + osgi.core provided
diff --git a/features/graph/rest/pom.xml b/features/graph/rest/pom.xml index 59382e77cad6..c3fbba1400bb 100644 --- a/features/graph/rest/pom.xml +++ b/features/graph/rest/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.graph - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph diff --git a/features/graph/service/pom.xml b/features/graph/service/pom.xml index 42ec89ff8e54..bb7093137319 100644 --- a/features/graph/service/pom.xml +++ b/features/graph/service/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.graph - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph @@ -29,7 +29,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/graph/shell/pom.xml b/features/graph/shell/pom.xml index 927265340be5..46e8b1e6dbb7 100644 --- a/features/graph/shell/pom.xml +++ b/features/graph/shell/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.graph - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graph @@ -39,7 +39,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/graphml/api/pom.xml b/features/graphml/api/pom.xml index 54eaa2ed40f0..a0503e3d5ab4 100644 --- a/features/graphml/api/pom.xml +++ b/features/graphml/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.graphml - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graphml diff --git a/features/graphml/api/src/main/resources/org/graphdrawing/graphml/jaxb.properties b/features/graphml/api/src/main/resources/org/graphdrawing/graphml/jaxb.properties index 6dd39dea05e9..5b4f23b3e1b0 100644 --- a/features/graphml/api/src/main/resources/org/graphdrawing/graphml/jaxb.properties +++ b/features/graphml/api/src/main/resources/org/graphdrawing/graphml/jaxb.properties @@ -27,3 +27,4 @@ ############################################################################### javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory +javax.xml.bind.JAXBContextFactory=org.eclipse.persistence.jaxb.JAXBContextFactory diff --git a/features/graphml/pom.xml b/features/graphml/pom.xml index 7a0cf98eff40..42c313175737 100644 --- a/features/graphml/pom.xml +++ b/features/graphml/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/graphml/rest/pom.xml b/features/graphml/rest/pom.xml index 227e65d57bfb..824210b55b27 100644 --- a/features/graphml/rest/pom.xml +++ b/features/graphml/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.graphml - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graphml diff --git a/features/graphml/service/pom.xml b/features/graphml/service/pom.xml index 29219384fd49..1670ef939258 100644 --- a/features/graphml/service/pom.xml +++ b/features/graphml/service/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.graphml - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.graphml diff --git a/features/ifttt/pom.xml b/features/ifttt/pom.xml index b20d56d9a48c..640b39897bd9 100644 --- a/features/ifttt/pom.xml +++ b/features/ifttt/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/ifttt/src/main/java/org/opennms/features/ifttt/helper/IfTttTrigger.java b/features/ifttt/src/main/java/org/opennms/features/ifttt/helper/IfTttTrigger.java index c379ab1f8b93..e88b62541678 100644 --- a/features/ifttt/src/main/java/org/opennms/features/ifttt/helper/IfTttTrigger.java +++ b/features/ifttt/src/main/java/org/opennms/features/ifttt/helper/IfTttTrigger.java @@ -28,17 +28,22 @@ package org.opennms.features.ifttt.helper; -import java.io.IOException; - import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; +import org.opennms.core.utils.RelaxedX509ExtendedTrustManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import java.io.IOException; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; + /** * Helper class for constructing and invoking IFTTT requests. */ @@ -52,8 +57,15 @@ public class IfTttTrigger { private String value1 = ""; private String value2 = ""; private String value3 = ""; + private SSLContext sslContext; public IfTttTrigger() { + try { + sslContext = SSLContext.getInstance("SSL"); + sslContext.init(null, new TrustManager[] { new RelaxedX509ExtendedTrustManager() }, new java.security.SecureRandom()); + } catch (NoSuchAlgorithmException | KeyManagementException e) { + LOG.error("Error creating SSL context", e); + } } public IfTttTrigger key(final String key) { @@ -82,7 +94,7 @@ public IfTttTrigger event(final String event) { } public void trigger() { - try (final CloseableHttpClient httpclient = HttpClients.custom().setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE).build()) { + try (final CloseableHttpClient httpclient = HttpClients.custom().setSSLContext(sslContext).setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE).build()) { LOG.debug("Sending '" + event + "' event to IFTTT."); final HttpPost httpPost = new HttpPost(String.format(IFTTT_URL, event, key)); diff --git a/features/ifttt/src/test/java/org/opennms/features/ifttt/helper/IfTttTriggerTest.java b/features/ifttt/src/test/java/org/opennms/features/ifttt/helper/IfTttTriggerTest.java index c4706eaf3b2a..945bacc577a1 100644 --- a/features/ifttt/src/test/java/org/opennms/features/ifttt/helper/IfTttTriggerTest.java +++ b/features/ifttt/src/test/java/org/opennms/features/ifttt/helper/IfTttTriggerTest.java @@ -27,13 +27,6 @@ *******************************************************************************/ package org.opennms.features.ifttt.helper; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.mockStatic; -import static org.mockito.Mockito.when; - -import java.io.IOException; - import org.apache.commons.io.IOUtils; import org.apache.http.HttpVersion; import org.apache.http.client.methods.CloseableHttpResponse; @@ -50,6 +43,12 @@ import org.mockito.stubbing.Answer; import org.opennms.core.test.MockLogAppender; +import javax.net.ssl.SSLContext; +import java.io.IOException; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.*; + public class IfTttTriggerTest { private static final String TEST_KEY = "abc123def456"; private static final String TEST_EVENT = "xyz"; @@ -60,7 +59,7 @@ public void setup() { } @Test - public void triggerTest() throws IOException { + public void triggerTest() throws IOException, Exception { final IfTttTrigger ifTttTrigger = new IfTttTrigger(); final CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); @@ -82,6 +81,7 @@ public Object answer(InvocationOnMock invocationOnMock) throws Throwable { HttpClientBuilder httpClientBuilder = mock(HttpClientBuilder.class); when(HttpClients.custom()).thenReturn(httpClientBuilder); when(httpClientBuilder.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)).thenReturn(httpClientBuilder); + when(httpClientBuilder.setSSLContext(any())).thenReturn(httpClientBuilder); when(httpClientBuilder.build()).thenReturn(closeableHttpClient); ifTttTrigger.key(TEST_KEY).event(TEST_EVENT).value1("abc1").value2("will-be-overwritten").value2("abc2").value3("abc3").trigger(); diff --git a/features/instrumentationLogReader/pom.xml b/features/instrumentationLogReader/pom.xml index 201d9ad6eed8..9531f7c840d0 100644 --- a/features/instrumentationLogReader/pom.xml +++ b/features/instrumentationLogReader/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features org.opennms.features.instrumentationLogReader diff --git a/features/jdbc-collector/pom.xml b/features/jdbc-collector/pom.xml index 0f0ed8f132f0..a4ea402ce7f6 100644 --- a/features/jdbc-collector/pom.xml +++ b/features/jdbc-collector/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/jest/client/pom.xml b/features/jest/client/pom.xml index 57fff8459469..34e6bd36218d 100644 --- a/features/jest/client/pom.xml +++ b/features/jest/client/pom.xml @@ -2,7 +2,7 @@ org.opennms.features org.opennms.features.jest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.jest @@ -11,12 +11,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/jest/dependencies/pom.xml b/features/jest/dependencies/pom.xml index 69d8afae2b2d..40a73288ed1d 100644 --- a/features/jest/dependencies/pom.xml +++ b/features/jest/dependencies/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.jest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.jest diff --git a/features/jest/feature/pom.xml b/features/jest/feature/pom.xml index 08a1b1f5247d..550f576e9943 100644 --- a/features/jest/feature/pom.xml +++ b/features/jest/feature/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.jest - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.jest opennms-jest diff --git a/features/jest/jest-complete-osgi/pom.xml b/features/jest/jest-complete-osgi/pom.xml index 26f42bf0dc3d..e7e5a560e84a 100644 --- a/features/jest/jest-complete-osgi/pom.xml +++ b/features/jest/jest-complete-osgi/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.jest - 28.1.1 + 29.0.0-SNAPSHOT @@ -216,7 +216,7 @@ opennms-repo OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/features/jest/pom.xml b/features/jest/pom.xml index 8a7fcbcaa951..8c3184bebbc8 100644 --- a/features/jest/pom.xml +++ b/features/jest/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features org.opennms.features.jest diff --git a/features/jmx-config-generator/pom.xml b/features/jmx-config-generator/pom.xml index 447782f4cb7a..7a1950745d39 100644 --- a/features/jmx-config-generator/pom.xml +++ b/features/jmx-config-generator/pom.xml @@ -6,7 +6,7 @@ org.opennms.features org.opennms - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features jmxconfiggenerator @@ -133,7 +133,7 @@ onejar-maven-plugin.googlecode.com - http://maven.opennms.org/content/repositories/onejar-maven-plugin.googlecode.com/ + https://maven.opennms.org/content/repositories/onejar-maven-plugin.googlecode.com/ diff --git a/features/juniper-tca-collector/pom.xml b/features/juniper-tca-collector/pom.xml index 9de728a05b21..810e2aa500d1 100644 --- a/features/juniper-tca-collector/pom.xml +++ b/features/juniper-tca-collector/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features @@ -170,5 +170,11 @@ opennms-dao-mock test + + org.opennms.features.distributed + org.opennms.features.distributed.kv-store.blob.in-memory + ${project.version} + test + diff --git a/features/juniper-tca-collector/src/main/java/org/opennms/netmgt/collectd/tca/TcaCollectionHandler.java b/features/juniper-tca-collector/src/main/java/org/opennms/netmgt/collectd/tca/TcaCollectionHandler.java index 6e80d07040d3..3629406d8c7f 100644 --- a/features/juniper-tca-collector/src/main/java/org/opennms/netmgt/collectd/tca/TcaCollectionHandler.java +++ b/features/juniper-tca-collector/src/main/java/org/opennms/netmgt/collectd/tca/TcaCollectionHandler.java @@ -28,6 +28,7 @@ package org.opennms.netmgt.collectd.tca; +import java.nio.charset.StandardCharsets; import java.util.Date; import java.util.Objects; import java.util.concurrent.CompletableFuture; @@ -35,6 +36,7 @@ import org.opennms.core.rpc.api.RequestRejectedException; import org.opennms.core.rpc.api.RequestTimedOutException; +import org.opennms.features.distributed.kvstore.api.BlobStore; import org.opennms.netmgt.collectd.SnmpCollectionAgent; import org.opennms.netmgt.collection.api.AttributeType; import org.opennms.netmgt.collection.api.CollectionException; @@ -46,7 +48,6 @@ import org.opennms.netmgt.collection.support.builder.NodeLevelResource; import org.opennms.netmgt.config.api.ResourceTypesDao; import org.opennms.netmgt.config.datacollection.ResourceType; -import org.opennms.netmgt.dao.api.ResourceStorageDao; import org.opennms.netmgt.model.ResourcePath; import org.opennms.netmgt.model.ResourceTypeUtils; import org.opennms.netmgt.rrd.RrdRepository; @@ -102,28 +103,28 @@ public class TcaCollectionHandler { private final RrdRepository m_repository; - private final ResourceStorageDao m_resourceStorageDao; - private final ResourceType m_resourceType; private final LocationAwareSnmpClient m_locationAwareSnmpClient; + private final BlobStore m_blobStore; + /** * Instantiates a new TCA collection set. * * @param agent the agent * @param repository the repository */ - public TcaCollectionHandler(SnmpCollectionAgent agent, RrdRepository repository, ResourceStorageDao resourceStorageDao, - ResourceTypesDao resourceTypesDao, LocationAwareSnmpClient locationAwareSnmpClient) { + public TcaCollectionHandler(SnmpCollectionAgent agent, RrdRepository repository, + ResourceTypesDao resourceTypesDao, LocationAwareSnmpClient locationAwareSnmpClient, BlobStore blobStore) { m_agent = Objects.requireNonNull(agent); m_repository = Objects.requireNonNull(repository); - m_resourceStorageDao = Objects.requireNonNull(resourceStorageDao); m_resourceType = Objects.requireNonNull(resourceTypesDao).getResourceTypeByName(RESOURCE_TYPE_NAME); if (m_resourceType == null) { throw new IllegalArgumentException("No resource of type juniperTcaEntry is defined."); } m_locationAwareSnmpClient = Objects.requireNonNull(locationAwareSnmpClient); + m_blobStore = Objects.requireNonNull(blobStore); } /** @@ -225,36 +226,29 @@ private void process(TcaData tracker, CollectionSetBuilder builder) { } } - /** - * Gets the last timestamp. - * - * @param resource the TCA resource - * @return the last timestamp - */ - private long getLastTimestamp(CollectionResource resource) { + long getLastTimestamp(CollectionResource resource) { long timestamp = 0; ResourcePath path = ResourceTypeUtils.getResourcePathWithRepository(m_repository, resource.getPath()); try { LOG.debug("Retrieving timestamp from path {}", path); - String ts = m_resourceStorageDao.getStringAttribute(path, LAST_TIMESTAMP); - if (ts != null) { - timestamp = Long.parseLong(ts); - } + timestamp = this.m_blobStore.get(toKvStoreKey(path), this.getClass().getName()) + .filter(a -> a.length>0) + .map(String::new) + .map(Long::parseLong) + .orElse(0L); } catch (Exception e) { LOG.error("Failed to retrieve timestamp from path {}", path, e); } return timestamp; } - /** - * Sets the last timestamp. - * - * @param resource the resource - * @param timestamp the timestamp - */ - private void setLastTimestamp(CollectionResource resource, long timestamp) { + void setLastTimestamp(CollectionResource resource, long timestamp) { ResourcePath path = ResourceTypeUtils.getResourcePathWithRepository(m_repository, resource.getPath()); LOG.debug("Setting timestamp to {} at path {}", timestamp, path); - m_resourceStorageDao.setStringAttribute(path, LAST_TIMESTAMP, Long.toString(timestamp)); + this.m_blobStore.put(toKvStoreKey(path), Long.toString(timestamp).getBytes(StandardCharsets.UTF_8), this.getClass().getName()); + } + + private String toKvStoreKey(ResourcePath path) { + return LAST_TIMESTAMP + String.join("/", path.elements()); } } diff --git a/features/juniper-tca-collector/src/main/java/org/opennms/netmgt/collectd/tca/TcaCollector.java b/features/juniper-tca-collector/src/main/java/org/opennms/netmgt/collectd/tca/TcaCollector.java index 66bc3bfa9834..4c00c129c118 100644 --- a/features/juniper-tca-collector/src/main/java/org/opennms/netmgt/collectd/tca/TcaCollector.java +++ b/features/juniper-tca-collector/src/main/java/org/opennms/netmgt/collectd/tca/TcaCollector.java @@ -32,6 +32,7 @@ import org.opennms.core.spring.BeanUtils; import org.opennms.core.utils.ParameterMap; +import org.opennms.features.distributed.kvstore.api.BlobStore; import org.opennms.netmgt.collectd.SnmpCollectionAgent; import org.opennms.netmgt.collectd.tca.dao.TcaDataCollectionConfigDao; import org.opennms.netmgt.collection.api.AbstractServiceCollector; @@ -65,6 +66,8 @@ public class TcaCollector extends AbstractServiceCollector { private LocationAwareSnmpClient m_locationAwareSnmpClient; + private BlobStore m_blobStore; + /* (non-Javadoc) * @see org.opennms.netmgt.collectd.ServiceCollector#initialize(java.util.Map) */ @@ -88,6 +91,9 @@ public void initialize() throws CollectionInitializationException { if (m_locationAwareSnmpClient == null) { m_locationAwareSnmpClient = BeanUtils.getBean("daoContext", "locationAwareSnmpClient", LocationAwareSnmpClient.class); } + if(m_blobStore == null) { + m_blobStore = BeanUtils.getBean("daoContext", "blobStore", BlobStore.class); + } } @Override @@ -101,7 +107,7 @@ public CollectionSet collect(CollectionAgent agent, Map paramete throw new CollectionException("Parameter collection is required for the TCA Collector!"); } TcaCollectionHandler collectionHandler = new TcaCollectionHandler((SnmpCollectionAgent)agent, getRrdRepository(collectionName), - m_resourceStorageDao, m_resourceTypesDao, m_locationAwareSnmpClient); + m_resourceTypesDao, m_locationAwareSnmpClient, m_blobStore); return collectionHandler.collect(); } catch (CollectionException e) { throw e; @@ -152,4 +158,8 @@ public void setResourceTypesDao(ResourceTypesDao resourceTypesDao) { public void setLocationAwareSnmpClient(LocationAwareSnmpClient locationAwareSnmpClient) { m_locationAwareSnmpClient = locationAwareSnmpClient; } + + public void setBlobStore(BlobStore blobStore) { + m_blobStore = blobStore; + } } diff --git a/features/juniper-tca-collector/src/main/resources/META-INF/opennms/component-dao.xml b/features/juniper-tca-collector/src/main/resources/META-INF/opennms/component-dao.xml index 0790ed4f9741..24650c7e72bf 100644 --- a/features/juniper-tca-collector/src/main/resources/META-INF/opennms/component-dao.xml +++ b/features/juniper-tca-collector/src/main/resources/META-INF/opennms/component-dao.xml @@ -1,8 +1,13 @@ - + xmlns:onmsgi="http://xmlns.opennms.org/xsd/spring/onms-osgi" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd + http://xmlns.opennms.org/xsd/spring/onms-osgi http://xmlns.opennms.org/xsd/spring/onms-osgi.xsd"> + + diff --git a/features/juniper-tca-collector/src/test/java/org/opennms/netmgt/collectd/tca/TcaCollectionHandlerTest.java b/features/juniper-tca-collector/src/test/java/org/opennms/netmgt/collectd/tca/TcaCollectionHandlerTest.java new file mode 100644 index 000000000000..52ee9ef4923f --- /dev/null +++ b/features/juniper-tca-collector/src/test/java/org/opennms/netmgt/collectd/tca/TcaCollectionHandlerTest.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021-2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + + +package org.opennms.netmgt.collectd.tca; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.when; +import static org.opennms.netmgt.collectd.tca.TcaCollectionHandler.RESOURCE_TYPE_NAME; + +import java.io.File; + +import org.junit.Test; +import org.mockito.Mockito; +import org.opennms.features.distributed.kvstore.api.BlobStore; +import org.opennms.features.distributed.kvstore.blob.inmemory.InMemoryMapBlobStore; +import org.opennms.netmgt.collectd.SnmpCollectionAgent; +import org.opennms.netmgt.collection.api.CollectionResource; +import org.opennms.netmgt.config.api.ResourceTypesDao; +import org.opennms.netmgt.config.datacollection.ResourceType; +import org.opennms.netmgt.model.ResourcePath; +import org.opennms.netmgt.rrd.RrdRepository; +import org.opennms.netmgt.snmp.proxy.LocationAwareSnmpClient; + +public class TcaCollectionHandlerTest { + @Test + public void shouldSaveLastTimestamp() { + // set up dependencies... + SnmpCollectionAgent agent = Mockito.mock(SnmpCollectionAgent.class); + RrdRepository repository = Mockito.mock(RrdRepository.class); + when(repository.getRrdBaseDir()).thenReturn(new File("/")); + ResourceTypesDao resourceTypesDao = Mockito.mock(ResourceTypesDao.class); + when(resourceTypesDao.getResourceTypeByName(RESOURCE_TYPE_NAME)).thenReturn(Mockito.mock(ResourceType.class)); + LocationAwareSnmpClient locationAwareSnmpClient = Mockito.mock(LocationAwareSnmpClient.class); + BlobStore blobStore = InMemoryMapBlobStore.withDefaultTicks(); + CollectionResource resource = Mockito.mock(CollectionResource.class); + when(resource.getPath()).thenReturn(ResourcePath.fromString("aa/bb")); + + TcaCollectionHandler handler = new TcaCollectionHandler(agent, repository, + resourceTypesDao, locationAwareSnmpClient, blobStore); + + // now test it + long timestamp = 42L; + handler.setLastTimestamp(resource, timestamp); + assertEquals(timestamp, handler.getLastTimestamp(resource)); + } +} diff --git a/features/juniper-tca-collector/src/test/java/org/opennms/netmgt/collectd/tca/TcaCollectorComplianceIT.java b/features/juniper-tca-collector/src/test/java/org/opennms/netmgt/collectd/tca/TcaCollectorComplianceIT.java index cb7f082038d1..8cbfabb1e4ed 100644 --- a/features/juniper-tca-collector/src/test/java/org/opennms/netmgt/collectd/tca/TcaCollectorComplianceIT.java +++ b/features/juniper-tca-collector/src/test/java/org/opennms/netmgt/collectd/tca/TcaCollectorComplianceIT.java @@ -38,6 +38,7 @@ import org.opennms.core.test.OpenNMSJUnit4ClassRunner; import org.opennms.core.test.db.annotations.JUnitTemporaryDatabase; import org.opennms.core.test.snmp.annotations.JUnitSnmpAgent; +import org.opennms.features.distributed.kvstore.api.BlobStore; import org.opennms.netmgt.collectd.DefaultSnmpCollectionAgent; import org.opennms.netmgt.collectd.tca.config.TcaDataCollectionConfig; import org.opennms.netmgt.collectd.tca.dao.TcaDataCollectionConfigDao; @@ -112,11 +113,14 @@ public Map getRequiredBeans() { ResourceType resourceType = TcaCollectorIT.getJuniperTcaEntryResourceType(); when(resourceTypesDao.getResourceTypeByName(TcaCollectionHandler.RESOURCE_TYPE_NAME)).thenReturn(resourceType); + BlobStore blobStore = mock(BlobStore.class); + return new ImmutableMap.Builder() .put("tcaDataCollectionConfigDao", tcaDataCollectionConfigDao) .put("resourceStorageDao", resourceStorageDao) .put("resourceTypesDao", resourceTypesDao) .put("locationAwareSnmpClient", m_client) + .put("blobStore", blobStore) .build(); } } diff --git a/features/juniper-tca-collector/src/test/java/org/opennms/netmgt/collectd/tca/TcaCollectorIT.java b/features/juniper-tca-collector/src/test/java/org/opennms/netmgt/collectd/tca/TcaCollectorIT.java index 3c83581ea6c2..10f8aed7c42e 100644 --- a/features/juniper-tca-collector/src/test/java/org/opennms/netmgt/collectd/tca/TcaCollectorIT.java +++ b/features/juniper-tca-collector/src/test/java/org/opennms/netmgt/collectd/tca/TcaCollectorIT.java @@ -52,6 +52,7 @@ import org.opennms.core.test.OpenNMSJUnit4ClassRunner; import org.opennms.core.test.db.annotations.JUnitTemporaryDatabase; import org.opennms.core.test.snmp.annotations.JUnitSnmpAgent; +import org.opennms.features.distributed.kvstore.api.BlobStore; import org.opennms.netmgt.collectd.DefaultSnmpCollectionAgent; import org.opennms.netmgt.collectd.SnmpCollectionAgent; import org.opennms.netmgt.collectd.tca.config.TcaDataCollection; @@ -159,6 +160,9 @@ public class TcaCollectorIT implements InitializingBean { private ResourceTypesDao m_resourceTypesDao; + @Autowired + private BlobStore m_blobStore; + @Override public void afterPropertiesSet() throws Exception { BeanUtils.assertAutowiring(this); @@ -268,6 +272,7 @@ public void testCollector() throws Exception { collector.setResourceStorageDao(m_resourceStorageDao); collector.setResourceTypesDao(m_resourceTypesDao); collector.setLocationAwareSnmpClient(m_client); + collector.setBlobStore(m_blobStore); CollectionSetVisitor persister = m_persisterFactory.createOneToOnePersister(new ServiceParameters(parameters), collector.getRrdRepository("default"), false, false); diff --git a/features/juniper-tca-collector/src/test/resources/META-INF/opennms/junit-component-dao.xml b/features/juniper-tca-collector/src/test/resources/META-INF/opennms/junit-component-dao.xml index 4023c0bac75b..4b1659c38e23 100644 --- a/features/juniper-tca-collector/src/test/resources/META-INF/opennms/junit-component-dao.xml +++ b/features/juniper-tca-collector/src/test/resources/META-INF/opennms/junit-component-dao.xml @@ -11,5 +11,5 @@ - + diff --git a/features/kafka/consumer/pom.xml b/features/kafka/consumer/pom.xml index fe88c51fc10c..0639c5f959a2 100644 --- a/features/kafka/consumer/pom.xml +++ b/features/kafka/consumer/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.kafka org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.kafka @@ -72,12 +72,12 @@
org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/kafka/pom.xml b/features/kafka/pom.xml index be1a9c2e1fea..ac3f77ec1362 100644 --- a/features/kafka/pom.xml +++ b/features/kafka/pom.xml @@ -7,7 +7,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/kafka/producer/pom.xml b/features/kafka/producer/pom.xml index 2363a47fd8a5..a104dc0e6f1b 100644 --- a/features/kafka/producer/pom.xml +++ b/features/kafka/producer/pom.xml @@ -9,7 +9,7 @@ org.opennms.features org.opennms.features.kafka - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -72,12 +72,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/ProtobufMapper.java b/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/ProtobufMapper.java index 08173db02b75..9b5d2b762cf8 100644 --- a/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/ProtobufMapper.java +++ b/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/ProtobufMapper.java @@ -431,6 +431,13 @@ public OpennmsModelProtos.NodeCriteria.Builder toNodeCriteria(OnmsNode node) { if (node.getForeignId() != null) { builder.setForeignId(node.getForeignId()); } + if (node.getLabel() != null) { + builder.setNodeLabel(node.getLabel()); + } + String location = node.getLocation() != null ? node.getLocation().getLocationName() : null; + if (location != null) { + builder.setLocation(location); + } return builder; } diff --git a/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/collection/CollectionSetMapper.java b/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/collection/CollectionSetMapper.java index b35bcf6252a1..6b4c5d4c0f4d 100644 --- a/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/collection/CollectionSetMapper.java +++ b/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/collection/CollectionSetMapper.java @@ -43,8 +43,10 @@ import org.opennms.netmgt.collection.api.CollectionSet; import org.opennms.netmgt.collection.api.CollectionSetVisitor; import org.opennms.netmgt.dao.api.NodeDao; +import org.opennms.netmgt.dao.api.ResourceDao; import org.opennms.netmgt.dao.api.SessionUtils; import org.opennms.netmgt.model.OnmsNode; +import org.opennms.netmgt.model.ResourceId; import org.opennms.netmgt.model.ResourceTypeUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -57,13 +59,17 @@ public class CollectionSetMapper { private static final Logger LOG = LoggerFactory.getLogger(CollectionSetMapper.class); @Autowired - private NodeDao nodeDao; + private final NodeDao nodeDao; + + @Autowired + private final ResourceDao resourceDao; private final SessionUtils sessionUtils; - public CollectionSetMapper(NodeDao nodeDao, SessionUtils sessionUtils) { + public CollectionSetMapper(NodeDao nodeDao, SessionUtils sessionUtils, ResourceDao resourceDao) { this.nodeDao = Objects.requireNonNull(nodeDao); this.sessionUtils = Objects.requireNonNull(sessionUtils); + this.resourceDao = Objects.requireNonNull(resourceDao); } public CollectionSetProtos.CollectionSet buildCollectionSetProtos(CollectionSet collectionSet) { @@ -81,10 +87,12 @@ public void visitCollectionSet(CollectionSet set) { @Override public void visitResource(CollectionResource resource) { collectionSetResourceBuilder = CollectionSetProtos.CollectionSetResource.newBuilder(); + long nodeId = 0; if (resource.getResourceTypeName().equals(CollectionResource.RESOURCE_TYPE_NODE)) { String nodeCriteria = getNodeCriteriaFromResource(resource); CollectionSetProtos.NodeLevelResource.Builder nodeResourceBuilder = buildNodeLevelResourceForProto( nodeCriteria); + nodeId = nodeResourceBuilder.getNodeId(); collectionSetResourceBuilder.setNode(nodeResourceBuilder); } else if (resource.getResourceTypeName().equals(CollectionResource.RESOURCE_TYPE_IF)) { CollectionSetProtos.InterfaceLevelResource.Builder interfaceResourceBuilder = CollectionSetProtos.InterfaceLevelResource @@ -93,6 +101,7 @@ public void visitResource(CollectionResource resource) { if (!Strings.isNullOrEmpty(nodeCriteria)) { CollectionSetProtos.NodeLevelResource.Builder nodeResourceBuilder = buildNodeLevelResourceForProto( nodeCriteria); + nodeId = nodeResourceBuilder.getNodeId(); interfaceResourceBuilder.setNode(nodeResourceBuilder); Optional.ofNullable(resource.getInterfaceLabel()).ifPresent(interfaceResourceBuilder::setInstance); // Skip Aliased Resources which doesn't have instance. @@ -115,12 +124,32 @@ public void visitResource(CollectionResource resource) { if (!Strings.isNullOrEmpty(nodeCriteria)) { CollectionSetProtos.NodeLevelResource.Builder nodeResourceBuilder = buildNodeLevelResourceForProto( nodeCriteria); + nodeId = nodeResourceBuilder.getNodeId(); genericResourceBuilder.setNode(nodeResourceBuilder); } genericResourceBuilder.setType(resource.getResourceTypeName()); genericResourceBuilder.setInstance(resource.getInstance()); collectionSetResourceBuilder.setGeneric(genericResourceBuilder); } + // Response time resources doesn't embed any node info, they will not have any resource-id info. + if (nodeId > 0) { + populateResourceIdFields(resource, nodeId); + } + } + + private void populateResourceIdFields(CollectionResource collectionResource, long nodeId) { + try { + ResourceId resourceId = resourceDao.getResourceId(collectionResource, nodeId); + if (resourceId != null) { + getString(resourceId.toString()).ifPresent(collectionSetResourceBuilder::setResourceId); + getString(resourceId.getName()).ifPresent(collectionSetResourceBuilder::setResourceName); + getString(resourceId.getType()).ifPresent(collectionSetResourceBuilder::setResourceTypeName); + } else { + LOG.error("Couldn't fetch resource from ResourceId {} ", resourceId); + } + } catch (Exception e) { + LOG.error("Couldn't map ResourceId fields from CollectionResource {}", collectionResource); + } } @Override @@ -253,9 +282,9 @@ public CollectionSetProtos.NodeLevelResource.Builder buildNodeLevelResourceForPr OnmsNode node = nodeDao.get(nodeCriteria); if (node != null) { nodeResourceBuilder.setNodeId(node.getId()); - nodeResourceBuilder.setNodeLabel(node.getLabel()); - nodeResourceBuilder.setForeignId(node.getForeignId()); - nodeResourceBuilder.setForeignSource(node.getForeignSource()); + getString(node.getLabel()).ifPresent(nodeResourceBuilder::setNodeLabel); + getString(node.getForeignSource()).ifPresent(nodeResourceBuilder::setForeignId); + getString(node.getForeignId()).ifPresent(nodeResourceBuilder::setForeignSource); if (node.getLocation() != null) { nodeResourceBuilder.setLocation(node.getLocation().getLocationName()); } @@ -267,4 +296,13 @@ public CollectionSetProtos.NodeLevelResource.Builder buildNodeLevelResourceForPr }); return nodeResourceBuilder; } + + private static Optional getString(String value) { + if (!Strings.isNullOrEmpty(value)) { + return Optional.of(value); + } + return Optional.empty(); + } + + } diff --git a/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/collection/KafkaPersister.java b/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/collection/KafkaPersister.java index a371808a146c..28fc4bc8f506 100644 --- a/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/collection/KafkaPersister.java +++ b/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/collection/KafkaPersister.java @@ -28,9 +28,11 @@ package org.opennms.features.kafka.producer.collection; +import java.util.Iterator; +import java.util.List; + import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; -import org.opennms.features.kafka.producer.collection.CollectionSetMapper; import org.opennms.features.kafka.producer.model.CollectionSetProtos; import org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource; import org.opennms.netmgt.collection.api.AttributeGroup; @@ -42,11 +44,14 @@ import org.slf4j.LoggerFactory; import com.google.common.base.Strings; +import com.google.common.collect.Iterables; public class KafkaPersister implements Persister { private static final Logger LOG = LoggerFactory.getLogger(KafkaPersister.class); + private final int MAX_BUFFER_SIZE_CONFIGURED = 921600; + private CollectionSetMapper collectionSetMapper; private KafkaProducer producer; @@ -59,6 +64,101 @@ public void visitCollectionSet(CollectionSet collectionSet) { CollectionSetProtos.CollectionSet collectionSetProto = collectionSetMapper .buildCollectionSetProtos(collectionSet); + bisectAndSendMessageToKafka(collectionSetProto); + } + + void bisectAndSendMessageToKafka(CollectionSetProtos.CollectionSet collectionSetProto) { + if (checkForMaxSize(collectionSetProto.toByteArray().length)) { + + if(collectionSetProto.getResourceCount() == 1) { + /// Handle the case where resource is only one with too many attributes that can cross max buffer size. + CollectionSetProtos.CollectionSetResource collectionSetResource = collectionSetProto.getResource(0); + if(collectionSetResource.getNumericList().size() > 0) { + // Handle numeric attributes only. + CollectionSetProtos.CollectionSetResource.Builder numericResourceBuilder = CollectionSetProtos.CollectionSetResource.newBuilder(); + numericResourceBuilder.mergeFrom(collectionSetResource).clearString(); + CollectionSetProtos.CollectionSet collectionSetWithNumeric = CollectionSetProtos.CollectionSet.newBuilder() + .addResource(numericResourceBuilder).setTimestamp(collectionSetProto.getTimestamp()).build(); + bisectNumericAttributes(collectionSetWithNumeric); + } + if(collectionSetResource.getStringList().size() > 0) { + // Handle string attributes only + CollectionSetProtos.CollectionSetResource.Builder stringResourceBuilder = CollectionSetProtos.CollectionSetResource.newBuilder(); + stringResourceBuilder.mergeFrom(collectionSetResource).clearNumeric(); + CollectionSetProtos.CollectionSet collectionSetWithStringAttributes = CollectionSetProtos.CollectionSet.newBuilder() + .addResource(stringResourceBuilder).setTimestamp(collectionSetProto.getTimestamp()).build(); + bisectStringAttributes(collectionSetWithStringAttributes); + } + } else { + // Divide resources into two in recursive way. + Iterator> subList = Iterables.partition(collectionSetProto.getResourceList(), + (collectionSetProto.getResourceCount() + 1) / 2).iterator(); + + CollectionSetProtos.CollectionSet firstPartCollectionSet = CollectionSetProtos.CollectionSet.newBuilder() + .mergeFrom(collectionSetProto).clearResource().addAllResource(subList.next()).build(); + bisectAndSendMessageToKafka(firstPartCollectionSet); + + CollectionSetProtos.CollectionSet secondPartCollectionSet = CollectionSetProtos.CollectionSet.newBuilder() + .mergeFrom(collectionSetProto).clearResource().addAllResource(subList.next()).build(); + bisectAndSendMessageToKafka(secondPartCollectionSet); + } + } else { + sendMessageToKafka(collectionSetProto); + } + } + + private void bisectNumericAttributes(CollectionSetProtos.CollectionSet collectionSetProto) { + // Divide numeric attributes into two in recursive way + if (checkForMaxSize(collectionSetProto.toByteArray().length)) { + Iterator> subList = Iterables.partition(collectionSetProto.getResource(0).getNumericList(), + (collectionSetProto.getResource(0).getNumericCount() + 1) / 2).iterator(); + bisectNumericAttributes(buildCollectionSetWithNumericAttributes(collectionSetProto, subList.next())); + bisectNumericAttributes(buildCollectionSetWithNumericAttributes(collectionSetProto, subList.next())); + } else { + sendMessageToKafka(collectionSetProto); + } + } + + private CollectionSetProtos.CollectionSet buildCollectionSetWithNumericAttributes(CollectionSetProtos.CollectionSet originalCollectionSet, + List numericAttributes) { + + CollectionSetProtos.CollectionSet.Builder collectionSetBuilder = CollectionSetProtos.CollectionSet.newBuilder() + .setTimestamp(originalCollectionSet.getTimestamp()); + CollectionSetProtos.CollectionSetResource.Builder collectionSetResourceBuilder = CollectionSetProtos.CollectionSetResource.newBuilder(); + collectionSetResourceBuilder.mergeFrom(originalCollectionSet.getResource(0)).clearNumeric().addAllNumeric(numericAttributes); + collectionSetBuilder.addResource(collectionSetResourceBuilder); + return collectionSetBuilder.build(); + } + + private void bisectStringAttributes(CollectionSetProtos.CollectionSet collectionSetProto) { + // Divide string attributes into two in recursive way + if (checkForMaxSize(collectionSetProto.toByteArray().length)) { + Iterator> subList = Iterables.partition(collectionSetProto.getResource(0).getStringList(), + (collectionSetProto.getResource(0).getStringCount() + 1) / 2).iterator(); + bisectStringAttributes(buildCollectionSetWithStringAttributes(collectionSetProto, subList.next())); + bisectStringAttributes(buildCollectionSetWithStringAttributes(collectionSetProto, subList.next())); + } else { + sendMessageToKafka(collectionSetProto); + } + } + + private CollectionSetProtos.CollectionSet buildCollectionSetWithStringAttributes(CollectionSetProtos.CollectionSet originalCollectionSet, + List stringAttributes) { + + CollectionSetProtos.CollectionSet.Builder collectionSetBuilder = CollectionSetProtos.CollectionSet.newBuilder() + .setTimestamp(originalCollectionSet.getTimestamp()); + CollectionSetProtos.CollectionSetResource.Builder collectionSetResourceBuilder = CollectionSetProtos.CollectionSetResource.newBuilder(); + collectionSetResourceBuilder.mergeFrom(originalCollectionSet.getResource(0)).clearString().addAllString(stringAttributes); + collectionSetBuilder.addResource(collectionSetResourceBuilder); + return collectionSetBuilder.build(); + } + + boolean checkForMaxSize(int length) { + return length > MAX_BUFFER_SIZE_CONFIGURED; + } + + private void sendMessageToKafka( CollectionSetProtos.CollectionSet collectionSetProto) { + // Derive key, it will be nodeId for all resources except for response time, it would be IpAddress final String key = deriveKeyFromCollectionSet(collectionSetProto); final ProducerRecord record = new ProducerRecord<>(topicName, key, @@ -71,7 +171,6 @@ public void visitCollectionSet(CollectionSet collectionSet) { LOG.debug("persisted collection {} to kafka with key {}", collectionSetProto.toString(), key); } }); - } private String deriveKeyFromCollectionSet(CollectionSetProtos.CollectionSet collectionSetProto) { diff --git a/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/collection/KafkaPersisterActivator.java b/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/collection/KafkaPersisterActivator.java index d6dd9696ce31..dfc16a41f8c9 100644 --- a/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/collection/KafkaPersisterActivator.java +++ b/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/collection/KafkaPersisterActivator.java @@ -33,17 +33,17 @@ import org.opennms.netmgt.collection.api.PersisterFactory; import org.opennms.netmgt.dao.api.NodeDao; +import org.opennms.netmgt.dao.api.ResourceDao; import org.opennms.netmgt.dao.api.SessionUtils; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.service.cm.ConfigurationAdmin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.transaction.support.TransactionOperations; public class KafkaPersisterActivator implements BundleActivator { - private static final Logger LOG = LoggerFactory.getLogger(KafkaPersister.class); + private static final Logger LOG = LoggerFactory.getLogger(KafkaPersisterActivator.class); public static final String FORWARD_METRICS = "forward.metrics"; public static final String PRODUCER_CONFIG = "org.opennms.features.kafka.producer"; private static final String METRIC_TOPIC = "metricTopic"; @@ -75,8 +75,9 @@ public void start(BundleContext context) throws Exception { NodeDao nodeDao = context.getService(context.getServiceReference(NodeDao.class)); SessionUtils sessionUtils = context .getService(context.getServiceReference(SessionUtils.class)); + ResourceDao resourceDao = context.getService(context.getServiceReference(ResourceDao.class)); - CollectionSetMapper collectionSetMapper = new CollectionSetMapper(nodeDao, sessionUtils); + CollectionSetMapper collectionSetMapper = new CollectionSetMapper(nodeDao, sessionUtils, resourceDao); KafkaPersisterFactory kafkaPersisterFactory = new KafkaPersisterFactory(); kafkaPersisterFactory.setCollectionSetMapper(collectionSetMapper); kafkaPersisterFactory.setConfigAdmin(configAdmin); diff --git a/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/model/CollectionSetProtos.java b/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/model/CollectionSetProtos.java index 3942696f9bf5..4cf2bb153ac0 100644 --- a/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/model/CollectionSetProtos.java +++ b/features/kafka/producer/src/main/java/org/opennms/features/kafka/producer/model/CollectionSetProtos.java @@ -49,7 +49,7 @@ public interface StringAttributeOrBuilder extends /** * string name = 1; */ - String getName(); + java.lang.String getName(); /** * string name = 1; */ @@ -59,7 +59,7 @@ public interface StringAttributeOrBuilder extends /** * string value = 2; */ - String getValue(); + java.lang.String getValue(); /** * string value = 2; */ @@ -83,7 +83,7 @@ private StringAttribute() { value_ = ""; } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; @@ -94,7 +94,7 @@ private StringAttribute( throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { - throw new NullPointerException(); + throw new java.lang.NullPointerException(); } int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = @@ -108,13 +108,13 @@ private StringAttribute( done = true; break; case 10: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); name_ = s; break; } case 18: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); value_ = s; break; @@ -140,30 +140,30 @@ private StringAttribute( } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_StringAttribute_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_StringAttribute_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_StringAttribute_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_StringAttribute_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.StringAttribute.class, CollectionSetProtos.StringAttribute.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.Builder.class); } public static final int NAME_FIELD_NUMBER = 1; - private volatile Object name_; + private volatile java.lang.Object name_; /** * string name = 1; */ - public String getName() { - Object ref = name_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); name_ = s; return s; } @@ -173,11 +173,11 @@ public String getName() { */ public com.google.protobuf.ByteString getNameBytes() { - Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); name_ = b; return b; } else { @@ -186,18 +186,18 @@ public String getName() { } public static final int VALUE_FIELD_NUMBER = 2; - private volatile Object value_; + private volatile java.lang.Object value_; /** * string value = 2; */ - public String getValue() { - Object ref = value_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getValue() { + java.lang.Object ref = value_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); value_ = s; return s; } @@ -207,11 +207,11 @@ public String getValue() { */ public com.google.protobuf.ByteString getValueBytes() { - Object ref = value_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = value_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); value_ = b; return b; } else { @@ -220,7 +220,7 @@ public String getValue() { } private byte memoizedIsInitialized = -1; - @Override + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -230,7 +230,7 @@ public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!getNameBytes().isEmpty()) { @@ -242,7 +242,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) unknownFields.writeTo(output); } - @Override + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -259,15 +259,15 @@ public int getSerializedSize() { return size; } - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof CollectionSetProtos.StringAttribute)) { + if (!(obj instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute)) { return super.equals(obj); } - CollectionSetProtos.StringAttribute other = (CollectionSetProtos.StringAttribute) obj; + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute other = (org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute) obj; boolean result = true; result = result && getName() @@ -278,7 +278,7 @@ public boolean equals(final Object obj) { return result; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; @@ -294,69 +294,69 @@ public int hashCode() { return hash; } - public static CollectionSetProtos.StringAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.StringAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.StringAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.StringAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.StringAttribute parseFrom(byte[] data) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.StringAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.StringAttribute parseFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.StringAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.StringAttribute parseDelimitedFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static CollectionSetProtos.StringAttribute parseDelimitedFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.StringAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.StringAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -364,23 +364,23 @@ public static CollectionSetProtos.StringAttribute parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } - @Override + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(CollectionSetProtos.StringAttribute prototype) { + public static Builder newBuilder(org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - @Override + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } @@ -390,18 +390,18 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:StringAttribute) - CollectionSetProtos.StringAttributeOrBuilder { + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttributeOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_StringAttribute_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_StringAttribute_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_StringAttribute_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_StringAttribute_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.StringAttribute.class, CollectionSetProtos.StringAttribute.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.Builder.class); } // Construct using org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.newBuilder() @@ -410,7 +410,7 @@ private Builder() { } private Builder( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } @@ -419,7 +419,7 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } - @Override + @java.lang.Override public Builder clear() { super.clear(); name_ = ""; @@ -429,79 +429,79 @@ public Builder clear() { return this; } - @Override + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return CollectionSetProtos.internal_static_StringAttribute_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_StringAttribute_descriptor; } - @Override - public CollectionSetProtos.StringAttribute getDefaultInstanceForType() { - return CollectionSetProtos.StringAttribute.getDefaultInstance(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute getDefaultInstanceForType() { + return org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.getDefaultInstance(); } - @Override - public CollectionSetProtos.StringAttribute build() { - CollectionSetProtos.StringAttribute result = buildPartial(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute build() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - @Override - public CollectionSetProtos.StringAttribute buildPartial() { - CollectionSetProtos.StringAttribute result = new CollectionSetProtos.StringAttribute(this); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute buildPartial() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute result = new org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute(this); result.name_ = name_; result.value_ = value_; onBuilt(); return result; } - @Override + @java.lang.Override public Builder clone() { return (Builder) super.clone(); } - @Override + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.setField(field, value); } - @Override + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return (Builder) super.clearField(field); } - @Override + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return (Builder) super.clearOneof(oneof); } - @Override + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { + int index, java.lang.Object value) { return (Builder) super.setRepeatedField(field, index, value); } - @Override + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.addRepeatedField(field, value); } - @Override + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof CollectionSetProtos.StringAttribute) { - return mergeFrom((CollectionSetProtos.StringAttribute)other); + if (other instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute) { + return mergeFrom((org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(CollectionSetProtos.StringAttribute other) { - if (other == CollectionSetProtos.StringAttribute.getDefaultInstance()) return this; + public Builder mergeFrom(org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute other) { + if (other == org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; onChanged(); @@ -515,21 +515,21 @@ public Builder mergeFrom(CollectionSetProtos.StringAttribute other) { return this; } - @Override + @java.lang.Override public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - CollectionSetProtos.StringAttribute parsedMessage = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (CollectionSetProtos.StringAttribute) e.getUnfinishedMessage(); + parsedMessage = (org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -539,20 +539,20 @@ public Builder mergeFrom( return this; } - private Object name_ = ""; + private java.lang.Object name_ = ""; /** * string name = 1; */ - public String getName() { - Object ref = name_; - if (!(ref instanceof String)) { + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); name_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -560,11 +560,11 @@ public String getName() { */ public com.google.protobuf.ByteString getNameBytes() { - Object ref = name_; + java.lang.Object ref = name_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); name_ = b; return b; } else { @@ -575,11 +575,11 @@ public String getName() { * string name = 1; */ public Builder setName( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + name_ = value; onChanged(); return this; @@ -588,7 +588,7 @@ public Builder setName( * string name = 1; */ public Builder clearName() { - + name_ = getDefaultInstance().getName(); onChanged(); return this; @@ -602,26 +602,26 @@ public Builder setNameBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + name_ = value; onChanged(); return this; } - private Object value_ = ""; + private java.lang.Object value_ = ""; /** * string value = 2; */ - public String getValue() { - Object ref = value_; - if (!(ref instanceof String)) { + public java.lang.String getValue() { + java.lang.Object ref = value_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); value_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -629,11 +629,11 @@ public String getValue() { */ public com.google.protobuf.ByteString getValueBytes() { - Object ref = value_; + java.lang.Object ref = value_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); value_ = b; return b; } else { @@ -644,11 +644,11 @@ public String getValue() { * string value = 2; */ public Builder setValue( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + value_ = value; onChanged(); return this; @@ -657,7 +657,7 @@ public Builder setValue( * string value = 2; */ public Builder clearValue() { - + value_ = getDefaultInstance().getValue(); onChanged(); return this; @@ -671,18 +671,18 @@ public Builder setValueBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + value_ = value; onChanged(); return this; } - @Override + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFieldsProto3(unknownFields); } - @Override + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); @@ -693,18 +693,18 @@ public final Builder mergeUnknownFields( } // @@protoc_insertion_point(class_scope:StringAttribute) - private static final CollectionSetProtos.StringAttribute DEFAULT_INSTANCE; + private static final org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new CollectionSetProtos.StringAttribute(); + DEFAULT_INSTANCE = new org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute(); } - public static CollectionSetProtos.StringAttribute getDefaultInstance() { + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - @Override + @java.lang.Override public StringAttribute parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -717,13 +717,13 @@ public static com.google.protobuf.Parser parser() { return PARSER; } - @Override + @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } - @Override - public CollectionSetProtos.StringAttribute getDefaultInstanceForType() { + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -736,7 +736,7 @@ public interface NumericAttributeOrBuilder extends /** * string group = 1; */ - String getGroup(); + java.lang.String getGroup(); /** * string group = 1; */ @@ -746,7 +746,7 @@ public interface NumericAttributeOrBuilder extends /** * string name = 2; */ - String getName(); + java.lang.String getName(); /** * string name = 2; */ @@ -765,7 +765,7 @@ public interface NumericAttributeOrBuilder extends /** * .NumericAttribute.Type type = 4; */ - CollectionSetProtos.NumericAttribute.Type getType(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Type getType(); } /** * Protobuf type {@code NumericAttribute} @@ -786,7 +786,7 @@ private NumericAttribute() { type_ = 0; } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; @@ -797,7 +797,7 @@ private NumericAttribute( throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { - throw new NullPointerException(); + throw new java.lang.NullPointerException(); } int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = @@ -811,13 +811,13 @@ private NumericAttribute( done = true; break; case 10: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); group_ = s; break; } case 18: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); name_ = s; break; @@ -854,15 +854,15 @@ private NumericAttribute( } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_NumericAttribute_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_NumericAttribute_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_NumericAttribute_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_NumericAttribute_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.NumericAttribute.class, CollectionSetProtos.NumericAttribute.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Builder.class); } /** @@ -893,7 +893,7 @@ public enum Type public final int getNumber() { if (this == UNRECOGNIZED) { - throw new IllegalArgumentException( + throw new java.lang.IllegalArgumentException( "Can't get the number of an unknown enum value."); } return value; @@ -902,7 +902,7 @@ public final int getNumber() { /** * @deprecated Use {@link #forNumber(int)} instead. */ - @Deprecated + @java.lang.Deprecated public static Type valueOf(int value) { return forNumber(value); } @@ -937,7 +937,7 @@ public Type findValueByNumber(int number) { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return CollectionSetProtos.NumericAttribute.getDescriptor().getEnumTypes().get(0); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.getDescriptor().getEnumTypes().get(0); } private static final Type[] VALUES = values(); @@ -945,7 +945,7 @@ public Type findValueByNumber(int number) { public static Type valueOf( com.google.protobuf.Descriptors.EnumValueDescriptor desc) { if (desc.getType() != getDescriptor()) { - throw new IllegalArgumentException( + throw new java.lang.IllegalArgumentException( "EnumValueDescriptor is not for this type."); } if (desc.getIndex() == -1) { @@ -964,18 +964,18 @@ private Type(int value) { } public static final int GROUP_FIELD_NUMBER = 1; - private volatile Object group_; + private volatile java.lang.Object group_; /** * string group = 1; */ - public String getGroup() { - Object ref = group_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getGroup() { + java.lang.Object ref = group_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); group_ = s; return s; } @@ -985,11 +985,11 @@ public String getGroup() { */ public com.google.protobuf.ByteString getGroupBytes() { - Object ref = group_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = group_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); group_ = b; return b; } else { @@ -998,18 +998,18 @@ public String getGroup() { } public static final int NAME_FIELD_NUMBER = 2; - private volatile Object name_; + private volatile java.lang.Object name_; /** * string name = 2; */ - public String getName() { - Object ref = name_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); name_ = s; return s; } @@ -1019,11 +1019,11 @@ public String getName() { */ public com.google.protobuf.ByteString getNameBytes() { - Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); name_ = b; return b; } else { @@ -1051,14 +1051,14 @@ public int getTypeValue() { /** * .NumericAttribute.Type type = 4; */ - public CollectionSetProtos.NumericAttribute.Type getType() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Type getType() { @SuppressWarnings("deprecation") - CollectionSetProtos.NumericAttribute.Type result = CollectionSetProtos.NumericAttribute.Type.valueOf(type_); - return result == null ? CollectionSetProtos.NumericAttribute.Type.UNRECOGNIZED : result; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Type result = org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Type.valueOf(type_); + return result == null ? org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Type.UNRECOGNIZED : result; } private byte memoizedIsInitialized = -1; - @Override + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -1068,7 +1068,7 @@ public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!getGroupBytes().isEmpty()) { @@ -1080,13 +1080,13 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (value_ != 0D) { output.writeDouble(3, value_); } - if (type_ != CollectionSetProtos.NumericAttribute.Type.GAUGE.getNumber()) { + if (type_ != org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Type.GAUGE.getNumber()) { output.writeEnum(4, type_); } unknownFields.writeTo(output); } - @Override + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -1102,7 +1102,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(3, value_); } - if (type_ != CollectionSetProtos.NumericAttribute.Type.GAUGE.getNumber()) { + if (type_ != org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Type.GAUGE.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(4, type_); } @@ -1111,15 +1111,15 @@ public int getSerializedSize() { return size; } - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof CollectionSetProtos.NumericAttribute)) { + if (!(obj instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute)) { return super.equals(obj); } - CollectionSetProtos.NumericAttribute other = (CollectionSetProtos.NumericAttribute) obj; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute other = (org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute) obj; boolean result = true; result = result && getGroup() @@ -1127,15 +1127,15 @@ public boolean equals(final Object obj) { result = result && getName() .equals(other.getName()); result = result && ( - Double.doubleToLongBits(getValue()) - == Double.doubleToLongBits( + java.lang.Double.doubleToLongBits(getValue()) + == java.lang.Double.doubleToLongBits( other.getValue())); result = result && type_ == other.type_; result = result && unknownFields.equals(other.unknownFields); return result; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; @@ -1148,7 +1148,7 @@ public int hashCode() { hash = (53 * hash) + getName().hashCode(); hash = (37 * hash) + VALUE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - Double.doubleToLongBits(getValue())); + java.lang.Double.doubleToLongBits(getValue())); hash = (37 * hash) + TYPE_FIELD_NUMBER; hash = (53 * hash) + type_; hash = (29 * hash) + unknownFields.hashCode(); @@ -1156,69 +1156,69 @@ public int hashCode() { return hash; } - public static CollectionSetProtos.NumericAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.NumericAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.NumericAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.NumericAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.NumericAttribute parseFrom(byte[] data) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.NumericAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.NumericAttribute parseFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.NumericAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.NumericAttribute parseDelimitedFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static CollectionSetProtos.NumericAttribute parseDelimitedFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.NumericAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.NumericAttribute parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -1226,23 +1226,23 @@ public static CollectionSetProtos.NumericAttribute parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } - @Override + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(CollectionSetProtos.NumericAttribute prototype) { + public static Builder newBuilder(org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - @Override + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } @@ -1252,18 +1252,18 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:NumericAttribute) - CollectionSetProtos.NumericAttributeOrBuilder { + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttributeOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_NumericAttribute_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_NumericAttribute_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_NumericAttribute_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_NumericAttribute_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.NumericAttribute.class, CollectionSetProtos.NumericAttribute.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Builder.class); } // Construct using org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.newBuilder() @@ -1272,7 +1272,7 @@ private Builder() { } private Builder( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } @@ -1281,7 +1281,7 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } - @Override + @java.lang.Override public Builder clear() { super.clear(); group_ = ""; @@ -1295,29 +1295,29 @@ public Builder clear() { return this; } - @Override + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return CollectionSetProtos.internal_static_NumericAttribute_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_NumericAttribute_descriptor; } - @Override - public CollectionSetProtos.NumericAttribute getDefaultInstanceForType() { - return CollectionSetProtos.NumericAttribute.getDefaultInstance(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute getDefaultInstanceForType() { + return org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.getDefaultInstance(); } - @Override - public CollectionSetProtos.NumericAttribute build() { - CollectionSetProtos.NumericAttribute result = buildPartial(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute build() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - @Override - public CollectionSetProtos.NumericAttribute buildPartial() { - CollectionSetProtos.NumericAttribute result = new CollectionSetProtos.NumericAttribute(this); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute buildPartial() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute result = new org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute(this); result.group_ = group_; result.name_ = name_; result.value_ = value_; @@ -1326,50 +1326,50 @@ public CollectionSetProtos.NumericAttribute buildPartial() { return result; } - @Override + @java.lang.Override public Builder clone() { return (Builder) super.clone(); } - @Override + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.setField(field, value); } - @Override + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return (Builder) super.clearField(field); } - @Override + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return (Builder) super.clearOneof(oneof); } - @Override + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { + int index, java.lang.Object value) { return (Builder) super.setRepeatedField(field, index, value); } - @Override + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.addRepeatedField(field, value); } - @Override + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof CollectionSetProtos.NumericAttribute) { - return mergeFrom((CollectionSetProtos.NumericAttribute)other); + if (other instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute) { + return mergeFrom((org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(CollectionSetProtos.NumericAttribute other) { - if (other == CollectionSetProtos.NumericAttribute.getDefaultInstance()) return this; + public Builder mergeFrom(org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute other) { + if (other == org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.getDefaultInstance()) return this; if (!other.getGroup().isEmpty()) { group_ = other.group_; onChanged(); @@ -1389,21 +1389,21 @@ public Builder mergeFrom(CollectionSetProtos.NumericAttribute other) { return this; } - @Override + @java.lang.Override public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - CollectionSetProtos.NumericAttribute parsedMessage = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (CollectionSetProtos.NumericAttribute) e.getUnfinishedMessage(); + parsedMessage = (org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -1413,20 +1413,20 @@ public Builder mergeFrom( return this; } - private Object group_ = ""; + private java.lang.Object group_ = ""; /** * string group = 1; */ - public String getGroup() { - Object ref = group_; - if (!(ref instanceof String)) { + public java.lang.String getGroup() { + java.lang.Object ref = group_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); group_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -1434,11 +1434,11 @@ public String getGroup() { */ public com.google.protobuf.ByteString getGroupBytes() { - Object ref = group_; + java.lang.Object ref = group_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); group_ = b; return b; } else { @@ -1449,11 +1449,11 @@ public String getGroup() { * string group = 1; */ public Builder setGroup( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + group_ = value; onChanged(); return this; @@ -1462,7 +1462,7 @@ public Builder setGroup( * string group = 1; */ public Builder clearGroup() { - + group_ = getDefaultInstance().getGroup(); onChanged(); return this; @@ -1476,26 +1476,26 @@ public Builder setGroupBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + group_ = value; onChanged(); return this; } - private Object name_ = ""; + private java.lang.Object name_ = ""; /** * string name = 2; */ - public String getName() { - Object ref = name_; - if (!(ref instanceof String)) { + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); name_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -1503,11 +1503,11 @@ public String getName() { */ public com.google.protobuf.ByteString getNameBytes() { - Object ref = name_; + java.lang.Object ref = name_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); name_ = b; return b; } else { @@ -1518,11 +1518,11 @@ public String getName() { * string name = 2; */ public Builder setName( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + name_ = value; onChanged(); return this; @@ -1531,7 +1531,7 @@ public Builder setName( * string name = 2; */ public Builder clearName() { - + name_ = getDefaultInstance().getName(); onChanged(); return this; @@ -1545,7 +1545,7 @@ public Builder setNameBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + name_ = value; onChanged(); return this; @@ -1562,7 +1562,7 @@ public double getValue() { * double value = 3; */ public Builder setValue(double value) { - + value_ = value; onChanged(); return this; @@ -1571,7 +1571,7 @@ public Builder setValue(double value) { * double value = 3; */ public Builder clearValue() { - + value_ = 0D; onChanged(); return this; @@ -1595,19 +1595,19 @@ public Builder setTypeValue(int value) { /** * .NumericAttribute.Type type = 4; */ - public CollectionSetProtos.NumericAttribute.Type getType() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Type getType() { @SuppressWarnings("deprecation") - CollectionSetProtos.NumericAttribute.Type result = CollectionSetProtos.NumericAttribute.Type.valueOf(type_); - return result == null ? CollectionSetProtos.NumericAttribute.Type.UNRECOGNIZED : result; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Type result = org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Type.valueOf(type_); + return result == null ? org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Type.UNRECOGNIZED : result; } /** * .NumericAttribute.Type type = 4; */ - public Builder setType(CollectionSetProtos.NumericAttribute.Type value) { + public Builder setType(org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Type value) { if (value == null) { throw new NullPointerException(); } - + type_ = value.getNumber(); onChanged(); return this; @@ -1616,18 +1616,18 @@ public Builder setType(CollectionSetProtos.NumericAttribute.Type value) { * .NumericAttribute.Type type = 4; */ public Builder clearType() { - + type_ = 0; onChanged(); return this; } - @Override + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFieldsProto3(unknownFields); } - @Override + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); @@ -1638,18 +1638,18 @@ public final Builder mergeUnknownFields( } // @@protoc_insertion_point(class_scope:NumericAttribute) - private static final CollectionSetProtos.NumericAttribute DEFAULT_INSTANCE; + private static final org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new CollectionSetProtos.NumericAttribute(); + DEFAULT_INSTANCE = new org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute(); } - public static CollectionSetProtos.NumericAttribute getDefaultInstance() { + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - @Override + @java.lang.Override public NumericAttribute parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -1662,13 +1662,13 @@ public static com.google.protobuf.Parser parser() { return PARSER; } - @Override + @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } - @Override - public CollectionSetProtos.NumericAttribute getDefaultInstanceForType() { + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -1686,7 +1686,7 @@ public interface NodeLevelResourceOrBuilder extends /** * string foreign_source = 2; */ - String getForeignSource(); + java.lang.String getForeignSource(); /** * string foreign_source = 2; */ @@ -1696,7 +1696,7 @@ public interface NodeLevelResourceOrBuilder extends /** * string foreign_id = 3; */ - String getForeignId(); + java.lang.String getForeignId(); /** * string foreign_id = 3; */ @@ -1706,7 +1706,7 @@ public interface NodeLevelResourceOrBuilder extends /** * string node_label = 4; */ - String getNodeLabel(); + java.lang.String getNodeLabel(); /** * string node_label = 4; */ @@ -1716,7 +1716,7 @@ public interface NodeLevelResourceOrBuilder extends /** * string location = 5; */ - String getLocation(); + java.lang.String getLocation(); /** * string location = 5; */ @@ -1743,7 +1743,7 @@ private NodeLevelResource() { location_ = ""; } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; @@ -1754,7 +1754,7 @@ private NodeLevelResource( throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { - throw new NullPointerException(); + throw new java.lang.NullPointerException(); } int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = @@ -1773,25 +1773,25 @@ private NodeLevelResource( break; } case 18: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); foreignSource_ = s; break; } case 26: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); foreignId_ = s; break; } case 34: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); nodeLabel_ = s; break; } case 42: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); location_ = s; break; @@ -1817,15 +1817,15 @@ private NodeLevelResource( } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_NodeLevelResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_NodeLevelResource_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_NodeLevelResource_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_NodeLevelResource_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.NodeLevelResource.class, CollectionSetProtos.NodeLevelResource.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder.class); } public static final int NODE_ID_FIELD_NUMBER = 1; @@ -1838,18 +1838,18 @@ public long getNodeId() { } public static final int FOREIGN_SOURCE_FIELD_NUMBER = 2; - private volatile Object foreignSource_; + private volatile java.lang.Object foreignSource_; /** * string foreign_source = 2; */ - public String getForeignSource() { - Object ref = foreignSource_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getForeignSource() { + java.lang.Object ref = foreignSource_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); foreignSource_ = s; return s; } @@ -1859,11 +1859,11 @@ public String getForeignSource() { */ public com.google.protobuf.ByteString getForeignSourceBytes() { - Object ref = foreignSource_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = foreignSource_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); foreignSource_ = b; return b; } else { @@ -1872,18 +1872,18 @@ public String getForeignSource() { } public static final int FOREIGN_ID_FIELD_NUMBER = 3; - private volatile Object foreignId_; + private volatile java.lang.Object foreignId_; /** * string foreign_id = 3; */ - public String getForeignId() { - Object ref = foreignId_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getForeignId() { + java.lang.Object ref = foreignId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); foreignId_ = s; return s; } @@ -1893,11 +1893,11 @@ public String getForeignId() { */ public com.google.protobuf.ByteString getForeignIdBytes() { - Object ref = foreignId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = foreignId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); foreignId_ = b; return b; } else { @@ -1906,18 +1906,18 @@ public String getForeignId() { } public static final int NODE_LABEL_FIELD_NUMBER = 4; - private volatile Object nodeLabel_; + private volatile java.lang.Object nodeLabel_; /** * string node_label = 4; */ - public String getNodeLabel() { - Object ref = nodeLabel_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getNodeLabel() { + java.lang.Object ref = nodeLabel_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); nodeLabel_ = s; return s; } @@ -1927,11 +1927,11 @@ public String getNodeLabel() { */ public com.google.protobuf.ByteString getNodeLabelBytes() { - Object ref = nodeLabel_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = nodeLabel_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); nodeLabel_ = b; return b; } else { @@ -1940,18 +1940,18 @@ public String getNodeLabel() { } public static final int LOCATION_FIELD_NUMBER = 5; - private volatile Object location_; + private volatile java.lang.Object location_; /** * string location = 5; */ - public String getLocation() { - Object ref = location_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getLocation() { + java.lang.Object ref = location_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); location_ = s; return s; } @@ -1961,11 +1961,11 @@ public String getLocation() { */ public com.google.protobuf.ByteString getLocationBytes() { - Object ref = location_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = location_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); location_ = b; return b; } else { @@ -1974,7 +1974,7 @@ public String getLocation() { } private byte memoizedIsInitialized = -1; - @Override + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -1984,7 +1984,7 @@ public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (nodeId_ != 0L) { @@ -2005,7 +2005,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) unknownFields.writeTo(output); } - @Override + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -2032,15 +2032,15 @@ public int getSerializedSize() { return size; } - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof CollectionSetProtos.NodeLevelResource)) { + if (!(obj instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource)) { return super.equals(obj); } - CollectionSetProtos.NodeLevelResource other = (CollectionSetProtos.NodeLevelResource) obj; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource other = (org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) obj; boolean result = true; result = result && (getNodeId() @@ -2057,7 +2057,7 @@ public boolean equals(final Object obj) { return result; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; @@ -2080,69 +2080,69 @@ public int hashCode() { return hash; } - public static CollectionSetProtos.NodeLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.NodeLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.NodeLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.NodeLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.NodeLevelResource parseFrom(byte[] data) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.NodeLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.NodeLevelResource parseFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.NodeLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.NodeLevelResource parseDelimitedFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static CollectionSetProtos.NodeLevelResource parseDelimitedFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.NodeLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.NodeLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -2150,23 +2150,23 @@ public static CollectionSetProtos.NodeLevelResource parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } - @Override + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(CollectionSetProtos.NodeLevelResource prototype) { + public static Builder newBuilder(org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - @Override + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } @@ -2176,18 +2176,18 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:NodeLevelResource) - CollectionSetProtos.NodeLevelResourceOrBuilder { + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_NodeLevelResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_NodeLevelResource_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_NodeLevelResource_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_NodeLevelResource_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.NodeLevelResource.class, CollectionSetProtos.NodeLevelResource.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder.class); } // Construct using org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.newBuilder() @@ -2196,7 +2196,7 @@ private Builder() { } private Builder( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } @@ -2205,7 +2205,7 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } - @Override + @java.lang.Override public Builder clear() { super.clear(); nodeId_ = 0L; @@ -2221,29 +2221,29 @@ public Builder clear() { return this; } - @Override + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return CollectionSetProtos.internal_static_NodeLevelResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_NodeLevelResource_descriptor; } - @Override - public CollectionSetProtos.NodeLevelResource getDefaultInstanceForType() { - return CollectionSetProtos.NodeLevelResource.getDefaultInstance(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource getDefaultInstanceForType() { + return org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance(); } - @Override - public CollectionSetProtos.NodeLevelResource build() { - CollectionSetProtos.NodeLevelResource result = buildPartial(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource build() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - @Override - public CollectionSetProtos.NodeLevelResource buildPartial() { - CollectionSetProtos.NodeLevelResource result = new CollectionSetProtos.NodeLevelResource(this); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource buildPartial() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource result = new org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource(this); result.nodeId_ = nodeId_; result.foreignSource_ = foreignSource_; result.foreignId_ = foreignId_; @@ -2253,50 +2253,50 @@ public CollectionSetProtos.NodeLevelResource buildPartial() { return result; } - @Override + @java.lang.Override public Builder clone() { return (Builder) super.clone(); } - @Override + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.setField(field, value); } - @Override + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return (Builder) super.clearField(field); } - @Override + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return (Builder) super.clearOneof(oneof); } - @Override + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { + int index, java.lang.Object value) { return (Builder) super.setRepeatedField(field, index, value); } - @Override + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.addRepeatedField(field, value); } - @Override + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof CollectionSetProtos.NodeLevelResource) { - return mergeFrom((CollectionSetProtos.NodeLevelResource)other); + if (other instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) { + return mergeFrom((org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(CollectionSetProtos.NodeLevelResource other) { - if (other == CollectionSetProtos.NodeLevelResource.getDefaultInstance()) return this; + public Builder mergeFrom(org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource other) { + if (other == org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance()) return this; if (other.getNodeId() != 0L) { setNodeId(other.getNodeId()); } @@ -2321,21 +2321,21 @@ public Builder mergeFrom(CollectionSetProtos.NodeLevelResource other) { return this; } - @Override + @java.lang.Override public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - CollectionSetProtos.NodeLevelResource parsedMessage = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (CollectionSetProtos.NodeLevelResource) e.getUnfinishedMessage(); + parsedMessage = (org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -2356,7 +2356,7 @@ public long getNodeId() { * int64 node_id = 1; */ public Builder setNodeId(long value) { - + nodeId_ = value; onChanged(); return this; @@ -2365,26 +2365,26 @@ public Builder setNodeId(long value) { * int64 node_id = 1; */ public Builder clearNodeId() { - + nodeId_ = 0L; onChanged(); return this; } - private Object foreignSource_ = ""; + private java.lang.Object foreignSource_ = ""; /** * string foreign_source = 2; */ - public String getForeignSource() { - Object ref = foreignSource_; - if (!(ref instanceof String)) { + public java.lang.String getForeignSource() { + java.lang.Object ref = foreignSource_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); foreignSource_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -2392,11 +2392,11 @@ public String getForeignSource() { */ public com.google.protobuf.ByteString getForeignSourceBytes() { - Object ref = foreignSource_; + java.lang.Object ref = foreignSource_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); foreignSource_ = b; return b; } else { @@ -2407,11 +2407,11 @@ public String getForeignSource() { * string foreign_source = 2; */ public Builder setForeignSource( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + foreignSource_ = value; onChanged(); return this; @@ -2420,7 +2420,7 @@ public Builder setForeignSource( * string foreign_source = 2; */ public Builder clearForeignSource() { - + foreignSource_ = getDefaultInstance().getForeignSource(); onChanged(); return this; @@ -2434,26 +2434,26 @@ public Builder setForeignSourceBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + foreignSource_ = value; onChanged(); return this; } - private Object foreignId_ = ""; + private java.lang.Object foreignId_ = ""; /** * string foreign_id = 3; */ - public String getForeignId() { - Object ref = foreignId_; - if (!(ref instanceof String)) { + public java.lang.String getForeignId() { + java.lang.Object ref = foreignId_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); foreignId_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -2461,11 +2461,11 @@ public String getForeignId() { */ public com.google.protobuf.ByteString getForeignIdBytes() { - Object ref = foreignId_; + java.lang.Object ref = foreignId_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); foreignId_ = b; return b; } else { @@ -2476,11 +2476,11 @@ public String getForeignId() { * string foreign_id = 3; */ public Builder setForeignId( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + foreignId_ = value; onChanged(); return this; @@ -2489,7 +2489,7 @@ public Builder setForeignId( * string foreign_id = 3; */ public Builder clearForeignId() { - + foreignId_ = getDefaultInstance().getForeignId(); onChanged(); return this; @@ -2503,26 +2503,26 @@ public Builder setForeignIdBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + foreignId_ = value; onChanged(); return this; } - private Object nodeLabel_ = ""; + private java.lang.Object nodeLabel_ = ""; /** * string node_label = 4; */ - public String getNodeLabel() { - Object ref = nodeLabel_; - if (!(ref instanceof String)) { + public java.lang.String getNodeLabel() { + java.lang.Object ref = nodeLabel_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); nodeLabel_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -2530,11 +2530,11 @@ public String getNodeLabel() { */ public com.google.protobuf.ByteString getNodeLabelBytes() { - Object ref = nodeLabel_; + java.lang.Object ref = nodeLabel_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); nodeLabel_ = b; return b; } else { @@ -2545,11 +2545,11 @@ public String getNodeLabel() { * string node_label = 4; */ public Builder setNodeLabel( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + nodeLabel_ = value; onChanged(); return this; @@ -2558,7 +2558,7 @@ public Builder setNodeLabel( * string node_label = 4; */ public Builder clearNodeLabel() { - + nodeLabel_ = getDefaultInstance().getNodeLabel(); onChanged(); return this; @@ -2572,26 +2572,26 @@ public Builder setNodeLabelBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + nodeLabel_ = value; onChanged(); return this; } - private Object location_ = ""; + private java.lang.Object location_ = ""; /** * string location = 5; */ - public String getLocation() { - Object ref = location_; - if (!(ref instanceof String)) { + public java.lang.String getLocation() { + java.lang.Object ref = location_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); location_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -2599,11 +2599,11 @@ public String getLocation() { */ public com.google.protobuf.ByteString getLocationBytes() { - Object ref = location_; + java.lang.Object ref = location_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); location_ = b; return b; } else { @@ -2614,11 +2614,11 @@ public String getLocation() { * string location = 5; */ public Builder setLocation( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + location_ = value; onChanged(); return this; @@ -2627,7 +2627,7 @@ public Builder setLocation( * string location = 5; */ public Builder clearLocation() { - + location_ = getDefaultInstance().getLocation(); onChanged(); return this; @@ -2641,18 +2641,18 @@ public Builder setLocationBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + location_ = value; onChanged(); return this; } - @Override + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFieldsProto3(unknownFields); } - @Override + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); @@ -2663,18 +2663,18 @@ public final Builder mergeUnknownFields( } // @@protoc_insertion_point(class_scope:NodeLevelResource) - private static final CollectionSetProtos.NodeLevelResource DEFAULT_INSTANCE; + private static final org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new CollectionSetProtos.NodeLevelResource(); + DEFAULT_INSTANCE = new org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource(); } - public static CollectionSetProtos.NodeLevelResource getDefaultInstance() { + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - @Override + @java.lang.Override public NodeLevelResource parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -2687,13 +2687,13 @@ public static com.google.protobuf.Parser parser() { return PARSER; } - @Override + @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } - @Override - public CollectionSetProtos.NodeLevelResource getDefaultInstanceForType() { + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -2710,16 +2710,16 @@ public interface InterfaceLevelResourceOrBuilder extends /** * .NodeLevelResource node = 1; */ - CollectionSetProtos.NodeLevelResource getNode(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource getNode(); /** * .NodeLevelResource node = 1; */ - CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder(); /** * string instance = 2; */ - String getInstance(); + java.lang.String getInstance(); /** * string instance = 2; */ @@ -2748,7 +2748,7 @@ private InterfaceLevelResource() { ifIndex_ = 0; } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; @@ -2759,7 +2759,7 @@ private InterfaceLevelResource( throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { - throw new NullPointerException(); + throw new java.lang.NullPointerException(); } int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = @@ -2773,11 +2773,11 @@ private InterfaceLevelResource( done = true; break; case 10: { - CollectionSetProtos.NodeLevelResource.Builder subBuilder = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder subBuilder = null; if (node_ != null) { subBuilder = node_.toBuilder(); } - node_ = input.readMessage(CollectionSetProtos.NodeLevelResource.parser(), extensionRegistry); + node_ = input.readMessage(org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(node_); node_ = subBuilder.buildPartial(); @@ -2786,7 +2786,7 @@ private InterfaceLevelResource( break; } case 18: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); instance_ = s; break; @@ -2817,19 +2817,19 @@ private InterfaceLevelResource( } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_InterfaceLevelResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_InterfaceLevelResource_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_InterfaceLevelResource_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_InterfaceLevelResource_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.InterfaceLevelResource.class, CollectionSetProtos.InterfaceLevelResource.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.Builder.class); } public static final int NODE_FIELD_NUMBER = 1; - private CollectionSetProtos.NodeLevelResource node_; + private org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource node_; /** * .NodeLevelResource node = 1; */ @@ -2839,29 +2839,29 @@ public boolean hasNode() { /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResource getNode() { - return node_ == null ? CollectionSetProtos.NodeLevelResource.getDefaultInstance() : node_; + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource getNode() { + return node_ == null ? org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance() : node_; } /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { return getNode(); } public static final int INSTANCE_FIELD_NUMBER = 2; - private volatile Object instance_; + private volatile java.lang.Object instance_; /** * string instance = 2; */ - public String getInstance() { - Object ref = instance_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getInstance() { + java.lang.Object ref = instance_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); instance_ = s; return s; } @@ -2871,11 +2871,11 @@ public String getInstance() { */ public com.google.protobuf.ByteString getInstanceBytes() { - Object ref = instance_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = instance_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); instance_ = b; return b; } else { @@ -2893,7 +2893,7 @@ public int getIfIndex() { } private byte memoizedIsInitialized = -1; - @Override + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -2903,7 +2903,7 @@ public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (node_ != null) { @@ -2918,7 +2918,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) unknownFields.writeTo(output); } - @Override + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -2940,15 +2940,15 @@ public int getSerializedSize() { return size; } - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof CollectionSetProtos.InterfaceLevelResource)) { + if (!(obj instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource)) { return super.equals(obj); } - CollectionSetProtos.InterfaceLevelResource other = (CollectionSetProtos.InterfaceLevelResource) obj; + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource other = (org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) obj; boolean result = true; result = result && (hasNode() == other.hasNode()); @@ -2964,7 +2964,7 @@ public boolean equals(final Object obj) { return result; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; @@ -2984,69 +2984,69 @@ public int hashCode() { return hash; } - public static CollectionSetProtos.InterfaceLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.InterfaceLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.InterfaceLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.InterfaceLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.InterfaceLevelResource parseFrom(byte[] data) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.InterfaceLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.InterfaceLevelResource parseFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.InterfaceLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.InterfaceLevelResource parseDelimitedFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static CollectionSetProtos.InterfaceLevelResource parseDelimitedFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.InterfaceLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.InterfaceLevelResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -3054,23 +3054,23 @@ public static CollectionSetProtos.InterfaceLevelResource parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } - @Override + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(CollectionSetProtos.InterfaceLevelResource prototype) { + public static Builder newBuilder(org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - @Override + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } @@ -3080,18 +3080,18 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:InterfaceLevelResource) - CollectionSetProtos.InterfaceLevelResourceOrBuilder { + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResourceOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_InterfaceLevelResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_InterfaceLevelResource_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_InterfaceLevelResource_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_InterfaceLevelResource_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.InterfaceLevelResource.class, CollectionSetProtos.InterfaceLevelResource.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.Builder.class); } // Construct using org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.newBuilder() @@ -3100,7 +3100,7 @@ private Builder() { } private Builder( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } @@ -3109,7 +3109,7 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } - @Override + @java.lang.Override public Builder clear() { super.clear(); if (nodeBuilder_ == null) { @@ -3125,29 +3125,29 @@ public Builder clear() { return this; } - @Override + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return CollectionSetProtos.internal_static_InterfaceLevelResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_InterfaceLevelResource_descriptor; } - @Override - public CollectionSetProtos.InterfaceLevelResource getDefaultInstanceForType() { - return CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource getDefaultInstanceForType() { + return org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); } - @Override - public CollectionSetProtos.InterfaceLevelResource build() { - CollectionSetProtos.InterfaceLevelResource result = buildPartial(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource build() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - @Override - public CollectionSetProtos.InterfaceLevelResource buildPartial() { - CollectionSetProtos.InterfaceLevelResource result = new CollectionSetProtos.InterfaceLevelResource(this); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource buildPartial() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource result = new org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource(this); if (nodeBuilder_ == null) { result.node_ = node_; } else { @@ -3159,50 +3159,50 @@ public CollectionSetProtos.InterfaceLevelResource buildPartial() { return result; } - @Override + @java.lang.Override public Builder clone() { return (Builder) super.clone(); } - @Override + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.setField(field, value); } - @Override + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return (Builder) super.clearField(field); } - @Override + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return (Builder) super.clearOneof(oneof); } - @Override + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { + int index, java.lang.Object value) { return (Builder) super.setRepeatedField(field, index, value); } - @Override + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.addRepeatedField(field, value); } - @Override + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof CollectionSetProtos.InterfaceLevelResource) { - return mergeFrom((CollectionSetProtos.InterfaceLevelResource)other); + if (other instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) { + return mergeFrom((org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(CollectionSetProtos.InterfaceLevelResource other) { - if (other == CollectionSetProtos.InterfaceLevelResource.getDefaultInstance()) return this; + public Builder mergeFrom(org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource other) { + if (other == org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.getDefaultInstance()) return this; if (other.hasNode()) { mergeNode(other.getNode()); } @@ -3218,21 +3218,21 @@ public Builder mergeFrom(CollectionSetProtos.InterfaceLevelResource other) { return this; } - @Override + @java.lang.Override public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - CollectionSetProtos.InterfaceLevelResource parsedMessage = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (CollectionSetProtos.InterfaceLevelResource) e.getUnfinishedMessage(); + parsedMessage = (org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -3242,9 +3242,9 @@ public Builder mergeFrom( return this; } - private CollectionSetProtos.NodeLevelResource node_ = null; + private org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource node_ = null; private com.google.protobuf.SingleFieldBuilderV3< - NodeLevelResource, NodeLevelResource.Builder, NodeLevelResourceOrBuilder> nodeBuilder_; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder> nodeBuilder_; /** * .NodeLevelResource node = 1; */ @@ -3254,9 +3254,9 @@ public boolean hasNode() { /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResource getNode() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource getNode() { if (nodeBuilder_ == null) { - return node_ == null ? CollectionSetProtos.NodeLevelResource.getDefaultInstance() : node_; + return node_ == null ? org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance() : node_; } else { return nodeBuilder_.getMessage(); } @@ -3264,7 +3264,7 @@ public CollectionSetProtos.NodeLevelResource getNode() { /** * .NodeLevelResource node = 1; */ - public Builder setNode(CollectionSetProtos.NodeLevelResource value) { + public Builder setNode(org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource value) { if (nodeBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -3281,7 +3281,7 @@ public Builder setNode(CollectionSetProtos.NodeLevelResource value) { * .NodeLevelResource node = 1; */ public Builder setNode( - CollectionSetProtos.NodeLevelResource.Builder builderForValue) { + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder builderForValue) { if (nodeBuilder_ == null) { node_ = builderForValue.build(); onChanged(); @@ -3294,11 +3294,11 @@ public Builder setNode( /** * .NodeLevelResource node = 1; */ - public Builder mergeNode(CollectionSetProtos.NodeLevelResource value) { + public Builder mergeNode(org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource value) { if (nodeBuilder_ == null) { if (node_ != null) { node_ = - CollectionSetProtos.NodeLevelResource.newBuilder(node_).mergeFrom(value).buildPartial(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.newBuilder(node_).mergeFrom(value).buildPartial(); } else { node_ = value; } @@ -3326,31 +3326,31 @@ public Builder clearNode() { /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResource.Builder getNodeBuilder() { - + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder getNodeBuilder() { + onChanged(); return getNodeFieldBuilder().getBuilder(); } /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { if (nodeBuilder_ != null) { return nodeBuilder_.getMessageOrBuilder(); } else { return node_ == null ? - CollectionSetProtos.NodeLevelResource.getDefaultInstance() : node_; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance() : node_; } } /** * .NodeLevelResource node = 1; */ private com.google.protobuf.SingleFieldBuilderV3< - NodeLevelResource, NodeLevelResource.Builder, NodeLevelResourceOrBuilder> + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder> getNodeFieldBuilder() { if (nodeBuilder_ == null) { nodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - NodeLevelResource, NodeLevelResource.Builder, NodeLevelResourceOrBuilder>( + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder>( getNode(), getParentForChildren(), isClean()); @@ -3359,20 +3359,20 @@ public CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { return nodeBuilder_; } - private Object instance_ = ""; + private java.lang.Object instance_ = ""; /** * string instance = 2; */ - public String getInstance() { - Object ref = instance_; - if (!(ref instanceof String)) { + public java.lang.String getInstance() { + java.lang.Object ref = instance_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); instance_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -3380,11 +3380,11 @@ public String getInstance() { */ public com.google.protobuf.ByteString getInstanceBytes() { - Object ref = instance_; + java.lang.Object ref = instance_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); instance_ = b; return b; } else { @@ -3395,11 +3395,11 @@ public String getInstance() { * string instance = 2; */ public Builder setInstance( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + instance_ = value; onChanged(); return this; @@ -3408,7 +3408,7 @@ public Builder setInstance( * string instance = 2; */ public Builder clearInstance() { - + instance_ = getDefaultInstance().getInstance(); onChanged(); return this; @@ -3422,7 +3422,7 @@ public Builder setInstanceBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + instance_ = value; onChanged(); return this; @@ -3439,7 +3439,7 @@ public int getIfIndex() { * int32 if_index = 3; */ public Builder setIfIndex(int value) { - + ifIndex_ = value; onChanged(); return this; @@ -3448,18 +3448,18 @@ public Builder setIfIndex(int value) { * int32 if_index = 3; */ public Builder clearIfIndex() { - + ifIndex_ = 0; onChanged(); return this; } - @Override + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFieldsProto3(unknownFields); } - @Override + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); @@ -3470,18 +3470,18 @@ public final Builder mergeUnknownFields( } // @@protoc_insertion_point(class_scope:InterfaceLevelResource) - private static final CollectionSetProtos.InterfaceLevelResource DEFAULT_INSTANCE; + private static final org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new CollectionSetProtos.InterfaceLevelResource(); + DEFAULT_INSTANCE = new org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource(); } - public static CollectionSetProtos.InterfaceLevelResource getDefaultInstance() { + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - @Override + @java.lang.Override public InterfaceLevelResource parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -3494,13 +3494,13 @@ public static com.google.protobuf.Parser parser() { return PARSER; } - @Override + @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } - @Override - public CollectionSetProtos.InterfaceLevelResource getDefaultInstanceForType() { + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -3517,16 +3517,16 @@ public interface GenericTypeResourceOrBuilder extends /** * .NodeLevelResource node = 1; */ - CollectionSetProtos.NodeLevelResource getNode(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource getNode(); /** * .NodeLevelResource node = 1; */ - CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder(); /** * string type = 2; */ - String getType(); + java.lang.String getType(); /** * string type = 2; */ @@ -3536,7 +3536,7 @@ public interface GenericTypeResourceOrBuilder extends /** * string instance = 3; */ - String getInstance(); + java.lang.String getInstance(); /** * string instance = 3; */ @@ -3560,7 +3560,7 @@ private GenericTypeResource() { instance_ = ""; } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; @@ -3571,7 +3571,7 @@ private GenericTypeResource( throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { - throw new NullPointerException(); + throw new java.lang.NullPointerException(); } int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = @@ -3585,11 +3585,11 @@ private GenericTypeResource( done = true; break; case 10: { - CollectionSetProtos.NodeLevelResource.Builder subBuilder = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder subBuilder = null; if (node_ != null) { subBuilder = node_.toBuilder(); } - node_ = input.readMessage(CollectionSetProtos.NodeLevelResource.parser(), extensionRegistry); + node_ = input.readMessage(org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(node_); node_ = subBuilder.buildPartial(); @@ -3598,13 +3598,13 @@ private GenericTypeResource( break; } case 18: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); type_ = s; break; } case 26: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); instance_ = s; break; @@ -3630,19 +3630,19 @@ private GenericTypeResource( } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_GenericTypeResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_GenericTypeResource_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_GenericTypeResource_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_GenericTypeResource_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.GenericTypeResource.class, CollectionSetProtos.GenericTypeResource.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.Builder.class); } public static final int NODE_FIELD_NUMBER = 1; - private CollectionSetProtos.NodeLevelResource node_; + private org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource node_; /** * .NodeLevelResource node = 1; */ @@ -3652,29 +3652,29 @@ public boolean hasNode() { /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResource getNode() { - return node_ == null ? CollectionSetProtos.NodeLevelResource.getDefaultInstance() : node_; + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource getNode() { + return node_ == null ? org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance() : node_; } /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { return getNode(); } public static final int TYPE_FIELD_NUMBER = 2; - private volatile Object type_; + private volatile java.lang.Object type_; /** * string type = 2; */ - public String getType() { - Object ref = type_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getType() { + java.lang.Object ref = type_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); type_ = s; return s; } @@ -3684,11 +3684,11 @@ public String getType() { */ public com.google.protobuf.ByteString getTypeBytes() { - Object ref = type_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = type_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); type_ = b; return b; } else { @@ -3697,18 +3697,18 @@ public String getType() { } public static final int INSTANCE_FIELD_NUMBER = 3; - private volatile Object instance_; + private volatile java.lang.Object instance_; /** * string instance = 3; */ - public String getInstance() { - Object ref = instance_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getInstance() { + java.lang.Object ref = instance_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); instance_ = s; return s; } @@ -3718,11 +3718,11 @@ public String getInstance() { */ public com.google.protobuf.ByteString getInstanceBytes() { - Object ref = instance_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = instance_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); instance_ = b; return b; } else { @@ -3731,7 +3731,7 @@ public String getInstance() { } private byte memoizedIsInitialized = -1; - @Override + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -3741,7 +3741,7 @@ public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (node_ != null) { @@ -3756,7 +3756,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) unknownFields.writeTo(output); } - @Override + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -3777,15 +3777,15 @@ public int getSerializedSize() { return size; } - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof CollectionSetProtos.GenericTypeResource)) { + if (!(obj instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource)) { return super.equals(obj); } - CollectionSetProtos.GenericTypeResource other = (CollectionSetProtos.GenericTypeResource) obj; + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource other = (org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) obj; boolean result = true; result = result && (hasNode() == other.hasNode()); @@ -3801,7 +3801,7 @@ public boolean equals(final Object obj) { return result; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; @@ -3821,69 +3821,69 @@ public int hashCode() { return hash; } - public static CollectionSetProtos.GenericTypeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.GenericTypeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.GenericTypeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.GenericTypeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.GenericTypeResource parseFrom(byte[] data) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.GenericTypeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.GenericTypeResource parseFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.GenericTypeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.GenericTypeResource parseDelimitedFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static CollectionSetProtos.GenericTypeResource parseDelimitedFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.GenericTypeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.GenericTypeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -3891,23 +3891,23 @@ public static CollectionSetProtos.GenericTypeResource parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } - @Override + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(CollectionSetProtos.GenericTypeResource prototype) { + public static Builder newBuilder(org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - @Override + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } @@ -3917,18 +3917,18 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:GenericTypeResource) - CollectionSetProtos.GenericTypeResourceOrBuilder { + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResourceOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_GenericTypeResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_GenericTypeResource_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_GenericTypeResource_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_GenericTypeResource_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.GenericTypeResource.class, CollectionSetProtos.GenericTypeResource.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.Builder.class); } // Construct using org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.newBuilder() @@ -3937,7 +3937,7 @@ private Builder() { } private Builder( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } @@ -3946,7 +3946,7 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } - @Override + @java.lang.Override public Builder clear() { super.clear(); if (nodeBuilder_ == null) { @@ -3962,29 +3962,29 @@ public Builder clear() { return this; } - @Override + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return CollectionSetProtos.internal_static_GenericTypeResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_GenericTypeResource_descriptor; } - @Override - public CollectionSetProtos.GenericTypeResource getDefaultInstanceForType() { - return CollectionSetProtos.GenericTypeResource.getDefaultInstance(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource getDefaultInstanceForType() { + return org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.getDefaultInstance(); } - @Override - public CollectionSetProtos.GenericTypeResource build() { - CollectionSetProtos.GenericTypeResource result = buildPartial(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource build() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - @Override - public CollectionSetProtos.GenericTypeResource buildPartial() { - CollectionSetProtos.GenericTypeResource result = new CollectionSetProtos.GenericTypeResource(this); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource buildPartial() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource result = new org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource(this); if (nodeBuilder_ == null) { result.node_ = node_; } else { @@ -3996,50 +3996,50 @@ public CollectionSetProtos.GenericTypeResource buildPartial() { return result; } - @Override + @java.lang.Override public Builder clone() { return (Builder) super.clone(); } - @Override + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.setField(field, value); } - @Override + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return (Builder) super.clearField(field); } - @Override + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return (Builder) super.clearOneof(oneof); } - @Override + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { + int index, java.lang.Object value) { return (Builder) super.setRepeatedField(field, index, value); } - @Override + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.addRepeatedField(field, value); } - @Override + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof CollectionSetProtos.GenericTypeResource) { - return mergeFrom((CollectionSetProtos.GenericTypeResource)other); + if (other instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) { + return mergeFrom((org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(CollectionSetProtos.GenericTypeResource other) { - if (other == CollectionSetProtos.GenericTypeResource.getDefaultInstance()) return this; + public Builder mergeFrom(org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource other) { + if (other == org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.getDefaultInstance()) return this; if (other.hasNode()) { mergeNode(other.getNode()); } @@ -4056,21 +4056,21 @@ public Builder mergeFrom(CollectionSetProtos.GenericTypeResource other) { return this; } - @Override + @java.lang.Override public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - CollectionSetProtos.GenericTypeResource parsedMessage = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (CollectionSetProtos.GenericTypeResource) e.getUnfinishedMessage(); + parsedMessage = (org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -4080,9 +4080,9 @@ public Builder mergeFrom( return this; } - private CollectionSetProtos.NodeLevelResource node_ = null; + private org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource node_ = null; private com.google.protobuf.SingleFieldBuilderV3< - NodeLevelResource, NodeLevelResource.Builder, NodeLevelResourceOrBuilder> nodeBuilder_; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder> nodeBuilder_; /** * .NodeLevelResource node = 1; */ @@ -4092,9 +4092,9 @@ public boolean hasNode() { /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResource getNode() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource getNode() { if (nodeBuilder_ == null) { - return node_ == null ? CollectionSetProtos.NodeLevelResource.getDefaultInstance() : node_; + return node_ == null ? org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance() : node_; } else { return nodeBuilder_.getMessage(); } @@ -4102,7 +4102,7 @@ public CollectionSetProtos.NodeLevelResource getNode() { /** * .NodeLevelResource node = 1; */ - public Builder setNode(CollectionSetProtos.NodeLevelResource value) { + public Builder setNode(org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource value) { if (nodeBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -4119,7 +4119,7 @@ public Builder setNode(CollectionSetProtos.NodeLevelResource value) { * .NodeLevelResource node = 1; */ public Builder setNode( - CollectionSetProtos.NodeLevelResource.Builder builderForValue) { + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder builderForValue) { if (nodeBuilder_ == null) { node_ = builderForValue.build(); onChanged(); @@ -4132,11 +4132,11 @@ public Builder setNode( /** * .NodeLevelResource node = 1; */ - public Builder mergeNode(CollectionSetProtos.NodeLevelResource value) { + public Builder mergeNode(org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource value) { if (nodeBuilder_ == null) { if (node_ != null) { node_ = - CollectionSetProtos.NodeLevelResource.newBuilder(node_).mergeFrom(value).buildPartial(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.newBuilder(node_).mergeFrom(value).buildPartial(); } else { node_ = value; } @@ -4164,31 +4164,31 @@ public Builder clearNode() { /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResource.Builder getNodeBuilder() { - + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder getNodeBuilder() { + onChanged(); return getNodeFieldBuilder().getBuilder(); } /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { if (nodeBuilder_ != null) { return nodeBuilder_.getMessageOrBuilder(); } else { return node_ == null ? - CollectionSetProtos.NodeLevelResource.getDefaultInstance() : node_; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance() : node_; } } /** * .NodeLevelResource node = 1; */ private com.google.protobuf.SingleFieldBuilderV3< - NodeLevelResource, NodeLevelResource.Builder, NodeLevelResourceOrBuilder> + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder> getNodeFieldBuilder() { if (nodeBuilder_ == null) { nodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - NodeLevelResource, NodeLevelResource.Builder, NodeLevelResourceOrBuilder>( + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder>( getNode(), getParentForChildren(), isClean()); @@ -4197,20 +4197,20 @@ public CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { return nodeBuilder_; } - private Object type_ = ""; + private java.lang.Object type_ = ""; /** * string type = 2; */ - public String getType() { - Object ref = type_; - if (!(ref instanceof String)) { + public java.lang.String getType() { + java.lang.Object ref = type_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); type_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -4218,11 +4218,11 @@ public String getType() { */ public com.google.protobuf.ByteString getTypeBytes() { - Object ref = type_; + java.lang.Object ref = type_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); type_ = b; return b; } else { @@ -4233,11 +4233,11 @@ public String getType() { * string type = 2; */ public Builder setType( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + type_ = value; onChanged(); return this; @@ -4246,7 +4246,7 @@ public Builder setType( * string type = 2; */ public Builder clearType() { - + type_ = getDefaultInstance().getType(); onChanged(); return this; @@ -4260,26 +4260,26 @@ public Builder setTypeBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + type_ = value; onChanged(); return this; } - private Object instance_ = ""; + private java.lang.Object instance_ = ""; /** * string instance = 3; */ - public String getInstance() { - Object ref = instance_; - if (!(ref instanceof String)) { + public java.lang.String getInstance() { + java.lang.Object ref = instance_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); instance_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -4287,11 +4287,11 @@ public String getInstance() { */ public com.google.protobuf.ByteString getInstanceBytes() { - Object ref = instance_; + java.lang.Object ref = instance_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); instance_ = b; return b; } else { @@ -4302,11 +4302,11 @@ public String getInstance() { * string instance = 3; */ public Builder setInstance( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + instance_ = value; onChanged(); return this; @@ -4315,7 +4315,7 @@ public Builder setInstance( * string instance = 3; */ public Builder clearInstance() { - + instance_ = getDefaultInstance().getInstance(); onChanged(); return this; @@ -4329,18 +4329,18 @@ public Builder setInstanceBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + instance_ = value; onChanged(); return this; } - @Override + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFieldsProto3(unknownFields); } - @Override + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); @@ -4351,18 +4351,18 @@ public final Builder mergeUnknownFields( } // @@protoc_insertion_point(class_scope:GenericTypeResource) - private static final CollectionSetProtos.GenericTypeResource DEFAULT_INSTANCE; + private static final org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new CollectionSetProtos.GenericTypeResource(); + DEFAULT_INSTANCE = new org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource(); } - public static CollectionSetProtos.GenericTypeResource getDefaultInstance() { + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - @Override + @java.lang.Override public GenericTypeResource parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -4375,13 +4375,13 @@ public static com.google.protobuf.Parser parser() { return PARSER; } - @Override + @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } - @Override - public CollectionSetProtos.GenericTypeResource getDefaultInstanceForType() { + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -4394,7 +4394,7 @@ public interface ResponseTimeResourceOrBuilder extends /** * string instance = 1; */ - String getInstance(); + java.lang.String getInstance(); /** * string instance = 1; */ @@ -4404,7 +4404,7 @@ public interface ResponseTimeResourceOrBuilder extends /** * string location = 2; */ - String getLocation(); + java.lang.String getLocation(); /** * string location = 2; */ @@ -4428,7 +4428,7 @@ private ResponseTimeResource() { location_ = ""; } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; @@ -4439,7 +4439,7 @@ private ResponseTimeResource( throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { - throw new NullPointerException(); + throw new java.lang.NullPointerException(); } int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = @@ -4453,13 +4453,13 @@ private ResponseTimeResource( done = true; break; case 10: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); instance_ = s; break; } case 18: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); location_ = s; break; @@ -4485,30 +4485,30 @@ private ResponseTimeResource( } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_ResponseTimeResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_ResponseTimeResource_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_ResponseTimeResource_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_ResponseTimeResource_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.ResponseTimeResource.class, CollectionSetProtos.ResponseTimeResource.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.Builder.class); } public static final int INSTANCE_FIELD_NUMBER = 1; - private volatile Object instance_; + private volatile java.lang.Object instance_; /** * string instance = 1; */ - public String getInstance() { - Object ref = instance_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getInstance() { + java.lang.Object ref = instance_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); instance_ = s; return s; } @@ -4518,11 +4518,11 @@ public String getInstance() { */ public com.google.protobuf.ByteString getInstanceBytes() { - Object ref = instance_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = instance_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); instance_ = b; return b; } else { @@ -4531,18 +4531,18 @@ public String getInstance() { } public static final int LOCATION_FIELD_NUMBER = 2; - private volatile Object location_; + private volatile java.lang.Object location_; /** * string location = 2; */ - public String getLocation() { - Object ref = location_; - if (ref instanceof String) { - return (String) ref; + public java.lang.String getLocation() { + java.lang.Object ref = location_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); location_ = s; return s; } @@ -4552,11 +4552,11 @@ public String getLocation() { */ public com.google.protobuf.ByteString getLocationBytes() { - Object ref = location_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = + java.lang.Object ref = location_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); location_ = b; return b; } else { @@ -4565,7 +4565,7 @@ public String getLocation() { } private byte memoizedIsInitialized = -1; - @Override + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -4575,7 +4575,7 @@ public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!getInstanceBytes().isEmpty()) { @@ -4587,7 +4587,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) unknownFields.writeTo(output); } - @Override + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -4604,15 +4604,15 @@ public int getSerializedSize() { return size; } - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof CollectionSetProtos.ResponseTimeResource)) { + if (!(obj instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource)) { return super.equals(obj); } - CollectionSetProtos.ResponseTimeResource other = (CollectionSetProtos.ResponseTimeResource) obj; + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource other = (org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) obj; boolean result = true; result = result && getInstance() @@ -4623,7 +4623,7 @@ public boolean equals(final Object obj) { return result; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; @@ -4639,69 +4639,69 @@ public int hashCode() { return hash; } - public static CollectionSetProtos.ResponseTimeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.ResponseTimeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.ResponseTimeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.ResponseTimeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.ResponseTimeResource parseFrom(byte[] data) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.ResponseTimeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.ResponseTimeResource parseFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.ResponseTimeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.ResponseTimeResource parseDelimitedFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static CollectionSetProtos.ResponseTimeResource parseDelimitedFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.ResponseTimeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.ResponseTimeResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -4709,23 +4709,23 @@ public static CollectionSetProtos.ResponseTimeResource parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } - @Override + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(CollectionSetProtos.ResponseTimeResource prototype) { + public static Builder newBuilder(org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - @Override + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } @@ -4735,18 +4735,18 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:ResponseTimeResource) - CollectionSetProtos.ResponseTimeResourceOrBuilder { + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResourceOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_ResponseTimeResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_ResponseTimeResource_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_ResponseTimeResource_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_ResponseTimeResource_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.ResponseTimeResource.class, CollectionSetProtos.ResponseTimeResource.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.Builder.class); } // Construct using org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.newBuilder() @@ -4755,7 +4755,7 @@ private Builder() { } private Builder( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } @@ -4764,7 +4764,7 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } - @Override + @java.lang.Override public Builder clear() { super.clear(); instance_ = ""; @@ -4774,79 +4774,79 @@ public Builder clear() { return this; } - @Override + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return CollectionSetProtos.internal_static_ResponseTimeResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_ResponseTimeResource_descriptor; } - @Override - public CollectionSetProtos.ResponseTimeResource getDefaultInstanceForType() { - return CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource getDefaultInstanceForType() { + return org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); } - @Override - public CollectionSetProtos.ResponseTimeResource build() { - CollectionSetProtos.ResponseTimeResource result = buildPartial(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource build() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - @Override - public CollectionSetProtos.ResponseTimeResource buildPartial() { - CollectionSetProtos.ResponseTimeResource result = new CollectionSetProtos.ResponseTimeResource(this); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource buildPartial() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource result = new org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource(this); result.instance_ = instance_; result.location_ = location_; onBuilt(); return result; } - @Override + @java.lang.Override public Builder clone() { return (Builder) super.clone(); } - @Override + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.setField(field, value); } - @Override + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return (Builder) super.clearField(field); } - @Override + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return (Builder) super.clearOneof(oneof); } - @Override + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { + int index, java.lang.Object value) { return (Builder) super.setRepeatedField(field, index, value); } - @Override + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.addRepeatedField(field, value); } - @Override + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof CollectionSetProtos.ResponseTimeResource) { - return mergeFrom((CollectionSetProtos.ResponseTimeResource)other); + if (other instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) { + return mergeFrom((org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(CollectionSetProtos.ResponseTimeResource other) { - if (other == CollectionSetProtos.ResponseTimeResource.getDefaultInstance()) return this; + public Builder mergeFrom(org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource other) { + if (other == org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.getDefaultInstance()) return this; if (!other.getInstance().isEmpty()) { instance_ = other.instance_; onChanged(); @@ -4860,21 +4860,21 @@ public Builder mergeFrom(CollectionSetProtos.ResponseTimeResource other) { return this; } - @Override + @java.lang.Override public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - CollectionSetProtos.ResponseTimeResource parsedMessage = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (CollectionSetProtos.ResponseTimeResource) e.getUnfinishedMessage(); + parsedMessage = (org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -4884,20 +4884,20 @@ public Builder mergeFrom( return this; } - private Object instance_ = ""; + private java.lang.Object instance_ = ""; /** * string instance = 1; */ - public String getInstance() { - Object ref = instance_; - if (!(ref instanceof String)) { + public java.lang.String getInstance() { + java.lang.Object ref = instance_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); instance_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -4905,11 +4905,11 @@ public String getInstance() { */ public com.google.protobuf.ByteString getInstanceBytes() { - Object ref = instance_; + java.lang.Object ref = instance_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); instance_ = b; return b; } else { @@ -4920,11 +4920,11 @@ public String getInstance() { * string instance = 1; */ public Builder setInstance( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + instance_ = value; onChanged(); return this; @@ -4933,7 +4933,7 @@ public Builder setInstance( * string instance = 1; */ public Builder clearInstance() { - + instance_ = getDefaultInstance().getInstance(); onChanged(); return this; @@ -4947,26 +4947,26 @@ public Builder setInstanceBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + instance_ = value; onChanged(); return this; } - private Object location_ = ""; + private java.lang.Object location_ = ""; /** * string location = 2; */ - public String getLocation() { - Object ref = location_; - if (!(ref instanceof String)) { + public java.lang.String getLocation() { + java.lang.Object ref = location_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); location_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** @@ -4974,11 +4974,11 @@ public String getLocation() { */ public com.google.protobuf.ByteString getLocationBytes() { - Object ref = location_; + java.lang.Object ref = location_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); location_ = b; return b; } else { @@ -4989,11 +4989,11 @@ public String getLocation() { * string location = 2; */ public Builder setLocation( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - + location_ = value; onChanged(); return this; @@ -5002,7 +5002,7 @@ public Builder setLocation( * string location = 2; */ public Builder clearLocation() { - + location_ = getDefaultInstance().getLocation(); onChanged(); return this; @@ -5016,18 +5016,18 @@ public Builder setLocationBytes( throw new NullPointerException(); } checkByteStringIsUtf8(value); - + location_ = value; onChanged(); return this; } - @Override + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFieldsProto3(unknownFields); } - @Override + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); @@ -5038,18 +5038,18 @@ public final Builder mergeUnknownFields( } // @@protoc_insertion_point(class_scope:ResponseTimeResource) - private static final CollectionSetProtos.ResponseTimeResource DEFAULT_INSTANCE; + private static final org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new CollectionSetProtos.ResponseTimeResource(); + DEFAULT_INSTANCE = new org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource(); } - public static CollectionSetProtos.ResponseTimeResource getDefaultInstance() { + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - @Override + @java.lang.Override public ResponseTimeResource parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -5062,13 +5062,13 @@ public static com.google.protobuf.Parser parser() { return PARSER; } - @Override + @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } - @Override - public CollectionSetProtos.ResponseTimeResource getDefaultInstanceForType() { + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -5085,11 +5085,11 @@ public interface CollectionSetResourceOrBuilder extends /** * .NodeLevelResource node = 1; */ - CollectionSetProtos.NodeLevelResource getNode(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource getNode(); /** * .NodeLevelResource node = 1; */ - CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder(); /** * .InterfaceLevelResource interface = 2; @@ -5098,11 +5098,11 @@ public interface CollectionSetResourceOrBuilder extends /** * .InterfaceLevelResource interface = 2; */ - CollectionSetProtos.InterfaceLevelResource getInterface(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource getInterface(); /** * .InterfaceLevelResource interface = 2; */ - CollectionSetProtos.InterfaceLevelResourceOrBuilder getInterfaceOrBuilder(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResourceOrBuilder getInterfaceOrBuilder(); /** * .GenericTypeResource generic = 3; @@ -5111,11 +5111,11 @@ public interface CollectionSetResourceOrBuilder extends /** * .GenericTypeResource generic = 3; */ - CollectionSetProtos.GenericTypeResource getGeneric(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource getGeneric(); /** * .GenericTypeResource generic = 3; */ - CollectionSetProtos.GenericTypeResourceOrBuilder getGenericOrBuilder(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResourceOrBuilder getGenericOrBuilder(); /** * .ResponseTimeResource response = 4; @@ -5124,21 +5124,51 @@ public interface CollectionSetResourceOrBuilder extends /** * .ResponseTimeResource response = 4; */ - CollectionSetProtos.ResponseTimeResource getResponse(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource getResponse(); /** * .ResponseTimeResource response = 4; */ - CollectionSetProtos.ResponseTimeResourceOrBuilder getResponseOrBuilder(); + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResourceOrBuilder getResponseOrBuilder(); + + /** + * string resource_id = 5; + */ + java.lang.String getResourceId(); + /** + * string resource_id = 5; + */ + com.google.protobuf.ByteString + getResourceIdBytes(); + + /** + * string resource_name = 6; + */ + java.lang.String getResourceName(); + /** + * string resource_name = 6; + */ + com.google.protobuf.ByteString + getResourceNameBytes(); + + /** + * string resource_type_name = 7; + */ + java.lang.String getResourceTypeName(); + /** + * string resource_type_name = 7; + */ + com.google.protobuf.ByteString + getResourceTypeNameBytes(); /** * repeated .StringAttribute string = 10; */ - java.util.List + java.util.List getStringList(); /** * repeated .StringAttribute string = 10; */ - CollectionSetProtos.StringAttribute getString(int index); + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute getString(int index); /** * repeated .StringAttribute string = 10; */ @@ -5146,23 +5176,23 @@ public interface CollectionSetResourceOrBuilder extends /** * repeated .StringAttribute string = 10; */ - java.util.List + java.util.List getStringOrBuilderList(); /** * repeated .StringAttribute string = 10; */ - CollectionSetProtos.StringAttributeOrBuilder getStringOrBuilder( - int index); + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttributeOrBuilder getStringOrBuilder( + int index); /** * repeated .NumericAttribute numeric = 11; */ - java.util.List + java.util.List getNumericList(); /** * repeated .NumericAttribute numeric = 11; */ - CollectionSetProtos.NumericAttribute getNumeric(int index); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute getNumeric(int index); /** * repeated .NumericAttribute numeric = 11; */ @@ -5170,15 +5200,15 @@ CollectionSetProtos.StringAttributeOrBuilder getStringOrBuilder( /** * repeated .NumericAttribute numeric = 11; */ - java.util.List + java.util.List getNumericOrBuilderList(); /** * repeated .NumericAttribute numeric = 11; */ - CollectionSetProtos.NumericAttributeOrBuilder getNumericOrBuilder( - int index); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttributeOrBuilder getNumericOrBuilder( + int index); - public CollectionSetProtos.CollectionSetResource.ResourceCase getResourceCase(); + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.ResourceCase getResourceCase(); } /** * Protobuf type {@code CollectionSetResource} @@ -5193,11 +5223,14 @@ private CollectionSetResource(com.google.protobuf.GeneratedMessageV3.Builder super(builder); } private CollectionSetResource() { + resourceId_ = ""; + resourceName_ = ""; + resourceTypeName_ = ""; string_ = java.util.Collections.emptyList(); numeric_ = java.util.Collections.emptyList(); } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; @@ -5208,7 +5241,7 @@ private CollectionSetResource( throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { - throw new NullPointerException(); + throw new java.lang.NullPointerException(); } int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = @@ -5222,77 +5255,95 @@ private CollectionSetResource( done = true; break; case 10: { - CollectionSetProtos.NodeLevelResource.Builder subBuilder = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder subBuilder = null; if (resourceCase_ == 1) { - subBuilder = ((CollectionSetProtos.NodeLevelResource) resource_).toBuilder(); + subBuilder = ((org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) resource_).toBuilder(); } resource_ = - input.readMessage(CollectionSetProtos.NodeLevelResource.parser(), extensionRegistry); + input.readMessage(org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.parser(), extensionRegistry); if (subBuilder != null) { - subBuilder.mergeFrom((CollectionSetProtos.NodeLevelResource) resource_); + subBuilder.mergeFrom((org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) resource_); resource_ = subBuilder.buildPartial(); } resourceCase_ = 1; break; } case 18: { - CollectionSetProtos.InterfaceLevelResource.Builder subBuilder = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.Builder subBuilder = null; if (resourceCase_ == 2) { - subBuilder = ((CollectionSetProtos.InterfaceLevelResource) resource_).toBuilder(); + subBuilder = ((org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) resource_).toBuilder(); } resource_ = - input.readMessage(CollectionSetProtos.InterfaceLevelResource.parser(), extensionRegistry); + input.readMessage(org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.parser(), extensionRegistry); if (subBuilder != null) { - subBuilder.mergeFrom((CollectionSetProtos.InterfaceLevelResource) resource_); + subBuilder.mergeFrom((org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) resource_); resource_ = subBuilder.buildPartial(); } resourceCase_ = 2; break; } case 26: { - CollectionSetProtos.GenericTypeResource.Builder subBuilder = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.Builder subBuilder = null; if (resourceCase_ == 3) { - subBuilder = ((CollectionSetProtos.GenericTypeResource) resource_).toBuilder(); + subBuilder = ((org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) resource_).toBuilder(); } resource_ = - input.readMessage(CollectionSetProtos.GenericTypeResource.parser(), extensionRegistry); + input.readMessage(org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.parser(), extensionRegistry); if (subBuilder != null) { - subBuilder.mergeFrom((CollectionSetProtos.GenericTypeResource) resource_); + subBuilder.mergeFrom((org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) resource_); resource_ = subBuilder.buildPartial(); } resourceCase_ = 3; break; } case 34: { - CollectionSetProtos.ResponseTimeResource.Builder subBuilder = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.Builder subBuilder = null; if (resourceCase_ == 4) { - subBuilder = ((CollectionSetProtos.ResponseTimeResource) resource_).toBuilder(); + subBuilder = ((org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) resource_).toBuilder(); } resource_ = - input.readMessage(CollectionSetProtos.ResponseTimeResource.parser(), extensionRegistry); + input.readMessage(org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.parser(), extensionRegistry); if (subBuilder != null) { - subBuilder.mergeFrom((CollectionSetProtos.ResponseTimeResource) resource_); + subBuilder.mergeFrom((org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) resource_); resource_ = subBuilder.buildPartial(); } resourceCase_ = 4; break; } + case 42: { + java.lang.String s = input.readStringRequireUtf8(); + + resourceId_ = s; + break; + } + case 50: { + java.lang.String s = input.readStringRequireUtf8(); + + resourceName_ = s; + break; + } + case 58: { + java.lang.String s = input.readStringRequireUtf8(); + + resourceTypeName_ = s; + break; + } case 82: { - if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) { - string_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000010; + if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) { + string_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000080; } string_.add( - input.readMessage(CollectionSetProtos.StringAttribute.parser(), extensionRegistry)); + input.readMessage(org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.parser(), extensionRegistry)); break; } case 90: { - if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) { - numeric_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000020; + if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) { + numeric_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000100; } numeric_.add( - input.readMessage(CollectionSetProtos.NumericAttribute.parser(), extensionRegistry)); + input.readMessage(org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.parser(), extensionRegistry)); break; } default: { @@ -5310,10 +5361,10 @@ private CollectionSetResource( throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { - if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) { + if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) { string_ = java.util.Collections.unmodifiableList(string_); } - if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) { + if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) { numeric_ = java.util.Collections.unmodifiableList(numeric_); } this.unknownFields = unknownFields.build(); @@ -5322,20 +5373,20 @@ private CollectionSetResource( } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_CollectionSetResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_CollectionSetResource_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_CollectionSetResource_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_CollectionSetResource_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.CollectionSetResource.class, CollectionSetProtos.CollectionSetResource.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.Builder.class); } private int bitField0_; private int resourceCase_ = 0; - private Object resource_; + private java.lang.Object resource_; public enum ResourceCase implements com.google.protobuf.Internal.EnumLite { NODE(1), @@ -5350,7 +5401,7 @@ private ResourceCase(int value) { /** * @deprecated Use {@link #forNumber(int)} instead. */ - @Deprecated + @java.lang.Deprecated public static ResourceCase valueOf(int value) { return forNumber(value); } @@ -5386,20 +5437,20 @@ public boolean hasNode() { /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResource getNode() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource getNode() { if (resourceCase_ == 1) { - return (CollectionSetProtos.NodeLevelResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) resource_; } - return CollectionSetProtos.NodeLevelResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance(); } /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { if (resourceCase_ == 1) { - return (CollectionSetProtos.NodeLevelResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) resource_; } - return CollectionSetProtos.NodeLevelResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance(); } public static final int INTERFACE_FIELD_NUMBER = 2; @@ -5412,20 +5463,20 @@ public boolean hasInterface() { /** * .InterfaceLevelResource interface = 2; */ - public CollectionSetProtos.InterfaceLevelResource getInterface() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource getInterface() { if (resourceCase_ == 2) { - return (CollectionSetProtos.InterfaceLevelResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) resource_; } - return CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); } /** * .InterfaceLevelResource interface = 2; */ - public CollectionSetProtos.InterfaceLevelResourceOrBuilder getInterfaceOrBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResourceOrBuilder getInterfaceOrBuilder() { if (resourceCase_ == 2) { - return (CollectionSetProtos.InterfaceLevelResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) resource_; } - return CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); } public static final int GENERIC_FIELD_NUMBER = 3; @@ -5438,20 +5489,20 @@ public boolean hasGeneric() { /** * .GenericTypeResource generic = 3; */ - public CollectionSetProtos.GenericTypeResource getGeneric() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource getGeneric() { if (resourceCase_ == 3) { - return (CollectionSetProtos.GenericTypeResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) resource_; } - return CollectionSetProtos.GenericTypeResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.getDefaultInstance(); } /** * .GenericTypeResource generic = 3; */ - public CollectionSetProtos.GenericTypeResourceOrBuilder getGenericOrBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResourceOrBuilder getGenericOrBuilder() { if (resourceCase_ == 3) { - return (CollectionSetProtos.GenericTypeResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) resource_; } - return CollectionSetProtos.GenericTypeResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.getDefaultInstance(); } public static final int RESPONSE_FIELD_NUMBER = 4; @@ -5464,34 +5515,136 @@ public boolean hasResponse() { /** * .ResponseTimeResource response = 4; */ - public CollectionSetProtos.ResponseTimeResource getResponse() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource getResponse() { if (resourceCase_ == 4) { - return (CollectionSetProtos.ResponseTimeResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) resource_; } - return CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); } /** * .ResponseTimeResource response = 4; */ - public CollectionSetProtos.ResponseTimeResourceOrBuilder getResponseOrBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResourceOrBuilder getResponseOrBuilder() { if (resourceCase_ == 4) { - return (CollectionSetProtos.ResponseTimeResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) resource_; + } + return org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); + } + + public static final int RESOURCE_ID_FIELD_NUMBER = 5; + private volatile java.lang.Object resourceId_; + /** + * string resource_id = 5; + */ + public java.lang.String getResourceId() { + java.lang.Object ref = resourceId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceId_ = s; + return s; + } + } + /** + * string resource_id = 5; + */ + public com.google.protobuf.ByteString + getResourceIdBytes() { + java.lang.Object ref = resourceId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + resourceId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RESOURCE_NAME_FIELD_NUMBER = 6; + private volatile java.lang.Object resourceName_; + /** + * string resource_name = 6; + */ + public java.lang.String getResourceName() { + java.lang.Object ref = resourceName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceName_ = s; + return s; + } + } + /** + * string resource_name = 6; + */ + public com.google.protobuf.ByteString + getResourceNameBytes() { + java.lang.Object ref = resourceName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + resourceName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RESOURCE_TYPE_NAME_FIELD_NUMBER = 7; + private volatile java.lang.Object resourceTypeName_; + /** + * string resource_type_name = 7; + */ + public java.lang.String getResourceTypeName() { + java.lang.Object ref = resourceTypeName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceTypeName_ = s; + return s; + } + } + /** + * string resource_type_name = 7; + */ + public com.google.protobuf.ByteString + getResourceTypeNameBytes() { + java.lang.Object ref = resourceTypeName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + resourceTypeName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - return CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); } public static final int STRING_FIELD_NUMBER = 10; - private java.util.List string_; + private java.util.List string_; /** * repeated .StringAttribute string = 10; */ - public java.util.List getStringList() { + public java.util.List getStringList() { return string_; } /** * repeated .StringAttribute string = 10; */ - public java.util.List + public java.util.List getStringOrBuilderList() { return string_; } @@ -5504,29 +5657,29 @@ public int getStringCount() { /** * repeated .StringAttribute string = 10; */ - public CollectionSetProtos.StringAttribute getString(int index) { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute getString(int index) { return string_.get(index); } /** * repeated .StringAttribute string = 10; */ - public CollectionSetProtos.StringAttributeOrBuilder getStringOrBuilder( + public org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttributeOrBuilder getStringOrBuilder( int index) { return string_.get(index); } public static final int NUMERIC_FIELD_NUMBER = 11; - private java.util.List numeric_; + private java.util.List numeric_; /** * repeated .NumericAttribute numeric = 11; */ - public java.util.List getNumericList() { + public java.util.List getNumericList() { return numeric_; } /** * repeated .NumericAttribute numeric = 11; */ - public java.util.List + public java.util.List getNumericOrBuilderList() { return numeric_; } @@ -5539,19 +5692,19 @@ public int getNumericCount() { /** * repeated .NumericAttribute numeric = 11; */ - public CollectionSetProtos.NumericAttribute getNumeric(int index) { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute getNumeric(int index) { return numeric_.get(index); } /** * repeated .NumericAttribute numeric = 11; */ - public CollectionSetProtos.NumericAttributeOrBuilder getNumericOrBuilder( + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttributeOrBuilder getNumericOrBuilder( int index) { return numeric_.get(index); } private byte memoizedIsInitialized = -1; - @Override + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -5561,20 +5714,29 @@ public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (resourceCase_ == 1) { - output.writeMessage(1, (CollectionSetProtos.NodeLevelResource) resource_); + output.writeMessage(1, (org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) resource_); } if (resourceCase_ == 2) { - output.writeMessage(2, (CollectionSetProtos.InterfaceLevelResource) resource_); + output.writeMessage(2, (org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) resource_); } if (resourceCase_ == 3) { - output.writeMessage(3, (CollectionSetProtos.GenericTypeResource) resource_); + output.writeMessage(3, (org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) resource_); } if (resourceCase_ == 4) { - output.writeMessage(4, (CollectionSetProtos.ResponseTimeResource) resource_); + output.writeMessage(4, (org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) resource_); + } + if (!getResourceIdBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, resourceId_); + } + if (!getResourceNameBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, resourceName_); + } + if (!getResourceTypeNameBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, resourceTypeName_); } for (int i = 0; i < string_.size(); i++) { output.writeMessage(10, string_.get(i)); @@ -5585,7 +5747,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) unknownFields.writeTo(output); } - @Override + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -5593,19 +5755,28 @@ public int getSerializedSize() { size = 0; if (resourceCase_ == 1) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, (CollectionSetProtos.NodeLevelResource) resource_); + .computeMessageSize(1, (org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) resource_); } if (resourceCase_ == 2) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, (CollectionSetProtos.InterfaceLevelResource) resource_); + .computeMessageSize(2, (org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) resource_); } if (resourceCase_ == 3) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, (CollectionSetProtos.GenericTypeResource) resource_); + .computeMessageSize(3, (org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) resource_); } if (resourceCase_ == 4) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, (CollectionSetProtos.ResponseTimeResource) resource_); + .computeMessageSize(4, (org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) resource_); + } + if (!getResourceIdBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, resourceId_); + } + if (!getResourceNameBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, resourceName_); + } + if (!getResourceTypeNameBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, resourceTypeName_); } for (int i = 0; i < string_.size(); i++) { size += com.google.protobuf.CodedOutputStream @@ -5620,17 +5791,23 @@ public int getSerializedSize() { return size; } - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof CollectionSetProtos.CollectionSetResource)) { + if (!(obj instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource)) { return super.equals(obj); } - CollectionSetProtos.CollectionSetResource other = (CollectionSetProtos.CollectionSetResource) obj; + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource other = (org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource) obj; boolean result = true; + result = result && getResourceId() + .equals(other.getResourceId()); + result = result && getResourceName() + .equals(other.getResourceName()); + result = result && getResourceTypeName() + .equals(other.getResourceTypeName()); result = result && getStringList() .equals(other.getStringList()); result = result && getNumericList() @@ -5662,13 +5839,19 @@ public boolean equals(final Object obj) { return result; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RESOURCE_ID_FIELD_NUMBER; + hash = (53 * hash) + getResourceId().hashCode(); + hash = (37 * hash) + RESOURCE_NAME_FIELD_NUMBER; + hash = (53 * hash) + getResourceName().hashCode(); + hash = (37 * hash) + RESOURCE_TYPE_NAME_FIELD_NUMBER; + hash = (53 * hash) + getResourceTypeName().hashCode(); if (getStringCount() > 0) { hash = (37 * hash) + STRING_FIELD_NUMBER; hash = (53 * hash) + getStringList().hashCode(); @@ -5702,69 +5885,69 @@ public int hashCode() { return hash; } - public static CollectionSetProtos.CollectionSetResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.CollectionSetResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.CollectionSetResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.CollectionSetResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.CollectionSetResource parseFrom(byte[] data) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.CollectionSetResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.CollectionSetResource parseFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.CollectionSetResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.CollectionSetResource parseDelimitedFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static CollectionSetProtos.CollectionSetResource parseDelimitedFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.CollectionSetResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.CollectionSetResource parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -5772,23 +5955,23 @@ public static CollectionSetProtos.CollectionSetResource parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } - @Override + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(CollectionSetProtos.CollectionSetResource prototype) { + public static Builder newBuilder(org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - @Override + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } @@ -5798,18 +5981,18 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:CollectionSetResource) - CollectionSetProtos.CollectionSetResourceOrBuilder { + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResourceOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_CollectionSetResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_CollectionSetResource_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_CollectionSetResource_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_CollectionSetResource_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.CollectionSetResource.class, CollectionSetProtos.CollectionSetResource.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.Builder.class); } // Construct using org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.newBuilder() @@ -5818,7 +6001,7 @@ private Builder() { } private Builder( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } @@ -5829,18 +6012,24 @@ private void maybeForceBuilderInitialization() { getNumericFieldBuilder(); } } - @Override + @java.lang.Override public Builder clear() { super.clear(); + resourceId_ = ""; + + resourceName_ = ""; + + resourceTypeName_ = ""; + if (stringBuilder_ == null) { string_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ = (bitField0_ & ~0x00000080); } else { stringBuilder_.clear(); } if (numericBuilder_ == null) { numeric_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000100); } else { numericBuilder_.clear(); } @@ -5849,29 +6038,29 @@ public Builder clear() { return this; } - @Override + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return CollectionSetProtos.internal_static_CollectionSetResource_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_CollectionSetResource_descriptor; } - @Override - public CollectionSetProtos.CollectionSetResource getDefaultInstanceForType() { - return CollectionSetProtos.CollectionSetResource.getDefaultInstance(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource getDefaultInstanceForType() { + return org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.getDefaultInstance(); } - @Override - public CollectionSetProtos.CollectionSetResource build() { - CollectionSetProtos.CollectionSetResource result = buildPartial(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource build() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - @Override - public CollectionSetProtos.CollectionSetResource buildPartial() { - CollectionSetProtos.CollectionSetResource result = new CollectionSetProtos.CollectionSetResource(this); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource buildPartial() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource result = new org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (resourceCase_ == 1) { @@ -5902,19 +6091,22 @@ public CollectionSetProtos.CollectionSetResource buildPartial() { result.resource_ = responseBuilder_.build(); } } + result.resourceId_ = resourceId_; + result.resourceName_ = resourceName_; + result.resourceTypeName_ = resourceTypeName_; if (stringBuilder_ == null) { - if (((bitField0_ & 0x00000010) == 0x00000010)) { + if (((bitField0_ & 0x00000080) == 0x00000080)) { string_ = java.util.Collections.unmodifiableList(string_); - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ = (bitField0_ & ~0x00000080); } result.string_ = string_; } else { result.string_ = stringBuilder_.build(); } if (numericBuilder_ == null) { - if (((bitField0_ & 0x00000020) == 0x00000020)) { + if (((bitField0_ & 0x00000100) == 0x00000100)) { numeric_ = java.util.Collections.unmodifiableList(numeric_); - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000100); } result.numeric_ = numeric_; } else { @@ -5926,55 +6118,67 @@ public CollectionSetProtos.CollectionSetResource buildPartial() { return result; } - @Override + @java.lang.Override public Builder clone() { return (Builder) super.clone(); } - @Override + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.setField(field, value); } - @Override + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return (Builder) super.clearField(field); } - @Override + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return (Builder) super.clearOneof(oneof); } - @Override + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { + int index, java.lang.Object value) { return (Builder) super.setRepeatedField(field, index, value); } - @Override + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.addRepeatedField(field, value); } - @Override + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof CollectionSetProtos.CollectionSetResource) { - return mergeFrom((CollectionSetProtos.CollectionSetResource)other); + if (other instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource) { + return mergeFrom((org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(CollectionSetProtos.CollectionSetResource other) { - if (other == CollectionSetProtos.CollectionSetResource.getDefaultInstance()) return this; + public Builder mergeFrom(org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource other) { + if (other == org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.getDefaultInstance()) return this; + if (!other.getResourceId().isEmpty()) { + resourceId_ = other.resourceId_; + onChanged(); + } + if (!other.getResourceName().isEmpty()) { + resourceName_ = other.resourceName_; + onChanged(); + } + if (!other.getResourceTypeName().isEmpty()) { + resourceTypeName_ = other.resourceTypeName_; + onChanged(); + } if (stringBuilder_ == null) { if (!other.string_.isEmpty()) { if (string_.isEmpty()) { string_ = other.string_; - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ = (bitField0_ & ~0x00000080); } else { ensureStringIsMutable(); string_.addAll(other.string_); @@ -5987,8 +6191,8 @@ public Builder mergeFrom(CollectionSetProtos.CollectionSetResource other) { stringBuilder_.dispose(); stringBuilder_ = null; string_ = other.string_; - bitField0_ = (bitField0_ & ~0x00000010); - stringBuilder_ = + bitField0_ = (bitField0_ & ~0x00000080); + stringBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getStringFieldBuilder() : null; } else { @@ -6000,7 +6204,7 @@ public Builder mergeFrom(CollectionSetProtos.CollectionSetResource other) { if (!other.numeric_.isEmpty()) { if (numeric_.isEmpty()) { numeric_ = other.numeric_; - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000100); } else { ensureNumericIsMutable(); numeric_.addAll(other.numeric_); @@ -6013,8 +6217,8 @@ public Builder mergeFrom(CollectionSetProtos.CollectionSetResource other) { numericBuilder_.dispose(); numericBuilder_ = null; numeric_ = other.numeric_; - bitField0_ = (bitField0_ & ~0x00000020); - numericBuilder_ = + bitField0_ = (bitField0_ & ~0x00000100); + numericBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getNumericFieldBuilder() : null; } else { @@ -6048,21 +6252,21 @@ public Builder mergeFrom(CollectionSetProtos.CollectionSetResource other) { return this; } - @Override + @java.lang.Override public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - CollectionSetProtos.CollectionSetResource parsedMessage = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (CollectionSetProtos.CollectionSetResource) e.getUnfinishedMessage(); + parsedMessage = (org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -6072,7 +6276,7 @@ public Builder mergeFrom( return this; } private int resourceCase_ = 0; - private Object resource_; + private java.lang.Object resource_; public ResourceCase getResourceCase() { return ResourceCase.forNumber( @@ -6089,7 +6293,7 @@ public Builder clearResource() { private int bitField0_; private com.google.protobuf.SingleFieldBuilderV3< - NodeLevelResource, NodeLevelResource.Builder, NodeLevelResourceOrBuilder> nodeBuilder_; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder> nodeBuilder_; /** * .NodeLevelResource node = 1; */ @@ -6099,23 +6303,23 @@ public boolean hasNode() { /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResource getNode() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource getNode() { if (nodeBuilder_ == null) { if (resourceCase_ == 1) { - return (CollectionSetProtos.NodeLevelResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) resource_; } - return CollectionSetProtos.NodeLevelResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance(); } else { if (resourceCase_ == 1) { return nodeBuilder_.getMessage(); } - return CollectionSetProtos.NodeLevelResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance(); } } /** * .NodeLevelResource node = 1; */ - public Builder setNode(CollectionSetProtos.NodeLevelResource value) { + public Builder setNode(org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource value) { if (nodeBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -6132,7 +6336,7 @@ public Builder setNode(CollectionSetProtos.NodeLevelResource value) { * .NodeLevelResource node = 1; */ public Builder setNode( - CollectionSetProtos.NodeLevelResource.Builder builderForValue) { + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder builderForValue) { if (nodeBuilder_ == null) { resource_ = builderForValue.build(); onChanged(); @@ -6145,11 +6349,11 @@ public Builder setNode( /** * .NodeLevelResource node = 1; */ - public Builder mergeNode(CollectionSetProtos.NodeLevelResource value) { + public Builder mergeNode(org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource value) { if (nodeBuilder_ == null) { if (resourceCase_ == 1 && - resource_ != CollectionSetProtos.NodeLevelResource.getDefaultInstance()) { - resource_ = CollectionSetProtos.NodeLevelResource.newBuilder((CollectionSetProtos.NodeLevelResource) resource_) + resource_ != org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance()) { + resource_ = org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.newBuilder((org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) resource_) .mergeFrom(value).buildPartial(); } else { resource_ = value; @@ -6186,35 +6390,35 @@ public Builder clearNode() { /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResource.Builder getNodeBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder getNodeBuilder() { return getNodeFieldBuilder().getBuilder(); } /** * .NodeLevelResource node = 1; */ - public CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { if ((resourceCase_ == 1) && (nodeBuilder_ != null)) { return nodeBuilder_.getMessageOrBuilder(); } else { if (resourceCase_ == 1) { - return (CollectionSetProtos.NodeLevelResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) resource_; } - return CollectionSetProtos.NodeLevelResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance(); } } /** * .NodeLevelResource node = 1; */ private com.google.protobuf.SingleFieldBuilderV3< - NodeLevelResource, NodeLevelResource.Builder, NodeLevelResourceOrBuilder> + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder> getNodeFieldBuilder() { if (nodeBuilder_ == null) { if (!(resourceCase_ == 1)) { - resource_ = CollectionSetProtos.NodeLevelResource.getDefaultInstance(); + resource_ = org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.getDefaultInstance(); } nodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - NodeLevelResource, NodeLevelResource.Builder, NodeLevelResourceOrBuilder>( - (CollectionSetProtos.NodeLevelResource) resource_, + org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResourceOrBuilder>( + (org.opennms.features.kafka.producer.model.CollectionSetProtos.NodeLevelResource) resource_, getParentForChildren(), isClean()); resource_ = null; @@ -6225,7 +6429,7 @@ public CollectionSetProtos.NodeLevelResourceOrBuilder getNodeOrBuilder() { } private com.google.protobuf.SingleFieldBuilderV3< - InterfaceLevelResource, InterfaceLevelResource.Builder, InterfaceLevelResourceOrBuilder> interfaceBuilder_; + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResourceOrBuilder> interfaceBuilder_; /** * .InterfaceLevelResource interface = 2; */ @@ -6235,23 +6439,23 @@ public boolean hasInterface() { /** * .InterfaceLevelResource interface = 2; */ - public CollectionSetProtos.InterfaceLevelResource getInterface() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource getInterface() { if (interfaceBuilder_ == null) { if (resourceCase_ == 2) { - return (CollectionSetProtos.InterfaceLevelResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) resource_; } - return CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); } else { if (resourceCase_ == 2) { return interfaceBuilder_.getMessage(); } - return CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); } } /** * .InterfaceLevelResource interface = 2; */ - public Builder setInterface(CollectionSetProtos.InterfaceLevelResource value) { + public Builder setInterface(org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource value) { if (interfaceBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -6268,7 +6472,7 @@ public Builder setInterface(CollectionSetProtos.InterfaceLevelResource value) { * .InterfaceLevelResource interface = 2; */ public Builder setInterface( - CollectionSetProtos.InterfaceLevelResource.Builder builderForValue) { + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.Builder builderForValue) { if (interfaceBuilder_ == null) { resource_ = builderForValue.build(); onChanged(); @@ -6281,11 +6485,11 @@ public Builder setInterface( /** * .InterfaceLevelResource interface = 2; */ - public Builder mergeInterface(CollectionSetProtos.InterfaceLevelResource value) { + public Builder mergeInterface(org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource value) { if (interfaceBuilder_ == null) { if (resourceCase_ == 2 && - resource_ != CollectionSetProtos.InterfaceLevelResource.getDefaultInstance()) { - resource_ = CollectionSetProtos.InterfaceLevelResource.newBuilder((CollectionSetProtos.InterfaceLevelResource) resource_) + resource_ != org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.getDefaultInstance()) { + resource_ = org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.newBuilder((org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) resource_) .mergeFrom(value).buildPartial(); } else { resource_ = value; @@ -6322,35 +6526,35 @@ public Builder clearInterface() { /** * .InterfaceLevelResource interface = 2; */ - public CollectionSetProtos.InterfaceLevelResource.Builder getInterfaceBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.Builder getInterfaceBuilder() { return getInterfaceFieldBuilder().getBuilder(); } /** * .InterfaceLevelResource interface = 2; */ - public CollectionSetProtos.InterfaceLevelResourceOrBuilder getInterfaceOrBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResourceOrBuilder getInterfaceOrBuilder() { if ((resourceCase_ == 2) && (interfaceBuilder_ != null)) { return interfaceBuilder_.getMessageOrBuilder(); } else { if (resourceCase_ == 2) { - return (CollectionSetProtos.InterfaceLevelResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) resource_; } - return CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); } } /** * .InterfaceLevelResource interface = 2; */ private com.google.protobuf.SingleFieldBuilderV3< - InterfaceLevelResource, InterfaceLevelResource.Builder, InterfaceLevelResourceOrBuilder> + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResourceOrBuilder> getInterfaceFieldBuilder() { if (interfaceBuilder_ == null) { if (!(resourceCase_ == 2)) { - resource_ = CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); + resource_ = org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.getDefaultInstance(); } interfaceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - InterfaceLevelResource, InterfaceLevelResource.Builder, InterfaceLevelResourceOrBuilder>( - (CollectionSetProtos.InterfaceLevelResource) resource_, + org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResourceOrBuilder>( + (org.opennms.features.kafka.producer.model.CollectionSetProtos.InterfaceLevelResource) resource_, getParentForChildren(), isClean()); resource_ = null; @@ -6361,7 +6565,7 @@ public CollectionSetProtos.InterfaceLevelResourceOrBuilder getInterfaceOrBuilder } private com.google.protobuf.SingleFieldBuilderV3< - GenericTypeResource, GenericTypeResource.Builder, GenericTypeResourceOrBuilder> genericBuilder_; + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResourceOrBuilder> genericBuilder_; /** * .GenericTypeResource generic = 3; */ @@ -6371,23 +6575,23 @@ public boolean hasGeneric() { /** * .GenericTypeResource generic = 3; */ - public CollectionSetProtos.GenericTypeResource getGeneric() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource getGeneric() { if (genericBuilder_ == null) { if (resourceCase_ == 3) { - return (CollectionSetProtos.GenericTypeResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) resource_; } - return CollectionSetProtos.GenericTypeResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.getDefaultInstance(); } else { if (resourceCase_ == 3) { return genericBuilder_.getMessage(); } - return CollectionSetProtos.GenericTypeResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.getDefaultInstance(); } } /** * .GenericTypeResource generic = 3; */ - public Builder setGeneric(CollectionSetProtos.GenericTypeResource value) { + public Builder setGeneric(org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource value) { if (genericBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -6404,7 +6608,7 @@ public Builder setGeneric(CollectionSetProtos.GenericTypeResource value) { * .GenericTypeResource generic = 3; */ public Builder setGeneric( - CollectionSetProtos.GenericTypeResource.Builder builderForValue) { + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.Builder builderForValue) { if (genericBuilder_ == null) { resource_ = builderForValue.build(); onChanged(); @@ -6417,11 +6621,11 @@ public Builder setGeneric( /** * .GenericTypeResource generic = 3; */ - public Builder mergeGeneric(CollectionSetProtos.GenericTypeResource value) { + public Builder mergeGeneric(org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource value) { if (genericBuilder_ == null) { if (resourceCase_ == 3 && - resource_ != CollectionSetProtos.GenericTypeResource.getDefaultInstance()) { - resource_ = CollectionSetProtos.GenericTypeResource.newBuilder((CollectionSetProtos.GenericTypeResource) resource_) + resource_ != org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.getDefaultInstance()) { + resource_ = org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.newBuilder((org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) resource_) .mergeFrom(value).buildPartial(); } else { resource_ = value; @@ -6458,35 +6662,35 @@ public Builder clearGeneric() { /** * .GenericTypeResource generic = 3; */ - public CollectionSetProtos.GenericTypeResource.Builder getGenericBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.Builder getGenericBuilder() { return getGenericFieldBuilder().getBuilder(); } /** * .GenericTypeResource generic = 3; */ - public CollectionSetProtos.GenericTypeResourceOrBuilder getGenericOrBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResourceOrBuilder getGenericOrBuilder() { if ((resourceCase_ == 3) && (genericBuilder_ != null)) { return genericBuilder_.getMessageOrBuilder(); } else { if (resourceCase_ == 3) { - return (CollectionSetProtos.GenericTypeResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) resource_; } - return CollectionSetProtos.GenericTypeResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.getDefaultInstance(); } } /** * .GenericTypeResource generic = 3; */ private com.google.protobuf.SingleFieldBuilderV3< - GenericTypeResource, GenericTypeResource.Builder, GenericTypeResourceOrBuilder> + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResourceOrBuilder> getGenericFieldBuilder() { if (genericBuilder_ == null) { if (!(resourceCase_ == 3)) { - resource_ = CollectionSetProtos.GenericTypeResource.getDefaultInstance(); + resource_ = org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.getDefaultInstance(); } genericBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - GenericTypeResource, GenericTypeResource.Builder, GenericTypeResourceOrBuilder>( - (CollectionSetProtos.GenericTypeResource) resource_, + org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResourceOrBuilder>( + (org.opennms.features.kafka.producer.model.CollectionSetProtos.GenericTypeResource) resource_, getParentForChildren(), isClean()); resource_ = null; @@ -6497,7 +6701,7 @@ public CollectionSetProtos.GenericTypeResourceOrBuilder getGenericOrBuilder() { } private com.google.protobuf.SingleFieldBuilderV3< - ResponseTimeResource, ResponseTimeResource.Builder, ResponseTimeResourceOrBuilder> responseBuilder_; + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResourceOrBuilder> responseBuilder_; /** * .ResponseTimeResource response = 4; */ @@ -6507,23 +6711,23 @@ public boolean hasResponse() { /** * .ResponseTimeResource response = 4; */ - public CollectionSetProtos.ResponseTimeResource getResponse() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource getResponse() { if (responseBuilder_ == null) { if (resourceCase_ == 4) { - return (CollectionSetProtos.ResponseTimeResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) resource_; } - return CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); } else { if (resourceCase_ == 4) { return responseBuilder_.getMessage(); } - return CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); } } /** * .ResponseTimeResource response = 4; */ - public Builder setResponse(CollectionSetProtos.ResponseTimeResource value) { + public Builder setResponse(org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource value) { if (responseBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -6540,7 +6744,7 @@ public Builder setResponse(CollectionSetProtos.ResponseTimeResource value) { * .ResponseTimeResource response = 4; */ public Builder setResponse( - CollectionSetProtos.ResponseTimeResource.Builder builderForValue) { + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.Builder builderForValue) { if (responseBuilder_ == null) { resource_ = builderForValue.build(); onChanged(); @@ -6553,11 +6757,11 @@ public Builder setResponse( /** * .ResponseTimeResource response = 4; */ - public Builder mergeResponse(CollectionSetProtos.ResponseTimeResource value) { + public Builder mergeResponse(org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource value) { if (responseBuilder_ == null) { if (resourceCase_ == 4 && - resource_ != CollectionSetProtos.ResponseTimeResource.getDefaultInstance()) { - resource_ = CollectionSetProtos.ResponseTimeResource.newBuilder((CollectionSetProtos.ResponseTimeResource) resource_) + resource_ != org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.getDefaultInstance()) { + resource_ = org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.newBuilder((org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) resource_) .mergeFrom(value).buildPartial(); } else { resource_ = value; @@ -6594,35 +6798,35 @@ public Builder clearResponse() { /** * .ResponseTimeResource response = 4; */ - public CollectionSetProtos.ResponseTimeResource.Builder getResponseBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.Builder getResponseBuilder() { return getResponseFieldBuilder().getBuilder(); } /** * .ResponseTimeResource response = 4; */ - public CollectionSetProtos.ResponseTimeResourceOrBuilder getResponseOrBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResourceOrBuilder getResponseOrBuilder() { if ((resourceCase_ == 4) && (responseBuilder_ != null)) { return responseBuilder_.getMessageOrBuilder(); } else { if (resourceCase_ == 4) { - return (CollectionSetProtos.ResponseTimeResource) resource_; + return (org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) resource_; } - return CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); + return org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); } } /** * .ResponseTimeResource response = 4; */ private com.google.protobuf.SingleFieldBuilderV3< - ResponseTimeResource, ResponseTimeResource.Builder, ResponseTimeResourceOrBuilder> + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResourceOrBuilder> getResponseFieldBuilder() { if (responseBuilder_ == null) { if (!(resourceCase_ == 4)) { - resource_ = CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); + resource_ = org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.getDefaultInstance(); } responseBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - ResponseTimeResource, ResponseTimeResource.Builder, ResponseTimeResourceOrBuilder>( - (CollectionSetProtos.ResponseTimeResource) resource_, + org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResourceOrBuilder>( + (org.opennms.features.kafka.producer.model.CollectionSetProtos.ResponseTimeResource) resource_, getParentForChildren(), isClean()); resource_ = null; @@ -6632,22 +6836,229 @@ public CollectionSetProtos.ResponseTimeResourceOrBuilder getResponseOrBuilder() return responseBuilder_; } - private java.util.List string_ = + private java.lang.Object resourceId_ = ""; + /** + * string resource_id = 5; + */ + public java.lang.String getResourceId() { + java.lang.Object ref = resourceId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string resource_id = 5; + */ + public com.google.protobuf.ByteString + getResourceIdBytes() { + java.lang.Object ref = resourceId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + resourceId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string resource_id = 5; + */ + public Builder setResourceId( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + resourceId_ = value; + onChanged(); + return this; + } + /** + * string resource_id = 5; + */ + public Builder clearResourceId() { + + resourceId_ = getDefaultInstance().getResourceId(); + onChanged(); + return this; + } + /** + * string resource_id = 5; + */ + public Builder setResourceIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + resourceId_ = value; + onChanged(); + return this; + } + + private java.lang.Object resourceName_ = ""; + /** + * string resource_name = 6; + */ + public java.lang.String getResourceName() { + java.lang.Object ref = resourceName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string resource_name = 6; + */ + public com.google.protobuf.ByteString + getResourceNameBytes() { + java.lang.Object ref = resourceName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + resourceName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string resource_name = 6; + */ + public Builder setResourceName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + resourceName_ = value; + onChanged(); + return this; + } + /** + * string resource_name = 6; + */ + public Builder clearResourceName() { + + resourceName_ = getDefaultInstance().getResourceName(); + onChanged(); + return this; + } + /** + * string resource_name = 6; + */ + public Builder setResourceNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + resourceName_ = value; + onChanged(); + return this; + } + + private java.lang.Object resourceTypeName_ = ""; + /** + * string resource_type_name = 7; + */ + public java.lang.String getResourceTypeName() { + java.lang.Object ref = resourceTypeName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceTypeName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string resource_type_name = 7; + */ + public com.google.protobuf.ByteString + getResourceTypeNameBytes() { + java.lang.Object ref = resourceTypeName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + resourceTypeName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string resource_type_name = 7; + */ + public Builder setResourceTypeName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + resourceTypeName_ = value; + onChanged(); + return this; + } + /** + * string resource_type_name = 7; + */ + public Builder clearResourceTypeName() { + + resourceTypeName_ = getDefaultInstance().getResourceTypeName(); + onChanged(); + return this; + } + /** + * string resource_type_name = 7; + */ + public Builder setResourceTypeNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + resourceTypeName_ = value; + onChanged(); + return this; + } + + private java.util.List string_ = java.util.Collections.emptyList(); private void ensureStringIsMutable() { - if (!((bitField0_ & 0x00000010) == 0x00000010)) { - string_ = new java.util.ArrayList(string_); - bitField0_ |= 0x00000010; + if (!((bitField0_ & 0x00000080) == 0x00000080)) { + string_ = new java.util.ArrayList(string_); + bitField0_ |= 0x00000080; } } private com.google.protobuf.RepeatedFieldBuilderV3< - StringAttribute, StringAttribute.Builder, StringAttributeOrBuilder> stringBuilder_; + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttributeOrBuilder> stringBuilder_; /** * repeated .StringAttribute string = 10; */ - public java.util.List getStringList() { + public java.util.List getStringList() { if (stringBuilder_ == null) { return java.util.Collections.unmodifiableList(string_); } else { @@ -6667,7 +7078,7 @@ public int getStringCount() { /** * repeated .StringAttribute string = 10; */ - public CollectionSetProtos.StringAttribute getString(int index) { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute getString(int index) { if (stringBuilder_ == null) { return string_.get(index); } else { @@ -6678,7 +7089,7 @@ public CollectionSetProtos.StringAttribute getString(int index) { * repeated .StringAttribute string = 10; */ public Builder setString( - int index, CollectionSetProtos.StringAttribute value) { + int index, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute value) { if (stringBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -6695,7 +7106,7 @@ public Builder setString( * repeated .StringAttribute string = 10; */ public Builder setString( - int index, CollectionSetProtos.StringAttribute.Builder builderForValue) { + int index, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.Builder builderForValue) { if (stringBuilder_ == null) { ensureStringIsMutable(); string_.set(index, builderForValue.build()); @@ -6708,7 +7119,7 @@ public Builder setString( /** * repeated .StringAttribute string = 10; */ - public Builder addString(CollectionSetProtos.StringAttribute value) { + public Builder addString(org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute value) { if (stringBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -6725,7 +7136,7 @@ public Builder addString(CollectionSetProtos.StringAttribute value) { * repeated .StringAttribute string = 10; */ public Builder addString( - int index, CollectionSetProtos.StringAttribute value) { + int index, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute value) { if (stringBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -6742,7 +7153,7 @@ public Builder addString( * repeated .StringAttribute string = 10; */ public Builder addString( - CollectionSetProtos.StringAttribute.Builder builderForValue) { + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.Builder builderForValue) { if (stringBuilder_ == null) { ensureStringIsMutable(); string_.add(builderForValue.build()); @@ -6756,7 +7167,7 @@ public Builder addString( * repeated .StringAttribute string = 10; */ public Builder addString( - int index, CollectionSetProtos.StringAttribute.Builder builderForValue) { + int index, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.Builder builderForValue) { if (stringBuilder_ == null) { ensureStringIsMutable(); string_.add(index, builderForValue.build()); @@ -6770,7 +7181,7 @@ public Builder addString( * repeated .StringAttribute string = 10; */ public Builder addAllString( - Iterable values) { + java.lang.Iterable values) { if (stringBuilder_ == null) { ensureStringIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( @@ -6787,7 +7198,7 @@ public Builder addAllString( public Builder clearString() { if (stringBuilder_ == null) { string_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ = (bitField0_ & ~0x00000080); onChanged(); } else { stringBuilder_.clear(); @@ -6810,14 +7221,14 @@ public Builder removeString(int index) { /** * repeated .StringAttribute string = 10; */ - public CollectionSetProtos.StringAttribute.Builder getStringBuilder( + public org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.Builder getStringBuilder( int index) { return getStringFieldBuilder().getBuilder(index); } /** * repeated .StringAttribute string = 10; */ - public CollectionSetProtos.StringAttributeOrBuilder getStringOrBuilder( + public org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttributeOrBuilder getStringOrBuilder( int index) { if (stringBuilder_ == null) { return string_.get(index); } else { @@ -6827,7 +7238,7 @@ public CollectionSetProtos.StringAttributeOrBuilder getStringOrBuilder( /** * repeated .StringAttribute string = 10; */ - public java.util.List + public java.util.List getStringOrBuilderList() { if (stringBuilder_ != null) { return stringBuilder_.getMessageOrBuilderList(); @@ -6838,33 +7249,33 @@ public CollectionSetProtos.StringAttributeOrBuilder getStringOrBuilder( /** * repeated .StringAttribute string = 10; */ - public CollectionSetProtos.StringAttribute.Builder addStringBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.Builder addStringBuilder() { return getStringFieldBuilder().addBuilder( - CollectionSetProtos.StringAttribute.getDefaultInstance()); + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.getDefaultInstance()); } /** * repeated .StringAttribute string = 10; */ - public CollectionSetProtos.StringAttribute.Builder addStringBuilder( + public org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.Builder addStringBuilder( int index) { return getStringFieldBuilder().addBuilder( - index, CollectionSetProtos.StringAttribute.getDefaultInstance()); + index, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.getDefaultInstance()); } /** * repeated .StringAttribute string = 10; */ - public java.util.List + public java.util.List getStringBuilderList() { return getStringFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - StringAttribute, StringAttribute.Builder, StringAttributeOrBuilder> + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttributeOrBuilder> getStringFieldBuilder() { if (stringBuilder_ == null) { stringBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - StringAttribute, StringAttribute.Builder, StringAttributeOrBuilder>( + org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttribute.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.StringAttributeOrBuilder>( string_, - ((bitField0_ & 0x00000010) == 0x00000010), + ((bitField0_ & 0x00000080) == 0x00000080), getParentForChildren(), isClean()); string_ = null; @@ -6872,22 +7283,22 @@ public CollectionSetProtos.StringAttribute.Builder addStringBuilder( return stringBuilder_; } - private java.util.List numeric_ = + private java.util.List numeric_ = java.util.Collections.emptyList(); private void ensureNumericIsMutable() { - if (!((bitField0_ & 0x00000020) == 0x00000020)) { - numeric_ = new java.util.ArrayList(numeric_); - bitField0_ |= 0x00000020; + if (!((bitField0_ & 0x00000100) == 0x00000100)) { + numeric_ = new java.util.ArrayList(numeric_); + bitField0_ |= 0x00000100; } } private com.google.protobuf.RepeatedFieldBuilderV3< - NumericAttribute, NumericAttribute.Builder, NumericAttributeOrBuilder> numericBuilder_; + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttributeOrBuilder> numericBuilder_; /** * repeated .NumericAttribute numeric = 11; */ - public java.util.List getNumericList() { + public java.util.List getNumericList() { if (numericBuilder_ == null) { return java.util.Collections.unmodifiableList(numeric_); } else { @@ -6907,7 +7318,7 @@ public int getNumericCount() { /** * repeated .NumericAttribute numeric = 11; */ - public CollectionSetProtos.NumericAttribute getNumeric(int index) { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute getNumeric(int index) { if (numericBuilder_ == null) { return numeric_.get(index); } else { @@ -6918,7 +7329,7 @@ public CollectionSetProtos.NumericAttribute getNumeric(int index) { * repeated .NumericAttribute numeric = 11; */ public Builder setNumeric( - int index, CollectionSetProtos.NumericAttribute value) { + int index, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute value) { if (numericBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -6935,7 +7346,7 @@ public Builder setNumeric( * repeated .NumericAttribute numeric = 11; */ public Builder setNumeric( - int index, CollectionSetProtos.NumericAttribute.Builder builderForValue) { + int index, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Builder builderForValue) { if (numericBuilder_ == null) { ensureNumericIsMutable(); numeric_.set(index, builderForValue.build()); @@ -6948,7 +7359,7 @@ public Builder setNumeric( /** * repeated .NumericAttribute numeric = 11; */ - public Builder addNumeric(CollectionSetProtos.NumericAttribute value) { + public Builder addNumeric(org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute value) { if (numericBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -6965,7 +7376,7 @@ public Builder addNumeric(CollectionSetProtos.NumericAttribute value) { * repeated .NumericAttribute numeric = 11; */ public Builder addNumeric( - int index, CollectionSetProtos.NumericAttribute value) { + int index, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute value) { if (numericBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -6982,7 +7393,7 @@ public Builder addNumeric( * repeated .NumericAttribute numeric = 11; */ public Builder addNumeric( - CollectionSetProtos.NumericAttribute.Builder builderForValue) { + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Builder builderForValue) { if (numericBuilder_ == null) { ensureNumericIsMutable(); numeric_.add(builderForValue.build()); @@ -6996,7 +7407,7 @@ public Builder addNumeric( * repeated .NumericAttribute numeric = 11; */ public Builder addNumeric( - int index, CollectionSetProtos.NumericAttribute.Builder builderForValue) { + int index, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Builder builderForValue) { if (numericBuilder_ == null) { ensureNumericIsMutable(); numeric_.add(index, builderForValue.build()); @@ -7010,7 +7421,7 @@ public Builder addNumeric( * repeated .NumericAttribute numeric = 11; */ public Builder addAllNumeric( - Iterable values) { + java.lang.Iterable values) { if (numericBuilder_ == null) { ensureNumericIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( @@ -7027,7 +7438,7 @@ public Builder addAllNumeric( public Builder clearNumeric() { if (numericBuilder_ == null) { numeric_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000100); onChanged(); } else { numericBuilder_.clear(); @@ -7050,14 +7461,14 @@ public Builder removeNumeric(int index) { /** * repeated .NumericAttribute numeric = 11; */ - public CollectionSetProtos.NumericAttribute.Builder getNumericBuilder( + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Builder getNumericBuilder( int index) { return getNumericFieldBuilder().getBuilder(index); } /** * repeated .NumericAttribute numeric = 11; */ - public CollectionSetProtos.NumericAttributeOrBuilder getNumericOrBuilder( + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttributeOrBuilder getNumericOrBuilder( int index) { if (numericBuilder_ == null) { return numeric_.get(index); } else { @@ -7067,7 +7478,7 @@ public CollectionSetProtos.NumericAttributeOrBuilder getNumericOrBuilder( /** * repeated .NumericAttribute numeric = 11; */ - public java.util.List + public java.util.List getNumericOrBuilderList() { if (numericBuilder_ != null) { return numericBuilder_.getMessageOrBuilderList(); @@ -7078,46 +7489,46 @@ public CollectionSetProtos.NumericAttributeOrBuilder getNumericOrBuilder( /** * repeated .NumericAttribute numeric = 11; */ - public CollectionSetProtos.NumericAttribute.Builder addNumericBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Builder addNumericBuilder() { return getNumericFieldBuilder().addBuilder( - CollectionSetProtos.NumericAttribute.getDefaultInstance()); + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.getDefaultInstance()); } /** * repeated .NumericAttribute numeric = 11; */ - public CollectionSetProtos.NumericAttribute.Builder addNumericBuilder( + public org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Builder addNumericBuilder( int index) { return getNumericFieldBuilder().addBuilder( - index, CollectionSetProtos.NumericAttribute.getDefaultInstance()); + index, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.getDefaultInstance()); } /** * repeated .NumericAttribute numeric = 11; */ - public java.util.List + public java.util.List getNumericBuilderList() { return getNumericFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - NumericAttribute, NumericAttribute.Builder, NumericAttributeOrBuilder> + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttributeOrBuilder> getNumericFieldBuilder() { if (numericBuilder_ == null) { numericBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - NumericAttribute, NumericAttribute.Builder, NumericAttributeOrBuilder>( + org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttribute.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.NumericAttributeOrBuilder>( numeric_, - ((bitField0_ & 0x00000020) == 0x00000020), + ((bitField0_ & 0x00000100) == 0x00000100), getParentForChildren(), isClean()); numeric_ = null; } return numericBuilder_; } - @Override + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFieldsProto3(unknownFields); } - @Override + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); @@ -7128,18 +7539,18 @@ public final Builder mergeUnknownFields( } // @@protoc_insertion_point(class_scope:CollectionSetResource) - private static final CollectionSetProtos.CollectionSetResource DEFAULT_INSTANCE; + private static final org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new CollectionSetProtos.CollectionSetResource(); + DEFAULT_INSTANCE = new org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource(); } - public static CollectionSetProtos.CollectionSetResource getDefaultInstance() { + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - @Override + @java.lang.Override public CollectionSetResource parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -7152,13 +7563,13 @@ public static com.google.protobuf.Parser parser() { return PARSER; } - @Override + @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } - @Override - public CollectionSetProtos.CollectionSetResource getDefaultInstanceForType() { + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -7176,12 +7587,12 @@ public interface CollectionSetOrBuilder extends /** * repeated .CollectionSetResource resource = 2; */ - java.util.List + java.util.List getResourceList(); /** * repeated .CollectionSetResource resource = 2; */ - CollectionSetProtos.CollectionSetResource getResource(int index); + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource getResource(int index); /** * repeated .CollectionSetResource resource = 2; */ @@ -7189,13 +7600,13 @@ public interface CollectionSetOrBuilder extends /** * repeated .CollectionSetResource resource = 2; */ - java.util.List + java.util.List getResourceOrBuilderList(); /** * repeated .CollectionSetResource resource = 2; */ - CollectionSetProtos.CollectionSetResourceOrBuilder getResourceOrBuilder( - int index); + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResourceOrBuilder getResourceOrBuilder( + int index); } /** * Protobuf type {@code CollectionSet} @@ -7214,7 +7625,7 @@ private CollectionSet() { resource_ = java.util.Collections.emptyList(); } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; @@ -7225,7 +7636,7 @@ private CollectionSet( throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { - throw new NullPointerException(); + throw new java.lang.NullPointerException(); } int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = @@ -7245,11 +7656,11 @@ private CollectionSet( } case 18: { if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { - resource_ = new java.util.ArrayList(); + resource_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000002; } resource_.add( - input.readMessage(CollectionSetProtos.CollectionSetResource.parser(), extensionRegistry)); + input.readMessage(org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.parser(), extensionRegistry)); break; } default: { @@ -7276,15 +7687,15 @@ private CollectionSet( } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_CollectionSet_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_CollectionSet_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_CollectionSet_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_CollectionSet_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.CollectionSet.class, CollectionSetProtos.CollectionSet.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet.Builder.class); } private int bitField0_; @@ -7298,17 +7709,17 @@ public long getTimestamp() { } public static final int RESOURCE_FIELD_NUMBER = 2; - private java.util.List resource_; + private java.util.List resource_; /** * repeated .CollectionSetResource resource = 2; */ - public java.util.List getResourceList() { + public java.util.List getResourceList() { return resource_; } /** * repeated .CollectionSetResource resource = 2; */ - public java.util.List + public java.util.List getResourceOrBuilderList() { return resource_; } @@ -7321,19 +7732,19 @@ public int getResourceCount() { /** * repeated .CollectionSetResource resource = 2; */ - public CollectionSetProtos.CollectionSetResource getResource(int index) { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource getResource(int index) { return resource_.get(index); } /** * repeated .CollectionSetResource resource = 2; */ - public CollectionSetProtos.CollectionSetResourceOrBuilder getResourceOrBuilder( + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResourceOrBuilder getResourceOrBuilder( int index) { return resource_.get(index); } private byte memoizedIsInitialized = -1; - @Override + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -7343,7 +7754,7 @@ public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (timestamp_ != 0L) { @@ -7355,7 +7766,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) unknownFields.writeTo(output); } - @Override + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -7374,15 +7785,15 @@ public int getSerializedSize() { return size; } - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof CollectionSetProtos.CollectionSet)) { + if (!(obj instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet)) { return super.equals(obj); } - CollectionSetProtos.CollectionSet other = (CollectionSetProtos.CollectionSet) obj; + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet other = (org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet) obj; boolean result = true; result = result && (getTimestamp() @@ -7393,7 +7804,7 @@ public boolean equals(final Object obj) { return result; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; @@ -7412,69 +7823,69 @@ public int hashCode() { return hash; } - public static CollectionSetProtos.CollectionSet parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.CollectionSet parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.CollectionSet parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.CollectionSet parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.CollectionSet parseFrom(byte[] data) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static CollectionSetProtos.CollectionSet parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static CollectionSetProtos.CollectionSet parseFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.CollectionSet parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.CollectionSet parseDelimitedFrom(java.io.InputStream input) + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static CollectionSetProtos.CollectionSet parseDelimitedFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static CollectionSetProtos.CollectionSet parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static CollectionSetProtos.CollectionSet parseFrom( + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -7482,23 +7893,23 @@ public static CollectionSetProtos.CollectionSet parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } - @Override + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(CollectionSetProtos.CollectionSet prototype) { + public static Builder newBuilder(org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - @Override + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } @@ -7508,18 +7919,18 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:CollectionSet) - CollectionSetProtos.CollectionSetOrBuilder { + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return CollectionSetProtos.internal_static_CollectionSet_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_CollectionSet_descriptor; } - @Override - protected FieldAccessorTable + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return CollectionSetProtos.internal_static_CollectionSet_fieldAccessorTable + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_CollectionSet_fieldAccessorTable .ensureFieldAccessorsInitialized( - CollectionSetProtos.CollectionSet.class, CollectionSetProtos.CollectionSet.Builder.class); + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet.class, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet.Builder.class); } // Construct using org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet.newBuilder() @@ -7528,7 +7939,7 @@ private Builder() { } private Builder( - BuilderParent parent) { + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } @@ -7538,7 +7949,7 @@ private void maybeForceBuilderInitialization() { getResourceFieldBuilder(); } } - @Override + @java.lang.Override public Builder clear() { super.clear(); timestamp_ = 0L; @@ -7552,29 +7963,29 @@ public Builder clear() { return this; } - @Override + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return CollectionSetProtos.internal_static_CollectionSet_descriptor; + return org.opennms.features.kafka.producer.model.CollectionSetProtos.internal_static_CollectionSet_descriptor; } - @Override - public CollectionSetProtos.CollectionSet getDefaultInstanceForType() { - return CollectionSetProtos.CollectionSet.getDefaultInstance(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet getDefaultInstanceForType() { + return org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet.getDefaultInstance(); } - @Override - public CollectionSetProtos.CollectionSet build() { - CollectionSetProtos.CollectionSet result = buildPartial(); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet build() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - @Override - public CollectionSetProtos.CollectionSet buildPartial() { - CollectionSetProtos.CollectionSet result = new CollectionSetProtos.CollectionSet(this); + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet buildPartial() { + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet result = new org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; result.timestamp_ = timestamp_; @@ -7592,50 +8003,50 @@ public CollectionSetProtos.CollectionSet buildPartial() { return result; } - @Override + @java.lang.Override public Builder clone() { return (Builder) super.clone(); } - @Override + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.setField(field, value); } - @Override + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return (Builder) super.clearField(field); } - @Override + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return (Builder) super.clearOneof(oneof); } - @Override + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { + int index, java.lang.Object value) { return (Builder) super.setRepeatedField(field, index, value); } - @Override + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { + java.lang.Object value) { return (Builder) super.addRepeatedField(field, value); } - @Override + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof CollectionSetProtos.CollectionSet) { - return mergeFrom((CollectionSetProtos.CollectionSet)other); + if (other instanceof org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet) { + return mergeFrom((org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(CollectionSetProtos.CollectionSet other) { - if (other == CollectionSetProtos.CollectionSet.getDefaultInstance()) return this; + public Builder mergeFrom(org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet other) { + if (other == org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet.getDefaultInstance()) return this; if (other.getTimestamp() != 0L) { setTimestamp(other.getTimestamp()); } @@ -7657,7 +8068,7 @@ public Builder mergeFrom(CollectionSetProtos.CollectionSet other) { resourceBuilder_ = null; resource_ = other.resource_; bitField0_ = (bitField0_ & ~0x00000002); - resourceBuilder_ = + resourceBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getResourceFieldBuilder() : null; } else { @@ -7670,21 +8081,21 @@ public Builder mergeFrom(CollectionSetProtos.CollectionSet other) { return this; } - @Override + @java.lang.Override public final boolean isInitialized() { return true; } - @Override + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - CollectionSetProtos.CollectionSet parsedMessage = null; + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (CollectionSetProtos.CollectionSet) e.getUnfinishedMessage(); + parsedMessage = (org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -7706,7 +8117,7 @@ public long getTimestamp() { * int64 timestamp = 1; */ public Builder setTimestamp(long value) { - + timestamp_ = value; onChanged(); return this; @@ -7715,28 +8126,28 @@ public Builder setTimestamp(long value) { * int64 timestamp = 1; */ public Builder clearTimestamp() { - + timestamp_ = 0L; onChanged(); return this; } - private java.util.List resource_ = + private java.util.List resource_ = java.util.Collections.emptyList(); private void ensureResourceIsMutable() { if (!((bitField0_ & 0x00000002) == 0x00000002)) { - resource_ = new java.util.ArrayList(resource_); + resource_ = new java.util.ArrayList(resource_); bitField0_ |= 0x00000002; } } private com.google.protobuf.RepeatedFieldBuilderV3< - CollectionSetResource, CollectionSetResource.Builder, CollectionSetResourceOrBuilder> resourceBuilder_; + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResourceOrBuilder> resourceBuilder_; /** * repeated .CollectionSetResource resource = 2; */ - public java.util.List getResourceList() { + public java.util.List getResourceList() { if (resourceBuilder_ == null) { return java.util.Collections.unmodifiableList(resource_); } else { @@ -7756,7 +8167,7 @@ public int getResourceCount() { /** * repeated .CollectionSetResource resource = 2; */ - public CollectionSetProtos.CollectionSetResource getResource(int index) { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource getResource(int index) { if (resourceBuilder_ == null) { return resource_.get(index); } else { @@ -7767,7 +8178,7 @@ public CollectionSetProtos.CollectionSetResource getResource(int index) { * repeated .CollectionSetResource resource = 2; */ public Builder setResource( - int index, CollectionSetProtos.CollectionSetResource value) { + int index, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource value) { if (resourceBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -7784,7 +8195,7 @@ public Builder setResource( * repeated .CollectionSetResource resource = 2; */ public Builder setResource( - int index, CollectionSetProtos.CollectionSetResource.Builder builderForValue) { + int index, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.Builder builderForValue) { if (resourceBuilder_ == null) { ensureResourceIsMutable(); resource_.set(index, builderForValue.build()); @@ -7797,7 +8208,7 @@ public Builder setResource( /** * repeated .CollectionSetResource resource = 2; */ - public Builder addResource(CollectionSetProtos.CollectionSetResource value) { + public Builder addResource(org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource value) { if (resourceBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -7814,7 +8225,7 @@ public Builder addResource(CollectionSetProtos.CollectionSetResource value) { * repeated .CollectionSetResource resource = 2; */ public Builder addResource( - int index, CollectionSetProtos.CollectionSetResource value) { + int index, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource value) { if (resourceBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -7831,7 +8242,7 @@ public Builder addResource( * repeated .CollectionSetResource resource = 2; */ public Builder addResource( - CollectionSetProtos.CollectionSetResource.Builder builderForValue) { + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.Builder builderForValue) { if (resourceBuilder_ == null) { ensureResourceIsMutable(); resource_.add(builderForValue.build()); @@ -7845,7 +8256,7 @@ public Builder addResource( * repeated .CollectionSetResource resource = 2; */ public Builder addResource( - int index, CollectionSetProtos.CollectionSetResource.Builder builderForValue) { + int index, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.Builder builderForValue) { if (resourceBuilder_ == null) { ensureResourceIsMutable(); resource_.add(index, builderForValue.build()); @@ -7859,7 +8270,7 @@ public Builder addResource( * repeated .CollectionSetResource resource = 2; */ public Builder addAllResource( - Iterable values) { + java.lang.Iterable values) { if (resourceBuilder_ == null) { ensureResourceIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( @@ -7899,14 +8310,14 @@ public Builder removeResource(int index) { /** * repeated .CollectionSetResource resource = 2; */ - public CollectionSetProtos.CollectionSetResource.Builder getResourceBuilder( + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.Builder getResourceBuilder( int index) { return getResourceFieldBuilder().getBuilder(index); } /** * repeated .CollectionSetResource resource = 2; */ - public CollectionSetProtos.CollectionSetResourceOrBuilder getResourceOrBuilder( + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResourceOrBuilder getResourceOrBuilder( int index) { if (resourceBuilder_ == null) { return resource_.get(index); } else { @@ -7916,7 +8327,7 @@ public CollectionSetProtos.CollectionSetResourceOrBuilder getResourceOrBuilder( /** * repeated .CollectionSetResource resource = 2; */ - public java.util.List + public java.util.List getResourceOrBuilderList() { if (resourceBuilder_ != null) { return resourceBuilder_.getMessageOrBuilderList(); @@ -7927,31 +8338,31 @@ public CollectionSetProtos.CollectionSetResourceOrBuilder getResourceOrBuilder( /** * repeated .CollectionSetResource resource = 2; */ - public CollectionSetProtos.CollectionSetResource.Builder addResourceBuilder() { + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.Builder addResourceBuilder() { return getResourceFieldBuilder().addBuilder( - CollectionSetProtos.CollectionSetResource.getDefaultInstance()); + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.getDefaultInstance()); } /** * repeated .CollectionSetResource resource = 2; */ - public CollectionSetProtos.CollectionSetResource.Builder addResourceBuilder( + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.Builder addResourceBuilder( int index) { return getResourceFieldBuilder().addBuilder( - index, CollectionSetProtos.CollectionSetResource.getDefaultInstance()); + index, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.getDefaultInstance()); } /** * repeated .CollectionSetResource resource = 2; */ - public java.util.List + public java.util.List getResourceBuilderList() { return getResourceFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - CollectionSetResource, CollectionSetResource.Builder, CollectionSetResourceOrBuilder> + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResourceOrBuilder> getResourceFieldBuilder() { if (resourceBuilder_ == null) { resourceBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - CollectionSetResource, CollectionSetResource.Builder, CollectionSetResourceOrBuilder>( + org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResource.Builder, org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSetResourceOrBuilder>( resource_, ((bitField0_ & 0x00000002) == 0x00000002), getParentForChildren(), @@ -7960,13 +8371,13 @@ public CollectionSetProtos.CollectionSetResource.Builder addResourceBuilder( } return resourceBuilder_; } - @Override + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFieldsProto3(unknownFields); } - @Override + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); @@ -7977,18 +8388,18 @@ public final Builder mergeUnknownFields( } // @@protoc_insertion_point(class_scope:CollectionSet) - private static final CollectionSetProtos.CollectionSet DEFAULT_INSTANCE; + private static final org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new CollectionSetProtos.CollectionSet(); + DEFAULT_INSTANCE = new org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet(); } - public static CollectionSetProtos.CollectionSet getDefaultInstance() { + public static org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - @Override + @java.lang.Override public CollectionSet parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -8001,13 +8412,13 @@ public static com.google.protobuf.Parser parser() { return PARSER; } - @Override + @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } - @Override - public CollectionSetProtos.CollectionSet getDefaultInstanceForType() { + @java.lang.Override + public org.opennms.features.kafka.producer.model.CollectionSetProtos.CollectionSet getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -8015,42 +8426,42 @@ public CollectionSetProtos.CollectionSet getDefaultInstanceForType() { private static final com.google.protobuf.Descriptors.Descriptor internal_static_StringAttribute_descriptor; - private static final + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_StringAttribute_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_NumericAttribute_descriptor; - private static final + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_NumericAttribute_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_NodeLevelResource_descriptor; - private static final + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_NodeLevelResource_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_InterfaceLevelResource_descriptor; - private static final + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_InterfaceLevelResource_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_GenericTypeResource_descriptor; - private static final + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_GenericTypeResource_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_ResponseTimeResource_descriptor; - private static final + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_ResponseTimeResource_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_CollectionSetResource_descriptor; - private static final + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_CollectionSetResource_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_CollectionSet_descriptor; - private static final + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_CollectionSet_fieldAccessorTable; @@ -8061,7 +8472,7 @@ public CollectionSetProtos.CollectionSet getDefaultInstanceForType() { private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { - String[] descriptorData = { + java.lang.String[] descriptorData = { "\n\023collectionset.proto\".\n\017StringAttribute" + "\022\014\n\004name\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"\204\001\n\020Numeri" + "cAttribute\022\r\n\005group\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022" + @@ -8076,17 +8487,19 @@ public CollectionSetProtos.CollectionSet getDefaultInstanceForType() { "rce\022 \n\004node\030\001 \001(\0132\022.NodeLevelResource\022\014\n" + "\004type\030\002 \001(\t\022\020\n\010instance\030\003 \001(\t\":\n\024Respons" + "eTimeResource\022\020\n\010instance\030\001 \001(\t\022\020\n\010locat" + - "ion\030\002 \001(\t\"\217\002\n\025CollectionSetResource\022\"\n\004n" + + "ion\030\002 \001(\t\"\327\002\n\025CollectionSetResource\022\"\n\004n" + "ode\030\001 \001(\0132\022.NodeLevelResourceH\000\022,\n\tinter" + "face\030\002 \001(\0132\027.InterfaceLevelResourceH\000\022\'\n" + "\007generic\030\003 \001(\0132\024.GenericTypeResourceH\000\022)" + "\n\010response\030\004 \001(\0132\025.ResponseTimeResourceH" + - "\000\022 \n\006string\030\n \003(\0132\020.StringAttribute\022\"\n\007n" + - "umeric\030\013 \003(\0132\021.NumericAttributeB\n\n\010resou" + - "rce\"L\n\rCollectionSet\022\021\n\ttimestamp\030\001 \001(\003\022" + - "(\n\010resource\030\002 \003(\0132\026.CollectionSetResourc" + - "eB@\n)org.opennms.features.kafka.producer" + - ".modelB\023CollectionSetProtosb\006proto3" + "\000\022\023\n\013resource_id\030\005 \001(\t\022\025\n\rresource_name\030" + + "\006 \001(\t\022\032\n\022resource_type_name\030\007 \001(\t\022 \n\006str" + + "ing\030\n \003(\0132\020.StringAttribute\022\"\n\007numeric\030\013" + + " \003(\0132\021.NumericAttributeB\n\n\010resource\"L\n\rC" + + "ollectionSet\022\021\n\ttimestamp\030\001 \001(\003\022(\n\010resou" + + "rce\030\002 \003(\0132\026.CollectionSetResourceB@\n)org" + + ".opennms.features.kafka.producer.modelB\023" + + "CollectionSetProtosb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -8105,49 +8518,49 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_StringAttribute_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_StringAttribute_descriptor, - new String[] { "Name", "Value", }); + new java.lang.String[] { "Name", "Value", }); internal_static_NumericAttribute_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_NumericAttribute_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_NumericAttribute_descriptor, - new String[] { "Group", "Name", "Value", "Type", }); + new java.lang.String[] { "Group", "Name", "Value", "Type", }); internal_static_NodeLevelResource_descriptor = getDescriptor().getMessageTypes().get(2); internal_static_NodeLevelResource_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_NodeLevelResource_descriptor, - new String[] { "NodeId", "ForeignSource", "ForeignId", "NodeLabel", "Location", }); + new java.lang.String[] { "NodeId", "ForeignSource", "ForeignId", "NodeLabel", "Location", }); internal_static_InterfaceLevelResource_descriptor = getDescriptor().getMessageTypes().get(3); internal_static_InterfaceLevelResource_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_InterfaceLevelResource_descriptor, - new String[] { "Node", "Instance", "IfIndex", }); + new java.lang.String[] { "Node", "Instance", "IfIndex", }); internal_static_GenericTypeResource_descriptor = getDescriptor().getMessageTypes().get(4); internal_static_GenericTypeResource_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_GenericTypeResource_descriptor, - new String[] { "Node", "Type", "Instance", }); + new java.lang.String[] { "Node", "Type", "Instance", }); internal_static_ResponseTimeResource_descriptor = getDescriptor().getMessageTypes().get(5); internal_static_ResponseTimeResource_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_ResponseTimeResource_descriptor, - new String[] { "Instance", "Location", }); + new java.lang.String[] { "Instance", "Location", }); internal_static_CollectionSetResource_descriptor = getDescriptor().getMessageTypes().get(6); internal_static_CollectionSetResource_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_CollectionSetResource_descriptor, - new String[] { "Node", "Interface", "Generic", "Response", "String", "Numeric", "Resource", }); + new java.lang.String[] { "Node", "Interface", "Generic", "Response", "ResourceId", "ResourceName", "ResourceTypeName", "String", "Numeric", "Resource", }); internal_static_CollectionSet_descriptor = getDescriptor().getMessageTypes().get(7); internal_static_CollectionSet_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_CollectionSet_descriptor, - new String[] { "Timestamp", "Resource", }); + new java.lang.String[] { "Timestamp", "Resource", }); } // @@protoc_insertion_point(outer_class_scope) diff --git a/features/kafka/producer/src/main/proto/collectionset.proto b/features/kafka/producer/src/main/proto/collectionset.proto index ce6438a10d92..ed3711ac480a 100644 --- a/features/kafka/producer/src/main/proto/collectionset.proto +++ b/features/kafka/producer/src/main/proto/collectionset.proto @@ -50,6 +50,9 @@ message CollectionSetResource { GenericTypeResource generic = 3; ResponseTimeResource response = 4; } + string resource_id = 5; + string resource_name = 6; + string resource_type_name = 7; repeated StringAttribute string = 10; repeated NumericAttribute numeric = 11; } diff --git a/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/CollectionSetMapperTest.java b/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/CollectionSetMapperTest.java index 5afc768cd219..7c6a079174f8 100644 --- a/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/CollectionSetMapperTest.java +++ b/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/CollectionSetMapperTest.java @@ -48,6 +48,7 @@ import org.opennms.netmgt.collection.support.builder.InterfaceLevelResource; import org.opennms.netmgt.collection.support.builder.NodeLevelResource; import org.opennms.netmgt.dao.api.NodeDao; +import org.opennms.netmgt.dao.api.ResourceDao; import org.opennms.netmgt.dao.api.SessionUtils; public class CollectionSetMapperTest { @@ -56,7 +57,7 @@ public class CollectionSetMapperTest { @Test public void testCollectionSetForInterfaceResource() throws UnknownHostException { - CollectionSetMapper collectionSetMapper = new CollectionSetMapper(Mockito.mock(NodeDao.class), Mockito.mock(SessionUtils.class)); + CollectionSetMapper collectionSetMapper = new CollectionSetMapper(Mockito.mock(NodeDao.class), Mockito.mock(SessionUtils.class), Mockito.mock(ResourceDao.class)); CollectionAgent agent = new MockCollectionAgent(1, "test", InetAddress.getLocalHost()); NodeLevelResource nodeResource = new NodeLevelResource(1); diff --git a/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/KafkaForwarderIT.java b/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/KafkaForwarderIT.java index 7f364f6be6e3..1040b69e8af3 100644 --- a/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/KafkaForwarderIT.java +++ b/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/KafkaForwarderIT.java @@ -611,6 +611,9 @@ public void shutdown() { public List getCollectionSetValues() { return collectionSetValues; } + public void clearCollectionSetValues() { + collectionSetValues.clear(); + } } diff --git a/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/ProtoBufMapperTest.java b/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/ProtoBufMapperTest.java index e2a85af65346..50cf8ca81eb9 100644 --- a/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/ProtoBufMapperTest.java +++ b/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/ProtoBufMapperTest.java @@ -47,6 +47,7 @@ import org.hibernate.ObjectNotFoundException; import org.junit.Test; +import org.opennms.core.utils.LocationUtils; import org.opennms.features.kafka.producer.model.OpennmsModelProtos; import org.opennms.netmgt.config.api.EventConfDao; import org.opennms.netmgt.dao.api.HwEntityDao; @@ -54,8 +55,10 @@ import org.opennms.netmgt.dao.api.SessionUtils; import org.opennms.netmgt.model.OnmsAlarm; import org.opennms.netmgt.model.OnmsEvent; +import org.opennms.netmgt.model.OnmsNode; import org.opennms.netmgt.model.OnmsSeverity; import org.opennms.netmgt.model.TroubleTicketState; +import org.opennms.netmgt.model.monitoringLocations.OnmsMonitoringLocation; import org.opennms.netmgt.topologies.service.api.OnmsTopologyEdge; import org.opennms.netmgt.topologies.service.api.OnmsTopologyProtocol; import org.opennms.netmgt.xml.event.Event; @@ -70,6 +73,10 @@ public class ProtoBufMapperTest { private final ProtobufMapper protobufMapper = new ProtobufMapper(mock(EventConfDao.class), mock(HwEntityDao.class), mock(SessionUtils.class), mock(NodeDao.class), 1); + private final String FOREIGN_ID = "foreignId"; + private final String FOREIGN_SOURCE = "foreignSource"; + private final String NODE_LABEL = "test"; + /** * Tests that the mapper can handle related alarms. */ @@ -100,6 +107,10 @@ public void testRelatedAlarms() { assertEquals(childId, childProtoAlarm.getId()); assertEquals(reductionKey, childProtoAlarm.getReductionKey()); assertEquals(childLogMsg, childProtoAlarm.getLogMessage()); + assertEquals(FOREIGN_ID, mappedAlarm.getNodeCriteria().getForeignId()); + assertEquals(FOREIGN_SOURCE, mappedAlarm.getNodeCriteria().getForeignSource()); + assertEquals(NODE_LABEL, mappedAlarm.getNodeCriteria().getNodeLabel()); + assertEquals(LocationUtils.DEFAULT_LOCATION_NAME, mappedAlarm.getNodeCriteria().getLocation()); } private OnmsAlarm generateTestAlarm() { @@ -108,6 +119,13 @@ private OnmsAlarm generateTestAlarm() { testAlarm.setSeverity(OnmsSeverity.MAJOR); testAlarm.setAlarmType(1); + OnmsNode node = new OnmsNode(); + node.setId(1); + node.setLabel(NODE_LABEL); + node.setForeignId(FOREIGN_ID); + node.setForeignSource(FOREIGN_SOURCE); + node.setLocation(new OnmsMonitoringLocation(LocationUtils.DEFAULT_LOCATION_NAME, LocationUtils.DEFAULT_LOCATION_NAME)); + testAlarm.setNode(node); return testAlarm; } diff --git a/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/collection/KafkaMetricsMaxSizeIT.java b/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/collection/KafkaMetricsMaxSizeIT.java new file mode 100644 index 000000000000..446e8cb577be --- /dev/null +++ b/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/collection/KafkaMetricsMaxSizeIT.java @@ -0,0 +1,159 @@ +/******************************************************************************* + * This file is part of OpenNMS(R). + * + * Copyright (C) 2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. + * + * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. + * + * OpenNMS(R) is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, + * or (at your option) any later version. + * + * OpenNMS(R) is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with OpenNMS(R). If not, see: + * http://www.gnu.org/licenses/ + * + * For more information contact: + * OpenNMS(R) Licensing + * http://www.opennms.org/ + * http://www.opennms.com/ + *******************************************************************************/ + +package org.opennms.features.kafka.producer.collection; + +import static com.jayway.awaitility.Awaitility.await; +import static org.hamcrest.Matchers.equalTo; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +import org.apache.kafka.clients.consumer.ConsumerConfig; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerConfig; +import org.apache.kafka.common.serialization.ByteArraySerializer; +import org.apache.kafka.common.serialization.StringSerializer; +import org.hamcrest.Matchers; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.mockito.Mockito; +import org.mockito.hamcrest.MockitoHamcrest; +import org.opennms.core.test.kafka.JUnitKafkaServer; +import org.opennms.features.kafka.producer.KafkaForwarderIT; +import org.opennms.features.kafka.producer.model.CollectionSetProtos; + + +public class KafkaMetricsMaxSizeIT { + + @Rule + public JUnitKafkaServer kafkaServer = new JUnitKafkaServer(); + + private KafkaPersister kafkaPersister; + + private ExecutorService executor; + + private KafkaForwarderIT.KafkaMessageConsumerRunner kafkaConsumer; + + private List output = new ArrayList<>(); + + @Before + public void setup() throws IOException { + Hashtable kafkaConfig = new Hashtable<>(); + kafkaConfig.put(ConsumerConfig.GROUP_ID_CONFIG, KafkaMetricsMaxSizeIT.class.getCanonicalName()); + kafkaConfig.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaServer.getKafkaConnectString()); + kafkaConfig.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getCanonicalName()); + kafkaConfig.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, ByteArraySerializer.class.getCanonicalName()); + KafkaProducer producer = new KafkaProducer(kafkaConfig); + kafkaPersister = Mockito.spy(KafkaPersister.class); + kafkaPersister.setProducer(producer); + kafkaPersister.setTopicName("test-metrics"); + executor = Executors.newSingleThreadExecutor(); + kafkaConsumer = new KafkaForwarderIT.KafkaMessageConsumerRunner(kafkaServer.getKafkaConnectString()); + executor.execute(kafkaConsumer); + + } + + @Test + public void testHandlingMaxSizeWithMultipleResources() { + // Mock max size to be 120 bytes ( At least minimum of one resource size) + Mockito.when(kafkaPersister.checkForMaxSize(MockitoHamcrest.intThat(Matchers.greaterThan(120)))).thenReturn(true); + CollectionSetProtos.CollectionSet.Builder builder = CollectionSetProtos.CollectionSet.newBuilder(); + builder.setTimestamp(System.currentTimeMillis()); + CollectionSetProtos.NodeLevelResource nodeLevelResource = CollectionSetProtos.NodeLevelResource.newBuilder().setNodeId(5).setNodeLabel("kafka-test") + .setForeignId("fs").setForeignSource("fs").build(); + CollectionSetProtos.NumericAttribute numericAttribute = CollectionSetProtos.NumericAttribute.newBuilder().setName("num-interfaces").setGroup("interfaces").setValue(5).setType(CollectionSetProtos.NumericAttribute.Type.GAUGE).build(); + builder.addResource(CollectionSetProtos.CollectionSetResource.newBuilder() + .setNode(nodeLevelResource) + .addNumeric(numericAttribute) + .build()); + CollectionSetProtos.InterfaceLevelResource interfaceLevelResource = CollectionSetProtos.InterfaceLevelResource.newBuilder().setNode(nodeLevelResource).setInstance("lo").build(); + builder.addResource(CollectionSetProtos.CollectionSetResource.newBuilder().setInterface(interfaceLevelResource).addNumeric(numericAttribute).build()); + + CollectionSetProtos.GenericTypeResource genericTypeResource = CollectionSetProtos.GenericTypeResource.newBuilder().setNode(nodeLevelResource) + .setInstance("sink-consumer-events") + .setType("sink-consumer").build(); + builder.addResource(CollectionSetProtos.CollectionSetResource.newBuilder().setGeneric(genericTypeResource).addNumeric(numericAttribute)).build(); + + CollectionSetProtos.CollectionSet collectionSet = builder.build(); + kafkaPersister.bisectAndSendMessageToKafka(collectionSet); + await().atMost(30, TimeUnit.SECONDS).pollInterval(5, TimeUnit.SECONDS).until(() -> kafkaConsumer.getCollectionSetValues().size(), equalTo(3)); + List collectionSetList = kafkaConsumer.getCollectionSetValues(); + CollectionSetProtos.CollectionSet.Builder result = CollectionSetProtos.CollectionSet.newBuilder(); + collectionSetList.forEach(result::mergeFrom); + Assert.assertEquals(collectionSet, result.build()); + } + + @Test + public void testHandlingOfOneResourceWithTooManyAttributes() { + // Test one resource that can divide into multiple chunks with different numeric attributes. + Mockito.when(kafkaPersister.checkForMaxSize(MockitoHamcrest.intThat(Matchers.greaterThan(500)))).thenReturn(true); + CollectionSetProtos.CollectionSet.Builder builderWithResources = CollectionSetProtos.CollectionSet.newBuilder(); + CollectionSetProtos.NodeLevelResource nodeLevelResource = CollectionSetProtos.NodeLevelResource.newBuilder().setNodeId(5).setNodeLabel("kafka-test") + .setForeignId("fs").setForeignSource("fs").build(); + CollectionSetProtos.CollectionSetResource.Builder collectionSetBuilder = CollectionSetProtos.CollectionSetResource.newBuilder().setNode(nodeLevelResource); + for(int i=0; i < 100; i++) { + CollectionSetProtos.NumericAttribute attribute = CollectionSetProtos.NumericAttribute.newBuilder() + .setName("num-interfaces"+i).setGroup("interfaces"+i) + .setValue(5+i) + .setType(CollectionSetProtos.NumericAttribute.Type.GAUGE).build(); + collectionSetBuilder.addNumeric(attribute); + } + long timeStamp = System.currentTimeMillis(); + builderWithResources.setTimestamp(timeStamp); + builderWithResources.addResource(collectionSetBuilder); + + CollectionSetProtos.CollectionSet input = builderWithResources.build(); + kafkaPersister.bisectAndSendMessageToKafka(input); + await().atMost(60, TimeUnit.SECONDS).pollInterval(5, TimeUnit.SECONDS).until(() -> kafkaConsumer.getCollectionSetValues().size(), equalTo(16)); + CollectionSetProtos.CollectionSet.Builder result = CollectionSetProtos.CollectionSet.newBuilder(); + result.setTimestamp(timeStamp); + CollectionSetProtos.CollectionSetResource.Builder resourceBuilder = CollectionSetProtos.CollectionSetResource.newBuilder(); + resourceBuilder.setNode(nodeLevelResource); + kafkaConsumer.getCollectionSetValues().forEach(cs -> resourceBuilder.addAllNumeric(cs.getResource(0).getNumericList())); + result.addResource(resourceBuilder); + Assert.assertEquals(input, result.build()); + + } + + @After + public void destroy() { + kafkaConsumer.clearCollectionSetValues(); + kafkaConsumer.shutdown(); + executor.shutdown(); + } + +} diff --git a/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/collection/KafkaPersisterIT.java b/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/collection/KafkaPersisterIT.java index 6385ad139f13..aabb7155b50c 100644 --- a/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/collection/KafkaPersisterIT.java +++ b/features/kafka/producer/src/test/java/org/opennms/features/kafka/producer/collection/KafkaPersisterIT.java @@ -50,6 +50,8 @@ import java.util.stream.Collectors; import org.apache.kafka.clients.consumer.ConsumerConfig; +import org.hamcrest.Matchers; +import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -83,12 +85,12 @@ import org.springframework.test.context.ContextConfiguration; @RunWith(OpenNMSJUnit4ClassRunner.class) -@ContextConfiguration(locations = { "classpath:/META-INF/opennms/applicationContext-soa.xml", +@ContextConfiguration(locations = {"classpath:/META-INF/opennms/applicationContext-soa.xml", "classpath:/META-INF/opennms/applicationContext-commonConfigs.xml", "classpath:/META-INF/opennms/applicationContext-minimal-conf.xml", "classpath:/META-INF/opennms/applicationContext-mockDao.xml", "classpath:/META-INF/opennms/applicationContext-daemon.xml", - "classpath:/applicationContext-test-kafka-collection.xml" }) + "classpath:/applicationContext-test-kafka-collection.xml"}) @JUnitConfigurationEnvironment @JUnitTemporaryDatabase(dirtiesContext = false, tempDbClass = MockDatabase.class, reuseDatabase = false) public class KafkaPersisterIT { @@ -158,7 +160,7 @@ public void testKafkaCollection() throws IOException { CollectionSet responseTimeCollectionSet = new SingleResourceCollectionSet(latencyCollectionResource, new Date()); persister.visitCollectionSet(collectionSet); persister.visitCollectionSet(responseTimeCollectionSet); - + await().atMost(1, TimeUnit.MINUTES).pollInterval(15, TimeUnit.SECONDS).until(() -> kafkaConsumer.getCollectionSetValues().size(), equalTo(2)); List resources = kafkaConsumer.getCollectionSetValues().stream().map(CollectionSetProtos.CollectionSet::getResourceList).flatMap(Collection::stream).collect(Collectors.toList()); Optional responseTimeResource = resources.stream().filter(CollectionSetProtos.CollectionSetResource::hasResponse).findFirst(); @@ -173,9 +175,16 @@ public void testKafkaCollection() throws IOException { assertThat(resource.getNode().getNodeId(), equalTo(node.getId().longValue())); assertThat(resource.getNumericList().size(), equalTo(2)); assertThat(resource.getNumeric(0).getValue(), isOneOf(105.0, 1050.0)); + assertThat(resource.getResourceId(), Matchers.containsString(String.valueOf(node.getId()))); } ); } + @After + public void destroy() { + kafkaConsumer.shutdown(); + executor.shutdown(); + } + } diff --git a/features/kafka/producer/src/test/resources/applicationContext-test-kafka-collection.xml b/features/kafka/producer/src/test/resources/applicationContext-test-kafka-collection.xml index 9c5f4eab1f54..fb02499af733 100644 --- a/features/kafka/producer/src/test/resources/applicationContext-test-kafka-collection.xml +++ b/features/kafka/producer/src/test/resources/applicationContext-test-kafka-collection.xml @@ -16,6 +16,7 @@ + \ No newline at end of file diff --git a/features/karaf-health/pom.xml b/features/karaf-health/pom.xml index 7f9fbcd8c6a4..b8a0215a7806 100644 --- a/features/karaf-health/pom.xml +++ b/features/karaf-health/pom.xml @@ -9,7 +9,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -48,7 +48,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/measurements/api/pom.xml b/features/measurements/api/pom.xml index 84c2d7739646..2611915f7966 100644 --- a/features/measurements/api/pom.xml +++ b/features/measurements/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.measurements - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.measurements diff --git a/features/measurements/impl/pom.xml b/features/measurements/impl/pom.xml index 4bfb31c4df1c..4bed818d407f 100644 --- a/features/measurements/impl/pom.xml +++ b/features/measurements/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.measurements - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.measurements diff --git a/features/measurements/pom.xml b/features/measurements/pom.xml index 5086eece5559..b225d6bb6857 100644 --- a/features/measurements/pom.xml +++ b/features/measurements/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/measurements/rest/pom.xml b/features/measurements/rest/pom.xml index 3c79bff0dd7f..416650f7bdf4 100644 --- a/features/measurements/rest/pom.xml +++ b/features/measurements/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.measurements - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.measurements diff --git a/features/measurements/shell/pom.xml b/features/measurements/shell/pom.xml index dd2575daeca7..dcae25e18ae3 100644 --- a/features/measurements/shell/pom.xml +++ b/features/measurements/shell/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.measurements - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.measurements diff --git a/features/mib-compiler/pom.xml b/features/mib-compiler/pom.xml index dd33a365cf72..24f100887a38 100644 --- a/features/mib-compiler/pom.xml +++ b/features/mib-compiler/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/minion/core/features/pom.xml b/features/minion/core/features/pom.xml index bf2ec61700ff..066195d7fc65 100644 --- a/features/minion/core/features/pom.xml +++ b/features/minion/core/features/pom.xml @@ -8,7 +8,7 @@ org.opennms.features.minion core-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/minion/core/health-check/pom.xml b/features/minion/core/health-check/pom.xml index 81a315966ded..f7e30e6cfac7 100644 --- a/features/minion/core/health-check/pom.xml +++ b/features/minion/core/health-check/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.minion core-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 health-check diff --git a/features/minion/core/health-check/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/features/minion/core/health-check/src/main/resources/OSGI-INF/blueprint/blueprint.xml index b7480c84a47f..89936af0fc16 100644 --- a/features/minion/core/health-check/src/main/resources/OSGI-INF/blueprint/blueprint.xml +++ b/features/minion/core/health-check/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -17,17 +17,6 @@ - - - - - rest - passive - - - - - org.opennms.core.health.api.HealthCheck @@ -38,14 +27,4 @@ - - - org.opennms.core.health.api.HealthCheck - org.opennms.core.health.api.HealthCheckResponseCache - - - - - - diff --git a/features/minion/core/impl/pom.xml b/features/minion/core/impl/pom.xml index 4a575d758fce..27169f85db66 100644 --- a/features/minion/core/impl/pom.xml +++ b/features/minion/core/impl/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.minion core-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 core-impl diff --git a/features/minion/core/minion-rest-client/pom.xml b/features/minion/core/minion-rest-client/pom.xml deleted file mode 100644 index b782a0d3ccc7..000000000000 --- a/features/minion/core/minion-rest-client/pom.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - org.opennms.features.minion - core-parent - 28.1.1 - - 4.0.0 - minion-rest-client - bundle - OpenNMS :: Features :: Minion :: ReST Client - - - - - org.apache.felix - maven-bundle-plugin - true - - - JavaSE-1.8 - ${project.artifactId} - ${project.version} - * - - - - - - - - - org.opennms.features.distributed - core-api - ${project.version} - - - org.opennms.features.distributed - core-impl - ${project.version} - - - org.opennms.features.scv - org.opennms.features.scv.api - ${project.version} - - - org.apache.httpcomponents - httpclient - - - com.google.code.gson - gson - 2.8.0 - - - diff --git a/features/minion/core/minion-rest-client/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/features/minion/core/minion-rest-client/src/main/resources/OSGI-INF/blueprint/blueprint.xml deleted file mode 100644 index 7cdf83af7240..000000000000 --- a/features/minion/core/minion-rest-client/src/main/resources/OSGI-INF/blueprint/blueprint.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/features/minion/core/pom.xml b/features/minion/core/pom.xml index 704e1949cd3f..efb67291258e 100644 --- a/features/minion/core/pom.xml +++ b/features/minion/core/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.minion minion-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 core-parent @@ -15,7 +15,6 @@ impl features repository - minion-rest-client rest health-check diff --git a/features/minion/core/repository/pom.xml b/features/minion/core/repository/pom.xml index 423f353d6af7..9babad1fd728 100644 --- a/features/minion/core/repository/pom.xml +++ b/features/minion/core/repository/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.minion core-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 core-repository @@ -28,8 +28,8 @@ mvn:org.apache.karaf.features/standard/${karafVersion}/xml/features - mvn:org.apache.karaf.features/spring/${karafVersion}/xml/features - mvn:org.apache.karaf.features/spring-legacy/${karafVersion}/xml/features + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring-legacy mvn:org.opennms.features.minion/core-features/${project.version}/xml @@ -139,26 +139,16 @@ - - false - + opennms-maven-3rdparty + https://packages.opennms.com/public/3rdparty/maven/ true + always - opennms-repo - OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release - - true + always - - false - - opennms-snapshots - OpenNMS Snapshot Maven Repository - http://maven.opennms.org/content/groups/opennms.org-snapshot @@ -176,6 +166,20 @@ features xml + + org.opennms.karaf + opennms + ${project.version} + spring + xml + + + org.opennms.karaf + opennms + ${project.version} + spring-legacy + xml +
diff --git a/features/minion/core/rest/pom.xml b/features/minion/core/rest/pom.xml index 4a4ef954abc9..5e700d1e3a90 100644 --- a/features/minion/core/rest/pom.xml +++ b/features/minion/core/rest/pom.xml @@ -5,7 +5,7 @@ core-parent org.opennms.features.minion - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -37,4 +37,4 @@ ${project.version}
- \ No newline at end of file + diff --git a/features/minion/dominion/grpc-client/pom.xml b/features/minion/dominion/grpc-client/pom.xml index b5209a0c79f1..1c97094aebef 100644 --- a/features/minion/dominion/grpc-client/pom.xml +++ b/features/minion/dominion/grpc-client/pom.xml @@ -5,7 +5,7 @@ dominion org.opennms.features.minion - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 dominion-grpc-client diff --git a/features/minion/dominion/pom.xml b/features/minion/dominion/pom.xml index c0c906dc7f77..97a60660b970 100644 --- a/features/minion/dominion/pom.xml +++ b/features/minion/dominion/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.minion minion-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 dominion diff --git a/features/minion/heartbeat/common/pom.xml b/features/minion/heartbeat/common/pom.xml index 37aa073f63c6..d52957adedd1 100644 --- a/features/minion/heartbeat/common/pom.xml +++ b/features/minion/heartbeat/common/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.minion org.opennms.features.minion.heartbeat - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.minion.heartbeat diff --git a/features/minion/heartbeat/consumer/pom.xml b/features/minion/heartbeat/consumer/pom.xml index 15bf0b144408..e2e906c2388b 100644 --- a/features/minion/heartbeat/consumer/pom.xml +++ b/features/minion/heartbeat/consumer/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.minion org.opennms.features.minion.heartbeat - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.minion.heartbeat diff --git a/features/minion/heartbeat/pom.xml b/features/minion/heartbeat/pom.xml index f89d4833275b..946ca0d198e6 100644 --- a/features/minion/heartbeat/pom.xml +++ b/features/minion/heartbeat/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.minion minion-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.minion.heartbeat diff --git a/features/minion/heartbeat/producer/pom.xml b/features/minion/heartbeat/producer/pom.xml index a6944e941e85..a079ee41c93e 100644 --- a/features/minion/heartbeat/producer/pom.xml +++ b/features/minion/heartbeat/producer/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.minion org.opennms.features.minion.heartbeat - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.minion.heartbeat diff --git a/features/minion/pom.xml b/features/minion/pom.xml index 0dd52b526b44..6c80447f931d 100644 --- a/features/minion/pom.xml +++ b/features/minion/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.minion diff --git a/features/minion/repository/pom.xml b/features/minion/repository/pom.xml index d4ae75c5ff3f..efeab6f4e422 100644 --- a/features/minion/repository/pom.xml +++ b/features/minion/repository/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.minion minion-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 repository @@ -27,10 +27,10 @@ mvn:org.apache.karaf.features/standard/${karafVersion}/xml/features - mvn:org.apache.karaf.features/spring/${karafVersion}/xml/features - mvn:org.apache.karaf.features/spring-legacy/${karafVersion}/xml/features mvn:org.opennms.karaf/opennms/${project.version}/xml/features + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring-legacy mvn:org.opennms.karaf/opennms/${project.version}/xml/minion @@ -39,19 +39,15 @@ - opennms-core-ipc-rpc-jms - opennms-core-ipc-rpc-aws-sqs - opennms-core-ipc-rpc-kafka - opennms-core-ipc-sink-camel - opennms-core-ipc-sink-kafka - opennms-core-ipc-sink-aws-sqs + opennms-core-ipc-jms + opennms-core-ipc-kafka + opennms-core-ipc-twin-shell opennms-core-ipc-sink-offheap opennms-syslogd-listener-javanet opennms-syslogd-listener-camel-netty opennms-trapd-listener opennms-send-event-command opennms-events-sink-dispatcher - minion-rest-client minion-shell minion-heartbeat-producer minion-snmp-proxy @@ -154,9 +150,18 @@ xml - org.opennms.features.minion - minion-rest-client + org.opennms.karaf + opennms ${project.version} + spring + xml + + + org.opennms.karaf + opennms + ${project.version} + spring-legacy + xml org.opennms.features.minion @@ -316,11 +321,6 @@ org.opennms.core.ipc.rpc.kafka ${project.version} - - org.opennms.core.ipc.rpc - org.opennms.core.ipc.rpc.aws-sqs-impl - ${project.version} - org.opennms.core.ipc.sink.camel org.opennms.core.ipc.sink.camel.client @@ -331,11 +331,6 @@ org.opennms.core.ipc.sink.kafka.client ${project.version} - - org.opennms.core.ipc.sink.aws.sqs - org.opennms.core.ipc.sink.aws.sqs.client - ${project.version} - org.opennms.core.ipc.sink org.opennms.core.ipc.sink.offheap @@ -393,6 +388,26 @@ org.opennms.core.ipc.grpc.client ${project.version} + + org.opennms.core.ipc.twin.grpc + org.opennms.core.ipc.twin.grpc.subscriber + ${project.version} + + + org.opennms.core.ipc.twin.jms + org.opennms.core.ipc.twin.jms.subscriber + ${project.version} + + + org.opennms.core.ipc.twin + org.opennms.core.ipc.twin.shell + ${project.version} + + + org.opennms.core.ipc.twin.kafka + org.opennms.core.ipc.twin.kafka.subscriber + ${project.version} + org.opennms.core.ipc.grpc org.opennms.core.ipc.grpc.common @@ -441,7 +456,7 @@ true opennms-repo OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release @@ -452,7 +467,7 @@ sonatype-public-repo Sonatype Public Maven Repository - http://maven.opennms.org/content/repositories/sonatype-public-repo/ + https://maven.opennms.org/content/repositories/sonatype-public-repo/ @@ -463,7 +478,7 @@ coova Coova Repository - http://maven.opennms.org/content/repositories/coova/ + https://maven.opennms.org/content/repositories/coova/ diff --git a/features/minion/repository/src/main/resources/features.boot b/features/minion/repository/src/main/resources/features.boot index a907c8c4763d..52bfc216cbff 100644 --- a/features/minion/repository/src/main/resources/features.boot +++ b/features/minion/repository/src/main/resources/features.boot @@ -6,12 +6,13 @@ spring/${springVersion} spring-jms/${springVersion} opennms-core-ipc-rpc-jms opennms-core-ipc-sink-camel +opennms-core-ipc-twin-jms +opennms-core-ipc-twin-shell opennms-syslogd-listener-camel-netty opennms-trapd-listener opennms-events-sink-dispatcher opennms-send-event-command opennms-dnsresolver-netty -minion-rest-client minion-shell minion-heartbeat-producer minion-snmp-proxy diff --git a/features/minion/shell/collection/pom.xml b/features/minion/shell/collection/pom.xml index f5fbd2c5ab10..3460b832fbc4 100644 --- a/features/minion/shell/collection/pom.xml +++ b/features/minion/shell/collection/pom.xml @@ -6,7 +6,7 @@ org.opennms.features.minion org.opennms.features.minion.shell - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.minion.shell diff --git a/features/minion/shell/poller/pom.xml b/features/minion/shell/poller/pom.xml index ddd39f55de8d..bd49cbb70334 100644 --- a/features/minion/shell/poller/pom.xml +++ b/features/minion/shell/poller/pom.xml @@ -6,7 +6,7 @@ org.opennms.features.minion org.opennms.features.minion.shell - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.minion.shell diff --git a/features/minion/shell/pom.xml b/features/minion/shell/pom.xml index 51b9efaca6f5..405862df7d3f 100644 --- a/features/minion/shell/pom.xml +++ b/features/minion/shell/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.minion minion-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.minion.shell diff --git a/features/minion/shell/provision/pom.xml b/features/minion/shell/provision/pom.xml index 41e39eaed3be..afccf44acd12 100644 --- a/features/minion/shell/provision/pom.xml +++ b/features/minion/shell/provision/pom.xml @@ -6,7 +6,7 @@ org.opennms.features.minion org.opennms.features.minion.shell - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.minion.shell diff --git a/features/minion/status/pom.xml b/features/minion/status/pom.xml index 3acc6ccbb5c5..3124a09a48d5 100644 --- a/features/minion/status/pom.xml +++ b/features/minion/status/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.minion minion-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.minion.status diff --git a/features/name-cutter/pom.xml b/features/name-cutter/pom.xml index 4eee41828b92..79a7c6260883 100644 --- a/features/name-cutter/pom.xml +++ b/features/name-cutter/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features org.opennms.features.name-cutter diff --git a/features/newts-repository-converter/pom.xml b/features/newts-repository-converter/pom.xml index 12557caae8c5..0e66fdd06f46 100644 --- a/features/newts-repository-converter/pom.xml +++ b/features/newts-repository-converter/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/newts/pom.xml b/features/newts/pom.xml index a28948e74d2d..96a724339c6e 100644 --- a/features/newts/pom.xml +++ b/features/newts/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/newts/src/main/java/org/opennms/netmgt/dao/support/NewtsResourceStorageDao.java b/features/newts/src/main/java/org/opennms/netmgt/dao/support/NewtsResourceStorageDao.java index 92b257f89ed2..6e2e4c8343b5 100644 --- a/features/newts/src/main/java/org/opennms/netmgt/dao/support/NewtsResourceStorageDao.java +++ b/features/newts/src/main/java/org/opennms/netmgt/dao/support/NewtsResourceStorageDao.java @@ -196,7 +196,7 @@ public Set getAttributes(ResourcePath path) { } } - if (ResourceTypeUtils.isResponseTime(resourceId)) { + if (ResourceTypeUtils.isResponseTime(resourceId) || ResourceTypeUtils.isStatus(resourceId)) { // Use the last part of the resource id as the dsName // Store the resource id in the rrdFile field attributes.add(new RrdGraphAttribute(toMetricName(resourceId), "", resourceId)); diff --git a/features/notifications/api/pom.xml b/features/notifications/api/pom.xml index de19c28e1b9e..121c2b9ddc42 100644 --- a/features/notifications/api/pom.xml +++ b/features/notifications/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.notifications - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.notifications diff --git a/features/notifications/pom.xml b/features/notifications/pom.xml index 3a6d73e2053f..9b3da698d8d4 100644 --- a/features/notifications/pom.xml +++ b/features/notifications/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/notifications/sms-strategy/pom.xml b/features/notifications/sms-strategy/pom.xml index b78b0d00af92..1b94919ded9a 100644 --- a/features/notifications/sms-strategy/pom.xml +++ b/features/notifications/sms-strategy/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.notifications - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms diff --git a/features/notifications/ticket-strategy/pom.xml b/features/notifications/ticket-strategy/pom.xml index 5acc82a18edd..8273041425a6 100644 --- a/features/notifications/ticket-strategy/pom.xml +++ b/features/notifications/ticket-strategy/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.notifications - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.notifications diff --git a/features/nrtg/api/pom.xml b/features/nrtg/api/pom.xml index d8cc5bf3dbe6..f6402e8269a8 100644 --- a/features/nrtg/api/pom.xml +++ b/features/nrtg/api/pom.xml @@ -4,7 +4,7 @@ org.opennms.features nrtg - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.nrtg nrtg-api diff --git a/features/nrtg/broker/pom.xml b/features/nrtg/broker/pom.xml index 1c06bc091b49..dcc86f5b0ede 100644 --- a/features/nrtg/broker/pom.xml +++ b/features/nrtg/broker/pom.xml @@ -4,7 +4,7 @@ org.opennms.features nrtg - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.nrtg nrtg-broker diff --git a/features/nrtg/commander/pom.xml b/features/nrtg/commander/pom.xml index bd49565cdb4a..faa489efed5c 100644 --- a/features/nrtg/commander/pom.xml +++ b/features/nrtg/commander/pom.xml @@ -4,7 +4,7 @@ org.opennms.features nrtg - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.nrtg nrtg-commander diff --git a/features/nrtg/jar/nrtcollector/pom.xml b/features/nrtg/jar/nrtcollector/pom.xml index b8d2ed6c127b..a9690db90c1e 100644 --- a/features/nrtg/jar/nrtcollector/pom.xml +++ b/features/nrtg/jar/nrtcollector/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.nrtg jar - 28.1.1 + 29.0.0-SNAPSHOT nrtg-collector-standalone OpenNMS :: Features :: NRTG :: NRTCollector JAR diff --git a/features/nrtg/jar/pom.xml b/features/nrtg/jar/pom.xml index 738872c9a595..f49b252b3824 100644 --- a/features/nrtg/jar/pom.xml +++ b/features/nrtg/jar/pom.xml @@ -3,7 +3,7 @@ org.opennms.features nrtg - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.nrtg diff --git a/features/nrtg/nrtbroker-jms/pom.xml b/features/nrtg/nrtbroker-jms/pom.xml index e976986fa0d8..6f92d3a5a81c 100644 --- a/features/nrtg/nrtbroker-jms/pom.xml +++ b/features/nrtg/nrtbroker-jms/pom.xml @@ -4,7 +4,7 @@ org.opennms.features nrtg - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.nrtg nrtg-nrtbroker-jms diff --git a/features/nrtg/nrtbroker-local/pom.xml b/features/nrtg/nrtbroker-local/pom.xml index 7b405aacdc3e..1a53906a6a12 100644 --- a/features/nrtg/nrtbroker-local/pom.xml +++ b/features/nrtg/nrtbroker-local/pom.xml @@ -5,7 +5,7 @@ org.opennms.features nrtg - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.nrtg nrtg-nrtbroker-local diff --git a/features/nrtg/nrtcollector/pom.xml b/features/nrtg/nrtcollector/pom.xml index 843badad0861..7a8693083243 100644 --- a/features/nrtg/nrtcollector/pom.xml +++ b/features/nrtg/nrtcollector/pom.xml @@ -4,7 +4,7 @@ org.opennms.features nrtg - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.nrtg nrtg-collector diff --git a/features/nrtg/pom.xml b/features/nrtg/pom.xml index c8c7e43216e6..beec4f708e64 100644 --- a/features/nrtg/pom.xml +++ b/features/nrtg/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/nrtg/protocolcollector/pom.xml b/features/nrtg/protocolcollector/pom.xml index 05f1287f9986..7b570e8031e3 100644 --- a/features/nrtg/protocolcollector/pom.xml +++ b/features/nrtg/protocolcollector/pom.xml @@ -4,7 +4,7 @@ org.opennms.features nrtg - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.nrtg protocol-collectors diff --git a/features/nrtg/protocolcollector/snmp/pom.xml b/features/nrtg/protocolcollector/snmp/pom.xml index f29ceb6ef138..58a0dba3c94c 100644 --- a/features/nrtg/protocolcollector/snmp/pom.xml +++ b/features/nrtg/protocolcollector/snmp/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.nrtg protocol-collectors - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.nrtg.protocolcollector nrtg-protocolcollector-snmp diff --git a/features/nrtg/protocolcollector/tca/pom.xml b/features/nrtg/protocolcollector/tca/pom.xml index 369b1b47a5ea..b53bc19668cd 100644 --- a/features/nrtg/protocolcollector/tca/pom.xml +++ b/features/nrtg/protocolcollector/tca/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.nrtg protocol-collectors - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.nrtg.protocolcollector nrtg-protocolcollector-tca diff --git a/features/nrtg/system-exports/pom.xml b/features/nrtg/system-exports/pom.xml index 65a87984dbae..9219c2510355 100644 --- a/features/nrtg/system-exports/pom.xml +++ b/features/nrtg/system-exports/pom.xml @@ -4,7 +4,7 @@ org.opennms.features nrtg - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.nrtg nrtg-system-exports diff --git a/features/nrtg/web/pom.xml b/features/nrtg/web/pom.xml index 057366b79b03..969055951189 100644 --- a/features/nrtg/web/pom.xml +++ b/features/nrtg/web/pom.xml @@ -4,7 +4,7 @@ org.opennms.features nrtg - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features.nrtg nrtg-web diff --git a/features/openconfig/api/pom.xml b/features/openconfig/api/pom.xml index e070666a3e88..249a49482fb3 100644 --- a/features/openconfig/api/pom.xml +++ b/features/openconfig/api/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.openconfig org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/openconfig/common/pom.xml b/features/openconfig/common/pom.xml index 65d3c02e266d..94c56c035627 100644 --- a/features/openconfig/common/pom.xml +++ b/features/openconfig/common/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.openconfig org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/openconfig/pom.xml b/features/openconfig/pom.xml index efe86f3d1c98..1f7a0021319c 100644 --- a/features/openconfig/pom.xml +++ b/features/openconfig/pom.xml @@ -5,7 +5,7 @@ org.opennms.features org.opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/openconfig/telemetry-client/pom.xml b/features/openconfig/telemetry-client/pom.xml index a4a159b8607a..4edde1688af4 100644 --- a/features/openconfig/telemetry-client/pom.xml +++ b/features/openconfig/telemetry-client/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.openconfig org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/opennms-es-rest/README.md b/features/opennms-es-rest/README.md index 46af163c1c02..fd58a7c9b774 100644 --- a/features/opennms-es-rest/README.md +++ b/features/opennms-es-rest/README.md @@ -4,7 +4,6 @@ ~~~~ project groupId: org.opennms.plugins project name: opennms-es-rest -version: 28.1.1 ~~~~ ### Description @@ -25,10 +24,10 @@ To install the feature in karaf use ~~~~ -karaf@root> feature:addurl mvn:org.opennms.features/org.opennms.features.opennms-es-rest/28.1.1/xml/features +karaf@root> feature:addurl mvn:org.opennms.features/org.opennms.features.opennms-es-rest/XX.X.X-SNAPSHOT/xml/features karaf@root> feature:install opennms-es-rest -(or feature:install opennms-es-rest/28.1.1 for a specific version of the feature) +(or feature:install opennms-es-rest/XX.X.X-SNAPSHOT for a specific version of the feature) ~~~~ Example searches to use in Kibana Sense diff --git a/features/opennms-es-rest/pom.xml b/features/opennms-es-rest/pom.xml index 84acc701a5c9..28e2bd4672a5 100644 --- a/features/opennms-es-rest/pom.xml +++ b/features/opennms-es-rest/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 @@ -96,12 +96,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/opennms-osgi-core-rest/pom.xml b/features/opennms-osgi-core-rest/pom.xml index 3a0e6809853b..3eefcc385808 100644 --- a/features/opennms-osgi-core-rest/pom.xml +++ b/features/opennms-osgi-core-rest/pom.xml @@ -5,7 +5,7 @@ ../topology-map/poms/compiled/ org.opennms.features.topology.build compiled-bundle-settings - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.osgi @@ -28,12 +28,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided @@ -58,18 +58,30 @@ + opennms-maven-3rdparty + https://packages.opennms.com/public/3rdparty/maven/ + + true + always + + + true + always + + + diff --git a/features/opennms-osgi-core/pom.xml b/features/opennms-osgi-core/pom.xml index 02e58f5c2a9c..ee9f6e751172 100644 --- a/features/opennms-osgi-core/pom.xml +++ b/features/opennms-osgi-core/pom.xml @@ -6,7 +6,7 @@ ../topology-map/poms/compiled/ org.opennms.features.topology.build compiled-bundle-settings - 28.1.1 + 29.0.0-SNAPSHOT @@ -51,7 +51,7 @@ org.osgi - org.osgi.core + osgi.core provided @@ -61,7 +61,7 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided @@ -77,14 +77,14 @@ true opennms-repo OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release/ + https://maven.opennms.org/content/groups/opennms.org-release/ true false opennms-snapshots OpenNMS Snapshot Maven Repository - http://maven.opennms.org/content/groups/opennms.org-snapshot/ + https://maven.opennms.org/content/groups/opennms.org-snapshot/ diff --git a/features/osgi-jsr223/pom.xml b/features/osgi-jsr223/pom.xml index a105a037cb3c..9d6816f9395a 100644 --- a/features/osgi-jsr223/pom.xml +++ b/features/osgi-jsr223/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features @@ -29,7 +29,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/perspectivepoller/pom.xml b/features/perspectivepoller/pom.xml index cf10e30af23e..26c47ea3bfb5 100644 --- a/features/perspectivepoller/pom.xml +++ b/features/perspectivepoller/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/poller/api/pom.xml b/features/poller/api/pom.xml index bab77ddbac33..89448f095512 100644 --- a/features/poller/api/pom.xml +++ b/features/poller/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.poller - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.poller diff --git a/features/poller/client-rpc/pom.xml b/features/poller/client-rpc/pom.xml index 22d4822b9df1..79f63f21d939 100644 --- a/features/poller/client-rpc/pom.xml +++ b/features/poller/client-rpc/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.poller - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.poller diff --git a/features/poller/client-rpc/src/main/java/org/opennms/netmgt/poller/client/rpc/PollerRequestBuilderImpl.java b/features/poller/client-rpc/src/main/java/org/opennms/netmgt/poller/client/rpc/PollerRequestBuilderImpl.java index 9a1a397cd449..7d206ff32dd1 100644 --- a/features/poller/client-rpc/src/main/java/org/opennms/netmgt/poller/client/rpc/PollerRequestBuilderImpl.java +++ b/features/poller/client-rpc/src/main/java/org/opennms/netmgt/poller/client/rpc/PollerRequestBuilderImpl.java @@ -183,7 +183,7 @@ public CompletableFuture execute() { // Invoke the adapters in the same order as which they were added for (ServiceMonitorAdaptor adaptor : adaptors) { // The adapters may update the status - pollStatus = adaptor.handlePollResult(service, interpolatedAttributes, pollStatus); + pollStatus = adaptor.handlePollResult(service, new HashMap<>(interpolatedAttributes), pollStatus); } results.setPollStatus(pollStatus); return results; diff --git a/features/poller/monitors/core/pom.xml b/features/poller/monitors/core/pom.xml index 88b5afe32a1c..3c1e1d0b3abd 100644 --- a/features/poller/monitors/core/pom.xml +++ b/features/poller/monitors/core/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.poller org.opennms.features.poller.monitors - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.poller.monitors diff --git a/features/poller/monitors/pom.xml b/features/poller/monitors/pom.xml index 3be5fd74139c..969b9f8e0773 100644 --- a/features/poller/monitors/pom.xml +++ b/features/poller/monitors/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.poller - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.poller diff --git a/features/poller/pom.xml b/features/poller/pom.xml index b4d81cb96bca..6e83d2a3b0f9 100644 --- a/features/poller/pom.xml +++ b/features/poller/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/poller/runtime/pom.xml b/features/poller/runtime/pom.xml index 24ea545c066b..82a0ed39c950 100644 --- a/features/poller/runtime/pom.xml +++ b/features/poller/runtime/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.poller - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.poller diff --git a/features/poller/shell/pom.xml b/features/poller/shell/pom.xml index 193571b18da8..82be9a3c1449 100644 --- a/features/poller/shell/pom.xml +++ b/features/poller/shell/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.poller - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.poller diff --git a/features/pom.xml b/features/pom.xml index fe8febedbbd3..20b569559d86 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -3,7 +3,7 @@ org.opennms opennms - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features @@ -112,6 +112,7 @@ timeseries + timeseries-shell notifications diff --git a/features/prometheus-collector/pom.xml b/features/prometheus-collector/pom.xml index 1a71f75cb3b1..90c193e1cb8b 100644 --- a/features/prometheus-collector/pom.xml +++ b/features/prometheus-collector/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/PrometheusMetricsProcessor.java b/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/PrometheusMetricsProcessor.java index 9368dcf6d859..ea2ca4b1ae93 100644 --- a/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/PrometheusMetricsProcessor.java +++ b/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/PrometheusMetricsProcessor.java @@ -95,6 +95,12 @@ public void walk() { walker.walkHistogramMetric(convertedMetricFamily, ((org.hawkular.agent.prometheus.types.Histogram) metric), metricIndex); break; + + case UNTYPED: + // if we can't tell what it is, it's a gauge. + log.debug("UNtyped metric: '{}'",metric); + walker.walkGaugeMetric(convertedMetricFamily, (Gauge) metric, metricIndex); + break; } metricIndex++; @@ -142,4 +148,4 @@ protected PrometheusMetricsWalker getWalker() { * @return the common MetricFamily object */ protected abstract MetricFamily convert(T metricFamily); -} \ No newline at end of file +} diff --git a/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/text/TextPrometheusMetricDataParser.java b/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/text/TextPrometheusMetricDataParser.java index 330323a7b951..a03f5548b44a 100644 --- a/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/text/TextPrometheusMetricDataParser.java +++ b/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/text/TextPrometheusMetricDataParser.java @@ -102,6 +102,8 @@ public void finishMetricFamily() { .setValue(Util.convertStringToDouble(textSample.getValue())) .addLabels(textSample.getLabels())); break; + case UNTYPED: + //treat UNTYPED as gauge case GAUGE: builders.put(textSample.getLabels(), new Gauge.Builder().setName(name) @@ -260,6 +262,9 @@ public MetricFamily parse() throws IOException { case GAUGE: context.allowedNames.add(context.name); break; + case UNTYPED: + context.allowedNames.add(context.name); + break; case SUMMARY: context.allowedNames.add(context.name + "_count"); context.allowedNames.add(context.name + "_sum"); @@ -292,6 +297,7 @@ public MetricFamily parse() throws IOException { } } catch (Exception e) { log.debug("Failed to process line - it will be ignored: {}", line); + log.debug("Exception: {}", e); } // go to the next line diff --git a/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/types/MetricFamily.java b/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/types/MetricFamily.java index e449a7a77704..a38b6e47e0a4 100644 --- a/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/types/MetricFamily.java +++ b/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/types/MetricFamily.java @@ -69,7 +69,8 @@ protected MetricFamily(Builder builder) { throw new IllegalArgumentException("Need to set name"); } if (builder.type == null) { - throw new IllegalArgumentException("Need to set type"); + // default to GAUGE if no type + builder.setType(MetricType.GAUGE); } Class expectedMetricClassType; @@ -86,6 +87,10 @@ protected MetricFamily(Builder builder) { case HISTOGRAM: expectedMetricClassType = Histogram.class; break; + case UNTYPED: + //treat untyped metrics as gauge + expectedMetricClassType = Gauge.class; + break; default: throw new IllegalArgumentException("Invalid type: " + builder.type); } diff --git a/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/types/MetricType.java b/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/types/MetricType.java index d2b622807fbb..72e267d915f3 100644 --- a/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/types/MetricType.java +++ b/features/prometheus-collector/src/main/java/org/hawkular/agent/prometheus/types/MetricType.java @@ -18,5 +18,5 @@ package org.hawkular.agent.prometheus.types; public enum MetricType { - COUNTER, GAUGE, SUMMARY, HISTOGRAM + COUNTER, GAUGE, SUMMARY, HISTOGRAM, UNTYPED } diff --git a/features/prometheus-collector/src/main/java/org/opennms/netmgt/collectd/prometheus/PrometheusCollector.java b/features/prometheus-collector/src/main/java/org/opennms/netmgt/collectd/prometheus/PrometheusCollector.java index 186479b01101..0b4ab6eb987a 100644 --- a/features/prometheus-collector/src/main/java/org/opennms/netmgt/collectd/prometheus/PrometheusCollector.java +++ b/features/prometheus-collector/src/main/java/org/opennms/netmgt/collectd/prometheus/PrometheusCollector.java @@ -1,8 +1,8 @@ /******************************************************************************* * This file is part of OpenNMS(R). * - * Copyright (C) 2017-2020 The OpenNMS Group, Inc. - * OpenNMS(R) is Copyright (C) 1999-2020 The OpenNMS Group, Inc. + * Copyright (C) 2017-2021 The OpenNMS Group, Inc. + * OpenNMS(R) is Copyright (C) 1999-2021 The OpenNMS Group, Inc. * * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. * @@ -174,7 +174,7 @@ protected static CollectionSet toCollectionSet(CollectionAgent agent, Prometheus final List metricsForGroup = filterMetrics(group.getFilterExp(), metrics); if (metricsForGroup.isEmpty()) { // Don't bother continuing if we have no metrics - LOG.debug("No metrics found in group named '{}' on agent {}.", group.getName(), agent); + LOG.warn("No metrics found in group named '{}' on agent {}.", group.getName(), agent); continue; } @@ -292,7 +292,7 @@ private static List filterMetrics(String filterExpression, List LOG.warn("Failed to evaluate expression '{}'. The metric will not be included.", filterExpression, e); } - LOG.trace("Rule '{}' on {} passed? {}", filterExpression, metric, passed); + LOG.debug("Rule '{}' on {} passed? {}", filterExpression, metric, passed); if (passed) { filteredMetrics.add(metric); @@ -318,7 +318,7 @@ private static Map> groupMetrics(Group group, List final StandardEvaluationContext context = new StandardEvaluationContext(metric); try { final String instance = exp.getValue(context, String.class); - LOG.trace("Rule '{}' on {} returned instance: {}", group.getGroupByExp(), metric, instance); + LOG.debug("Rule '{}' on {} returned instance: {}", group.getGroupByExp(), metric, instance); if (instance == null) { LOG.info("Rule '{}' on {} did not produce an instance. Result will be ignored.", group.getGroupByExp(), metric); continue; diff --git a/features/prometheus-collector/src/test/java/org/hawkular/agent/prometheus/MetricFamilyTest.java b/features/prometheus-collector/src/test/java/org/hawkular/agent/prometheus/MetricFamilyTest.java index 94a58772c024..0204c58cdc03 100644 --- a/features/prometheus-collector/src/test/java/org/hawkular/agent/prometheus/MetricFamilyTest.java +++ b/features/prometheus-collector/src/test/java/org/hawkular/agent/prometheus/MetricFamilyTest.java @@ -41,11 +41,9 @@ public void testBuild() { } catch (IllegalArgumentException expected) { } - try { - new MetricFamily.Builder().setName("foo").build(); - Assert.fail("Should have thrown exception because type is not set"); - } catch (IllegalArgumentException expected) { - } + MetricFamily family = new MetricFamily.Builder().setName("foo").build(); + Assert.assertEquals(MetricType.GAUGE, family.getType()); + // untyped metrics should be treated as gauge try { new MetricFamily.Builder().setName("foo").setType(MetricType.COUNTER).addMetric(gauge).build(); @@ -79,7 +77,7 @@ public void testBuild() { } catch (IllegalArgumentException expected) { } - MetricFamily family = new MetricFamily.Builder().setName("foo").setType(MetricType.SUMMARY).build(); + family = new MetricFamily.Builder().setName("foo").setType(MetricType.SUMMARY).build(); Assert.assertEquals("foo", family.getName()); Assert.assertNull(family.getHelp()); Assert.assertEquals(MetricType.SUMMARY, family.getType()); diff --git a/features/provisioning/api/pom.xml b/features/provisioning/api/pom.xml index 2d2088e84308..3b4be02fbacb 100644 --- a/features/provisioning/api/pom.xml +++ b/features/provisioning/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.provisioning - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.provisioning diff --git a/features/provisioning/lib/pom.xml b/features/provisioning/lib/pom.xml index 6253034e46e5..15084c008d72 100644 --- a/features/provisioning/lib/pom.xml +++ b/features/provisioning/lib/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.provisioning - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.provisioning diff --git a/features/provisioning/pom.xml b/features/provisioning/pom.xml index 251417591e50..448a029ca549 100644 --- a/features/provisioning/pom.xml +++ b/features/provisioning/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/reporting/api/pom.xml b/features/reporting/api/pom.xml index 871fce822d32..52d7b285413e 100644 --- a/features/reporting/api/pom.xml +++ b/features/reporting/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.reporting - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.reporting diff --git a/features/reporting/availability/pom.xml b/features/reporting/availability/pom.xml index 3917858d16ca..ba70d00b0900 100644 --- a/features/reporting/availability/pom.xml +++ b/features/reporting/availability/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.reporting - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.reporting @@ -194,7 +194,7 @@ true opennms-repo OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/features/reporting/core/pom.xml b/features/reporting/core/pom.xml index a2057ad69e54..eec7ad08d218 100644 --- a/features/reporting/core/pom.xml +++ b/features/reporting/core/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.reporting - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.reporting diff --git a/features/reporting/dao/pom.xml b/features/reporting/dao/pom.xml index b625202d7078..e90fb9b0460f 100644 --- a/features/reporting/dao/pom.xml +++ b/features/reporting/dao/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.reporting - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.reporting diff --git a/features/reporting/jasper-reports-compiler/pom.xml b/features/reporting/jasper-reports-compiler/pom.xml index 7f47460b9e50..aad70421435b 100644 --- a/features/reporting/jasper-reports-compiler/pom.xml +++ b/features/reporting/jasper-reports-compiler/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.reporting - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.reporting @@ -46,7 +46,7 @@ true jasperreports Jasper Reports Maven Repository - http://maven.opennms.org/content/repositories/jasperreports/ + https://maven.opennms.org/content/repositories/jasperreports/ diff --git a/features/reporting/jasper-reports-filter/pom.xml b/features/reporting/jasper-reports-filter/pom.xml index 394de3a6e204..f6216f4ab21f 100644 --- a/features/reporting/jasper-reports-filter/pom.xml +++ b/features/reporting/jasper-reports-filter/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.reporting - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.reporting diff --git a/features/reporting/jasper-reports/pom.xml b/features/reporting/jasper-reports/pom.xml index 884a0c345279..fb49abb8a250 100644 --- a/features/reporting/jasper-reports/pom.xml +++ b/features/reporting/jasper-reports/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.reporting - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.reporting @@ -101,14 +101,14 @@ true jasperreports Jasper Reports Maven Repository - http://maven.opennms.org/content/repositories/jasperreports/ + https://maven.opennms.org/content/repositories/jasperreports/ false true opennms-repo OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release diff --git a/features/reporting/model/pom.xml b/features/reporting/model/pom.xml index b50a5355ce29..e379bd1fdc1f 100644 --- a/features/reporting/model/pom.xml +++ b/features/reporting/model/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.reporting - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.reporting diff --git a/features/reporting/pom.xml b/features/reporting/pom.xml index 8c59d0731cc3..391494fcce4a 100644 --- a/features/reporting/pom.xml +++ b/features/reporting/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/reporting/repository/pom.xml b/features/reporting/repository/pom.xml index eaec7e2560a0..7814fe931bcc 100644 --- a/features/reporting/repository/pom.xml +++ b/features/reporting/repository/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.reporting - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.reporting diff --git a/features/reporting/rest/pom.xml b/features/reporting/rest/pom.xml index a782609a88ec..1a217f99468c 100644 --- a/features/reporting/rest/pom.xml +++ b/features/reporting/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.reporting - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.reporting diff --git a/features/reporting/sdo/pom.xml b/features/reporting/sdo/pom.xml index 5f1547b415a7..e91b7e045bd4 100644 --- a/features/reporting/sdo/pom.xml +++ b/features/reporting/sdo/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.reporting - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.reporting diff --git a/features/request-tracker/pom.xml b/features/request-tracker/pom.xml index 6fa8eb7588f2..ceef3c6cf223 100644 --- a/features/request-tracker/pom.xml +++ b/features/request-tracker/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/rest-provider/pom.xml b/features/rest-provider/pom.xml index b69f016a4f5d..bd1cccdd7159 100644 --- a/features/rest-provider/pom.xml +++ b/features/rest-provider/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/rest/common/pom.xml b/features/rest/common/pom.xml index 31e2ccba3096..f5b4bddc6618 100644 --- a/features/rest/common/pom.xml +++ b/features/rest/common/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.rest diff --git a/features/rest/mapper/pom.xml b/features/rest/mapper/pom.xml index 207aaecdafb2..83c9e0b8d61d 100644 --- a/features/rest/mapper/pom.xml +++ b/features/rest/mapper/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.rest diff --git a/features/rest/model/pom.xml b/features/rest/model/pom.xml index 69834b861ae1..d4d9d378ffde 100644 --- a/features/rest/model/pom.xml +++ b/features/rest/model/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.rest diff --git a/features/rest/pom.xml b/features/rest/pom.xml index 5ec0f99811c6..52a43bc6975e 100644 --- a/features/rest/pom.xml +++ b/features/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/root-webapp/pom.xml b/features/root-webapp/pom.xml index 3f63f33cdb0c..00cd715055cb 100644 --- a/features/root-webapp/pom.xml +++ b/features/root-webapp/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/scv/api/pom.xml b/features/scv/api/pom.xml index 15324d8ef5c0..1f635e429210 100644 --- a/features/scv/api/pom.xml +++ b/features/scv/api/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.scv - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.scv diff --git a/features/scv/dominion-grpc-impl/pom.xml b/features/scv/dominion-grpc-impl/pom.xml index 92b6f179e1ec..df3b85590667 100644 --- a/features/scv/dominion-grpc-impl/pom.xml +++ b/features/scv/dominion-grpc-impl/pom.xml @@ -5,7 +5,7 @@ org.opennms.features org.opennms.features.scv - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.scv diff --git a/features/scv/jceks-impl/pom.xml b/features/scv/jceks-impl/pom.xml index 66d866b3d5e2..476c2fb40397 100644 --- a/features/scv/jceks-impl/pom.xml +++ b/features/scv/jceks-impl/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.scv - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.scv diff --git a/features/scv/pom.xml b/features/scv/pom.xml index f3ac225d440a..3eb0e709f4b6 100644 --- a/features/scv/pom.xml +++ b/features/scv/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/scv/scvcli/pom.xml b/features/scv/scvcli/pom.xml index 3c450e476f81..55720863513c 100644 --- a/features/scv/scvcli/pom.xml +++ b/features/scv/scvcli/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.scv - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.scv diff --git a/features/scv/shell/pom.xml b/features/scv/shell/pom.xml index 54f720620ea6..ec0842006ebb 100644 --- a/features/scv/shell/pom.xml +++ b/features/scv/shell/pom.xml @@ -4,7 +4,7 @@ org.opennms.features org.opennms.features.scv - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.scv diff --git a/features/search/api/pom.xml b/features/search/api/pom.xml index 46878bad5bee..2d83af77711a 100644 --- a/features/search/api/pom.xml +++ b/features/search/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.search - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.search diff --git a/features/search/pom.xml b/features/search/pom.xml index 138d6b732138..7b986196e3c7 100644 --- a/features/search/pom.xml +++ b/features/search/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/search/providers/pom.xml b/features/search/providers/pom.xml index 7e06cad9566e..55fd73a02a2d 100644 --- a/features/search/providers/pom.xml +++ b/features/search/providers/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.search - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.search diff --git a/features/search/rest/pom.xml b/features/search/rest/pom.xml index b40c73ce4937..87414fe538a3 100644 --- a/features/search/rest/pom.xml +++ b/features/search/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.search - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.search diff --git a/features/search/service/pom.xml b/features/search/service/pom.xml index 14b66953efa8..ca060ab441eb 100644 --- a/features/search/service/pom.xml +++ b/features/search/service/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.search - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.search diff --git a/features/sentinel/core/pom.xml b/features/sentinel/core/pom.xml index 427152b885b1..d10ff9019fc0 100644 --- a/features/sentinel/core/pom.xml +++ b/features/sentinel/core/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.sentinel sentinel-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 core diff --git a/features/sentinel/pom.xml b/features/sentinel/pom.xml index 8144b8012937..414dbdedb0e7 100644 --- a/features/sentinel/pom.xml +++ b/features/sentinel/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.sentinel diff --git a/features/sentinel/repository/pom.xml b/features/sentinel/repository/pom.xml index d8b51fc45309..e66b1c49e6d3 100644 --- a/features/sentinel/repository/pom.xml +++ b/features/sentinel/repository/pom.xml @@ -4,7 +4,7 @@ org.opennms.features.sentinel sentinel-parent - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 repository @@ -27,11 +27,11 @@ mvn:org.apache.karaf.features/standard/${karafVersion}/xml/features - mvn:org.apache.karaf.features/spring/${karafVersion}/xml/features - mvn:org.apache.karaf.features/spring-legacy/${karafVersion}/xml/features mvn:org.opennms.newts/newts-karaf/${newtsVersion}/xml/features mvn:org.opennms.karaf/opennms/${project.version}/xml/features + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring + mvn:org.opennms.karaf/opennms/${project.version}/xml/spring-legacy mvn:org.opennms.karaf/opennms/${project.version}/xml/sentinel @@ -42,14 +42,12 @@ opennms-core-ipc-rpc-jms - opennms-core-ipc-rpc-aws-sqs opennms-core-tracing-jaeger opennms-events-sink-dispatcher opennms-core-ipc-sink-camel opennms-core-ipc-sink-kafka opennms-core-ipc-sink-camel-server opennms-core-ipc-sink-kafka-server - opennms-core-ipc-sink-aws-sqs opennms-send-event-command opennms-syslogd-listener-javanet opennms-syslogd-listener-camel-netty @@ -163,6 +161,20 @@ features xml + + org.opennms.karaf + opennms + ${project.version} + spring + xml + + + org.opennms.karaf + opennms + ${project.version} + spring-legacy + xml + org.opennms opennms-requisition-service @@ -256,11 +268,6 @@ org.opennms.core.ipc.rpc.jms-impl ${project.version} - - org.opennms.core.ipc.rpc - org.opennms.core.ipc.rpc.aws-sqs-impl - ${project.version} - org.opennms.core.ipc.sink.camel org.opennms.core.ipc.sink.camel.common @@ -276,16 +283,6 @@ org.opennms.core.ipc.sink.kafka.server ${project.version} - - org.opennms.core.ipc.sink.aws.sqs - org.opennms.core.ipc.sink.aws.sqs.client - ${project.version} - - - org.opennms.core.ipc.sink.aws.sqs - org.opennms.core.ipc.sink.aws.sqs.server - ${project.version} - org.opennms.core.ipc.sink.camel org.opennms.core.ipc.sink.camel.client @@ -559,7 +556,7 @@ true opennms-repo OpenNMS Repository - http://maven.opennms.org/content/groups/opennms.org-release + https://maven.opennms.org/content/groups/opennms.org-release @@ -570,7 +567,7 @@ sonatype-public-repo Sonatype Public Maven Repository - http://maven.opennms.org/content/repositories/sonatype-public-repo/ + https://maven.opennms.org/content/repositories/sonatype-public-repo/ @@ -583,7 +580,7 @@ oosnmp-repo OOSNMP Repository - http://maven.opennms.org/content/repositories/oosnmp-repo + https://maven.opennms.org/content/repositories/oosnmp-repo @@ -594,14 +591,24 @@ coova Coova Repository - http://maven.opennms.org/content/repositories/coova/ + https://maven.opennms.org/content/repositories/coova/ sonatype.org-snapshot Sonatype OSS Snapshots Repository - http://maven.opennms.org/content/groups/sonatype.org-snapshot/ + https://maven.opennms.org/content/groups/sonatype.org-snapshot/ false true + + opennms-maven-3rdparty + https://packages.opennms.com/public/3rdparty/maven/ + + true + + + true + + diff --git a/features/situation-feedback/api/pom.xml b/features/situation-feedback/api/pom.xml index f87a683fa4fb..deaef073684a 100644 --- a/features/situation-feedback/api/pom.xml +++ b/features/situation-feedback/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.situation-feedback - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.situation-feedback diff --git a/features/situation-feedback/elastic/pom.xml b/features/situation-feedback/elastic/pom.xml index ebaac942fece..4b183c038ae2 100644 --- a/features/situation-feedback/elastic/pom.xml +++ b/features/situation-feedback/elastic/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.situation-feedback - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.situation-feedback @@ -32,12 +32,12 @@ org.osgi - org.osgi.core + osgi.core provided org.osgi - org.osgi.compendium + osgi.cmpn provided diff --git a/features/situation-feedback/pom.xml b/features/situation-feedback/pom.xml index fdf22023e3b4..779d8d52042e 100644 --- a/features/situation-feedback/pom.xml +++ b/features/situation-feedback/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/situation-feedback/rest/api/pom.xml b/features/situation-feedback/rest/api/pom.xml index e7e0b87ce4f3..326d0c32c441 100644 --- a/features/situation-feedback/rest/api/pom.xml +++ b/features/situation-feedback/rest/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.situation-feedback org.opennms.features.situation-feedback.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.situation-feedback.rest diff --git a/features/situation-feedback/rest/impl/pom.xml b/features/situation-feedback/rest/impl/pom.xml index b6223eb52a28..123f793704c5 100644 --- a/features/situation-feedback/rest/impl/pom.xml +++ b/features/situation-feedback/rest/impl/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.situation-feedback org.opennms.features.situation-feedback.rest - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.situation-feedback.rest diff --git a/features/situation-feedback/rest/pom.xml b/features/situation-feedback/rest/pom.xml index 0bf854293336..ff720ad64d16 100644 --- a/features/situation-feedback/rest/pom.xml +++ b/features/situation-feedback/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.situation-feedback - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.situation-feedback diff --git a/features/springframework-security/pom.xml b/features/springframework-security/pom.xml index 336e547fbc83..9dad68187eef 100644 --- a/features/springframework-security/pom.xml +++ b/features/springframework-security/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/status/api/pom.xml b/features/status/api/pom.xml index 4f82dd26389d..37a12ef1a23c 100644 --- a/features/status/api/pom.xml +++ b/features/status/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.status - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.status diff --git a/features/status/pom.xml b/features/status/pom.xml index 2411639628e0..bde5cf477c36 100644 --- a/features/status/pom.xml +++ b/features/status/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/status/rest/pom.xml b/features/status/rest/pom.xml index 0e5e983f1d8e..80dd1fa3ef80 100644 --- a/features/status/rest/pom.xml +++ b/features/status/rest/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.status - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.status diff --git a/features/system-report/pom.xml b/features/system-report/pom.xml index 059448a549b2..296c31a33e13 100644 --- a/features/system-report/pom.xml +++ b/features/system-report/pom.xml @@ -4,7 +4,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT org.opennms.features org.opennms.features.system-report diff --git a/features/telemetry/api/pom.xml b/features/telemetry/api/pom.xml index eb1d744dfdeb..cc9b529eaf40 100644 --- a/features/telemetry/api/pom.xml +++ b/features/telemetry/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.telemetry - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry diff --git a/features/telemetry/common/pom.xml b/features/telemetry/common/pom.xml index 26151e1299d9..edef71759172 100644 --- a/features/telemetry/common/pom.xml +++ b/features/telemetry/common/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.telemetry - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry @@ -29,7 +29,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/telemetry/config/api/pom.xml b/features/telemetry/config/api/pom.xml index 777f260963f1..7e7d41fda268 100644 --- a/features/telemetry/config/api/pom.xml +++ b/features/telemetry/config/api/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry org.opennms.features.telemetry.config - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.config diff --git a/features/telemetry/config/jaxb/pom.xml b/features/telemetry/config/jaxb/pom.xml index f0f27be4d1c9..9c4d9b479961 100644 --- a/features/telemetry/config/jaxb/pom.xml +++ b/features/telemetry/config/jaxb/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry org.opennms.features.telemetry.config - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.config diff --git a/features/telemetry/config/jaxb/src/main/resources/org/opennms/netmgt/telemetry/config/model/jaxb.properties b/features/telemetry/config/jaxb/src/main/resources/org/opennms/netmgt/telemetry/config/model/jaxb.properties index a0cde4655ec3..4c1742cec2ff 100644 --- a/features/telemetry/config/jaxb/src/main/resources/org/opennms/netmgt/telemetry/config/model/jaxb.properties +++ b/features/telemetry/config/jaxb/src/main/resources/org/opennms/netmgt/telemetry/config/model/jaxb.properties @@ -26,4 +26,5 @@ # http://www.opennms.com/ ############################################################################### -javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory \ No newline at end of file +javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory +javax.xml.bind.JAXBContextFactory=org.eclipse.persistence.jaxb.JAXBContextFactory diff --git a/features/telemetry/config/pom.xml b/features/telemetry/config/pom.xml index 69f2e0f2d31e..b056a12aaeb3 100644 --- a/features/telemetry/config/pom.xml +++ b/features/telemetry/config/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.telemetry - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry diff --git a/features/telemetry/daemon/pom.xml b/features/telemetry/daemon/pom.xml index 3ee66bade1d8..4c1592844368 100644 --- a/features/telemetry/daemon/pom.xml +++ b/features/telemetry/daemon/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.telemetry - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry diff --git a/features/telemetry/distributed/common/pom.xml b/features/telemetry/distributed/common/pom.xml index 01f1237c5f1e..380469c4f9b2 100644 --- a/features/telemetry/distributed/common/pom.xml +++ b/features/telemetry/distributed/common/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry org.opennms.features.telemetry.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.distributed @@ -48,12 +48,12 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided org.osgi - org.osgi.core + osgi.core provided diff --git a/features/telemetry/distributed/minion/pom.xml b/features/telemetry/distributed/minion/pom.xml index c4c60aa2962b..c331902d6461 100644 --- a/features/telemetry/distributed/minion/pom.xml +++ b/features/telemetry/distributed/minion/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry org.opennms.features.telemetry.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.distributed @@ -34,12 +34,12 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided org.osgi - org.osgi.core + osgi.core provided diff --git a/features/telemetry/distributed/pom.xml b/features/telemetry/distributed/pom.xml index f70ca24d2645..a653d16e8c62 100644 --- a/features/telemetry/distributed/pom.xml +++ b/features/telemetry/distributed/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.telemetry - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry diff --git a/features/telemetry/distributed/sentinel/pom.xml b/features/telemetry/distributed/sentinel/pom.xml index 1d16170c3000..0e4c6b3a5c46 100644 --- a/features/telemetry/distributed/sentinel/pom.xml +++ b/features/telemetry/distributed/sentinel/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry org.opennms.features.telemetry.distributed - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.distributed @@ -39,12 +39,12 @@ org.osgi - org.osgi.compendium + osgi.cmpn provided org.osgi - org.osgi.core + osgi.core provided diff --git a/features/telemetry/itests/pom.xml b/features/telemetry/itests/pom.xml index 4fa2daac3c93..04816c05543e 100644 --- a/features/telemetry/itests/pom.xml +++ b/features/telemetry/itests/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.telemetry - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry diff --git a/features/telemetry/listeners/pom.xml b/features/telemetry/listeners/pom.xml index c10846759f4a..8327d6127cfb 100644 --- a/features/telemetry/listeners/pom.xml +++ b/features/telemetry/listeners/pom.xml @@ -3,7 +3,7 @@ org.opennms.features org.opennms.features.telemetry - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry diff --git a/features/telemetry/pom.xml b/features/telemetry/pom.xml index ceaf5c48fb36..09c2485d7e74 100644 --- a/features/telemetry/pom.xml +++ b/features/telemetry/pom.xml @@ -3,7 +3,7 @@ org.opennms org.opennms.features - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features diff --git a/features/telemetry/protocols/adapters/pom.xml b/features/telemetry/protocols/adapters/pom.xml index c649e10a1a2c..7a088995539d 100644 --- a/features/telemetry/protocols/adapters/pom.xml +++ b/features/telemetry/protocols/adapters/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry org.opennms.features.telemetry.protocols - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols @@ -54,7 +54,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/telemetry/protocols/bmp/adapter/pom.xml b/features/telemetry/protocols/bmp/adapter/pom.xml index 4c47708ff264..bc92b62d8fac 100644 --- a/features/telemetry/protocols/bmp/adapter/pom.xml +++ b/features/telemetry/protocols/bmp/adapter/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry.protocols org.opennms.features.telemetry.protocols.bmp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols.bmp @@ -72,7 +72,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/telemetry/protocols/bmp/parser/pom.xml b/features/telemetry/protocols/bmp/parser/pom.xml index 618de67ac18e..d45a9ea1e3cc 100644 --- a/features/telemetry/protocols/bmp/parser/pom.xml +++ b/features/telemetry/protocols/bmp/parser/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry.protocols org.opennms.features.telemetry.protocols.bmp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols.bmp @@ -116,7 +116,7 @@ org.osgi - org.osgi.core + osgi.core test diff --git a/features/telemetry/protocols/bmp/persistence/api/pom.xml b/features/telemetry/protocols/bmp/persistence/api/pom.xml index 8af329f5d791..6dc85f56d217 100644 --- a/features/telemetry/protocols/bmp/persistence/api/pom.xml +++ b/features/telemetry/protocols/bmp/persistence/api/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.telemetry.protocols.bmp.persistence org.opennms.features.telemetry.protocols.bmp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/telemetry/protocols/bmp/persistence/impl/pom.xml b/features/telemetry/protocols/bmp/persistence/impl/pom.xml index 3610ee89b935..c54ee5b6a232 100644 --- a/features/telemetry/protocols/bmp/persistence/impl/pom.xml +++ b/features/telemetry/protocols/bmp/persistence/impl/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.telemetry.protocols.bmp.persistence org.opennms.features.telemetry.protocols.bmp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/telemetry/protocols/bmp/persistence/pom.xml b/features/telemetry/protocols/bmp/persistence/pom.xml index 67966339f2e8..62b2ac258c1b 100644 --- a/features/telemetry/protocols/bmp/persistence/pom.xml +++ b/features/telemetry/protocols/bmp/persistence/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.telemetry.protocols.bmp org.opennms.features.telemetry.protocols - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/telemetry/protocols/bmp/pom.xml b/features/telemetry/protocols/bmp/pom.xml index 4c6b1ea0e9e0..8af6c06cb13d 100644 --- a/features/telemetry/protocols/bmp/pom.xml +++ b/features/telemetry/protocols/bmp/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry org.opennms.features.telemetry.protocols - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols diff --git a/features/telemetry/protocols/bmp/stats/pom.xml b/features/telemetry/protocols/bmp/stats/pom.xml index 13649ff20c69..fadb4e403dce 100644 --- a/features/telemetry/protocols/bmp/stats/pom.xml +++ b/features/telemetry/protocols/bmp/stats/pom.xml @@ -5,7 +5,7 @@ org.opennms.features.telemetry.protocols.bmp org.opennms.features.telemetry.protocols - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 diff --git a/features/telemetry/protocols/bmp/transport/pom.xml b/features/telemetry/protocols/bmp/transport/pom.xml index 2e31ac41bf40..1a17fbcbd59e 100644 --- a/features/telemetry/protocols/bmp/transport/pom.xml +++ b/features/telemetry/protocols/bmp/transport/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry.protocols org.opennms.features.telemetry.protocols.bmp - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols.bmp diff --git a/features/telemetry/protocols/common/pom.xml b/features/telemetry/protocols/common/pom.xml index 89f4d845374e..c4ee42b8cd06 100644 --- a/features/telemetry/protocols/common/pom.xml +++ b/features/telemetry/protocols/common/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry org.opennms.features.telemetry.protocols - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols diff --git a/features/telemetry/protocols/flows/pom.xml b/features/telemetry/protocols/flows/pom.xml index 245ef7cf33bf..12f4a57803d3 100644 --- a/features/telemetry/protocols/flows/pom.xml +++ b/features/telemetry/protocols/flows/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry org.opennms.features.telemetry.protocols - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols @@ -65,7 +65,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/telemetry/protocols/graphite/adapter/pom.xml b/features/telemetry/protocols/graphite/adapter/pom.xml index 5f4f17d88978..dec3f7eb3b6b 100644 --- a/features/telemetry/protocols/graphite/adapter/pom.xml +++ b/features/telemetry/protocols/graphite/adapter/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry.protocols org.opennms.features.telemetry.protocols.graphite - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols.graphite @@ -34,7 +34,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/telemetry/protocols/graphite/pom.xml b/features/telemetry/protocols/graphite/pom.xml index eaffa3215e7c..3f3cb24be5aa 100644 --- a/features/telemetry/protocols/graphite/pom.xml +++ b/features/telemetry/protocols/graphite/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry org.opennms.features.telemetry.protocols - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols diff --git a/features/telemetry/protocols/jti/adapter/pom.xml b/features/telemetry/protocols/jti/adapter/pom.xml index cd7965ac243c..4f72f140e0c2 100644 --- a/features/telemetry/protocols/jti/adapter/pom.xml +++ b/features/telemetry/protocols/jti/adapter/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry.protocols org.opennms.features.telemetry.protocols.jti - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols.jti @@ -39,7 +39,7 @@ org.osgi - org.osgi.core + osgi.core provided diff --git a/features/telemetry/protocols/jti/pom.xml b/features/telemetry/protocols/jti/pom.xml index 6449dc61f647..6fa6d10b28bd 100644 --- a/features/telemetry/protocols/jti/pom.xml +++ b/features/telemetry/protocols/jti/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry org.opennms.features.telemetry.protocols - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols diff --git a/features/telemetry/protocols/netflow/adapter/pom.xml b/features/telemetry/protocols/netflow/adapter/pom.xml index e1b32c5c947f..e4330a474336 100644 --- a/features/telemetry/protocols/netflow/adapter/pom.xml +++ b/features/telemetry/protocols/netflow/adapter/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry.protocols org.opennms.features.telemetry.protocols.netflow - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols.netflow @@ -88,7 +88,7 @@ org.osgi - org.osgi.core + osgi.core test diff --git a/features/telemetry/protocols/netflow/parser/pom.xml b/features/telemetry/protocols/netflow/parser/pom.xml index dd2432e7cbcc..d18576ff40c7 100644 --- a/features/telemetry/protocols/netflow/parser/pom.xml +++ b/features/telemetry/protocols/netflow/parser/pom.xml @@ -3,7 +3,7 @@ org.opennms.features.telemetry.protocols org.opennms.features.telemetry.protocols.netflow - 28.1.1 + 29.0.0-SNAPSHOT 4.0.0 org.opennms.features.telemetry.protocols.netflow @@ -107,7 +107,7 @@ org.osgi - org.osgi.core + osgi.core test diff --git a/features/telemetry/protocols/netflow/parser/src/main/java/org/opennms/netmgt/telemetry/protocols/netflow/parser/session/UdpSessionManager.java b/features/telemetry/protocols/netflow/parser/src/main/java/org/opennms/netmgt/telemetry/protocols/netflow/parser/session/UdpSessionManager.java index 8f331f4af0bb..54a2acc2c6a6 100644 --- a/features/telemetry/protocols/netflow/parser/src/main/java/org/opennms/netmgt/telemetry/protocols/netflow/parser/session/UdpSessionManager.java +++ b/features/telemetry/protocols/netflow/parser/src/main/java/org/opennms/netmgt/telemetry/protocols/netflow/parser/session/UdpSessionManager.java @@ -33,7 +33,6 @@ import java.time.Instant; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; @@ -49,16 +48,14 @@ import org.opennms.netmgt.telemetry.protocols.netflow.parser.state.ExporterState; import org.opennms.netmgt.telemetry.protocols.netflow.parser.state.OptionState; import org.opennms.netmgt.telemetry.protocols.netflow.parser.state.ParserState; -import org.opennms.netmgt.telemetry.protocols.netflow.parser.state.TemplateState; import com.google.common.collect.Iterables; import com.google.common.collect.Maps; +import org.opennms.netmgt.telemetry.protocols.netflow.parser.state.TemplateState; public class UdpSessionManager { - - final Map> templates = Maps.newHashMap(); - final Map>, TimeWrapper>>>> options = Maps.newHashMap(); - private final Map sequenceNumbers = Maps.newHashMap(); + final Map> templates = Maps.newConcurrentMap(); + private final Map sequenceNumbers = Maps.newConcurrentMap(); private final Duration timeout; private final Supplier sequenceNumberTracker; @@ -72,13 +69,8 @@ public void doHousekeeping() { this.removeTemplateIf(e -> e.getValue().time.isBefore(timeout)); } - private void removeTemplateIf(final Predicate>> predicate) { - final List toBeRemoved = UdpSessionManager.this.templates.entrySet().stream() - .filter(predicate) - .map(Map.Entry::getKey) - .collect(Collectors.toList()); - toBeRemoved.forEach(UdpSessionManager.this.templates::remove); - toBeRemoved.forEach(UdpSessionManager.this.options::remove); + private void removeTemplateIf(final Predicate>> predicate) { + UdpSessionManager.this.templates.entrySet().removeIf(predicate); } public Session getSession(final SessionKey sessionKey) { @@ -86,7 +78,7 @@ public Session getSession(final SessionKey sessionKey) { } public void drop(final SessionKey sessionKey) { - this.templates.entrySet().removeIf(e -> Objects.equals(e.getKey().observationDomainId.sessionKey, sessionKey)); + removeTemplateIf(e -> Objects.equals(e.getKey().observationDomainId.sessionKey, sessionKey)); } public int count() { @@ -96,30 +88,27 @@ public int count() { public Object dumpInternalState() { final ParserState.Builder parser = ParserState.builder(); - final Set domains = this.templates.keySet().stream() - .map(key -> key.observationDomainId) - .collect(Collectors.toSet()); + final Map>>> sessions = this.templates.entrySet().stream() + .collect(Collectors.groupingBy(e -> e.getKey().observationDomainId)); - domains.forEach(domain -> { - final String key = String.format("%s#%s", domain.sessionKey.getDescription(), domain.observationDomainId); + for (final var entry : sessions.entrySet()) { + final String key = String.format("%s#%s", + entry.getKey().sessionKey.getDescription(), + entry.getKey().observationDomainId); final ExporterState.Builder exporter = ExporterState.builder(key); - this.templates.entrySet().stream() - .filter(e -> Objects.equals(e.getKey().observationDomainId, domain)) - .forEach(e -> exporter.withTemplate(TemplateState.builder(e.getKey().templateId) - .withInsertionTime(e.getValue().time))); - - this.options.entrySet().stream() - .filter(e -> Objects.equals(e.getKey().observationDomainId, domain)) - .forEach(e -> e.getValue().forEach((selectors, values) -> - exporter.withOptions(OptionState.builder(e.getKey().templateId) - .withInsertionTime(values.time) - .withSelectors(selectors) - .withValues(values.wrapped)))); + entry.getValue().forEach(e -> { + exporter.withTemplate(TemplateState.builder(e.getKey().templateId).withInsertionTime(e.getValue().time)); + e.getValue().wrapped.options.forEach((selectors, values) -> + exporter.withOptions(OptionState.builder(e.getKey().templateId) + .withInsertionTime(values.time) + .withSelectors(selectors) + .withValues(values.wrapped))); + }); parser.withExporter(exporter); - }); + } return parser.build(); } @@ -182,7 +171,7 @@ public boolean equals(final Object o) { final TemplateKey that = (TemplateKey) o; return Objects.equals(this.observationDomainId, that.observationDomainId) && - Objects.equals(this.templateId, that.templateId); + Objects.equals(this.templateId, that.templateId); } @Override @@ -191,7 +180,7 @@ public int hashCode() { } } - private final static class TimeWrapper { + public final static class TimeWrapper { public final Instant time; public final T wrapped; @@ -201,6 +190,16 @@ private TimeWrapper(final T wrapped) { } } + public static class TemplateOptions { + public final Template template; + public final Map>, TimeWrapper>>> options; + + public TemplateOptions(final Template template) { + this.template = Objects.requireNonNull(template); + this.options = Maps.newConcurrentMap(); + } + } + private final class UdpSession implements Session { private final SessionKey sessionKey; @@ -211,20 +210,19 @@ public UdpSession(final SessionKey sessionKey) { @Override public void addTemplate(final long observationDomainId, final Template template) { final TemplateKey key = new TemplateKey(this.sessionKey, observationDomainId, template.id); - UdpSessionManager.this.templates.put(key, new TimeWrapper<>(template)); + UdpSessionManager.this.templates.put(key, new TimeWrapper<>(new TemplateOptions(template))); } @Override public void removeTemplate(final long observationDomainId, final int templateId) { final TemplateKey key = new TemplateKey(this.sessionKey, observationDomainId, templateId); UdpSessionManager.this.templates.remove(key); - UdpSessionManager.this.options.remove(key); } @Override public void removeAllTemplate(final long observationDomainId, final Template.Type type) { final DomainKey domainKey = new DomainKey(this.sessionKey, observationDomainId); - UdpSessionManager.this.removeTemplateIf(e -> domainKey.equals(e.getKey().observationDomainId) && e.getValue().wrapped.type == type); + UdpSessionManager.this.removeTemplateIf(e -> domainKey.equals(e.getKey().observationDomainId) && e.getValue().wrapped.template.type == type); } @Override @@ -233,7 +231,7 @@ public void addOptions(final long observationDomainId, final Collection> scopes, final List> values) { final TemplateKey key = new TemplateKey(this.sessionKey, observationDomainId, templateId); - UdpSessionManager.this.options.computeIfAbsent(key, (k) -> new HashMap<>()).put(new HashSet<>(scopes), new TimeWrapper<>(values)); + UdpSessionManager.this.templates.get(key).wrapped.options.put(new HashSet<>(scopes), new TimeWrapper<>(values)); } @Override @@ -266,9 +264,9 @@ private TemplateKey key(final int templateId) { @Override public Template lookupTemplate(final int templateId) throws MissingTemplateException { - final TimeWrapper