From c79d878d36e5aa9382c73b70a0733c98b7ee6910 Mon Sep 17 00:00:00 2001 From: justinjleet Date: Thu, 7 Jun 2018 09:43:19 -0400 Subject: [PATCH] Updating website. Removing MD5 sum --- site/current-book/CONTRIBUTING.html | 157 + site/current-book/Upgrading.html | 354 +- .../css/apache-maven-fluido-1.3.0.min.css | 9 - .../css/apache-maven-fluido-1.7.min.css | 17 + site/current-book/css/maven-base.css | 168 + site/current-book/css/maven-theme.css | 161 + site/current-book/css/print.css | 11 +- .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 35283 bytes .../fonts/glyphicons-halflings-regular.svg | 229 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 55016 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 41793 bytes .../images/apache-maven-project-2.png | Bin 33442 -> 43073 bytes site/current-book/images/collapsed.gif | Bin 0 -> 53 bytes site/current-book/images/expanded.gif | Bin 0 -> 52 bytes site/current-book/images/external.png | Bin 0 -> 230 bytes site/current-book/images/icon_error_sml.gif | Bin 633 -> 1010 bytes site/current-book/images/icon_info_sml.gif | Bin 638 -> 606 bytes site/current-book/images/icon_success_sml.gif | Bin 604 -> 990 bytes site/current-book/images/icon_warning_sml.gif | Bin 625 -> 576 bytes site/current-book/images/newwindow.png | Bin 0 -> 220 bytes site/current-book/index.html | 347 +- .../js/apache-maven-fluido-1.3.0.min.js | 21 - .../js/apache-maven-fluido-1.7.min.js | 25 + site/current-book/metron-analytics/index.html | 303 +- .../metron-maas-service/index.html | 451 +- .../metron-profiler-client/index.html | 888 +- .../metron-profiler/index.html | 1338 +- .../metron-statistics/HLLP.html | 10962 +++++----------- .../metron-statistics/index.html | 870 +- .../metron-contrib/metron-docker/index.html | 540 +- .../metron-performance/index.html | 317 + .../Kerberos-ambari-setup.html | 372 +- .../Kerberos-manual-setup.html | 1218 +- .../metron-deployment/amazon-ec2/index.html | 755 +- .../metron-deployment/ansible/index.html | 128 + .../ansible/roles/index.html | 140 + .../ansible/roles/opentaxii/index.html | 301 + .../ansible/roles/pcap_replay/index.html | 172 + .../ansible/roles/sensor-stubs/index.html | 221 + .../ansible/roles/sensor-test-mode/index.html | 156 + .../development/centos6/index.html | 233 + .../development/fastcapa/index.html | 249 + .../metron-deployment/development/index.html | 137 + .../development/ubuntu14/index.html | 233 + .../current-book/metron-deployment/index.html | 691 +- .../other-examples/index.html | 363 +- .../Manual_Install_CentOS6.html | 1352 +- .../ambari/elasticsearch-mpack/index.html | 190 + .../packaging/ambari/index.html | 1150 +- .../packaging/ambari/metron-mpack/index.html | 337 + .../docker/ansible-docker/index.html | 432 +- .../packaging/docker/deb-docker/index.html | 194 + .../packaging/docker/rpm-docker/index.html | 430 +- .../packaging/packer-build/index.html | 382 +- .../metron-deployment/roles/index.html | 332 - .../metron-deployment/roles/monit/index.html | 388 - .../roles/opentaxii/index.html | 480 - .../roles/pcap_replay/index.html | 355 - .../roles/sensor-stubs/index.html | 401 - .../roles/sensor-test-mode/index.html | 345 - .../vagrant/codelab-platform/index.html | 383 - .../vagrant/fastcapa-test-platform/index.html | 416 - .../vagrant/full-dev-platform/index.html | 420 - .../metron-deployment/vagrant/index.html | 305 - .../vagrant/quick-dev-platform/index.html | 406 - .../metron-interface/metron-alerts/index.html | 434 +- .../metron-interface/metron-config/index.html | 415 +- .../metron-interface/metron-rest/index.html | 2661 ++-- .../Performance-tuning-guide.html | 1123 +- site/current-book/metron-platform/index.html | 346 +- .../metron-platform/metron-api/index.html | 387 +- .../metron-platform/metron-common/index.html | 877 +- .../metron-data-management/index.html | 1348 +- .../metron-elasticsearch/index.html | 706 +- .../metron-enrichment/Performance.html | 802 ++ .../metron-enrichment/index.html | 760 +- .../metron-indexing/index.html | 547 +- .../metron-management/index.html | 1178 +- .../metron-parsers/3rdPartyParser.html | 467 + .../metron-platform/metron-parsers/index.html | 870 +- .../metron-parsers/parser-testing.html | 434 +- .../metron-pcap-backend/index.html | 503 +- .../metron-platform/metron-writer/index.html | 377 +- .../bro-plugin-kafka/index.html | 519 - .../metron-sensors/fastcapa/index.html | 1239 +- site/current-book/metron-sensors/index.html | 299 +- .../metron-sensors/pycapa/index.html | 605 +- .../stellar-3rd-party-example/index.html | 263 +- .../stellar-common/3rdPartyStellar.html | 330 +- .../metron-stellar/stellar-common/index.html | 3603 ++--- .../stellar-zeppelin/index.html | 239 + .../use-cases/forensic_clustering/index.html | 517 +- .../geographic_login_outliers/index.html | 442 +- site/current-book/use-cases/index.html | 283 +- .../use-cases/typosquat_detection/index.html | 545 + site/documentation/index.md | 14 +- 96 files changed, 22303 insertions(+), 32065 deletions(-) create mode 100644 site/current-book/CONTRIBUTING.html delete mode 100644 site/current-book/css/apache-maven-fluido-1.3.0.min.css create mode 100644 site/current-book/css/apache-maven-fluido-1.7.min.css create mode 100644 site/current-book/css/maven-base.css create mode 100644 site/current-book/css/maven-theme.css create mode 100644 site/current-book/fonts/glyphicons-halflings-regular.eot create mode 100644 site/current-book/fonts/glyphicons-halflings-regular.svg create mode 100644 site/current-book/fonts/glyphicons-halflings-regular.ttf create mode 100644 site/current-book/fonts/glyphicons-halflings-regular.woff create mode 100644 site/current-book/images/collapsed.gif create mode 100644 site/current-book/images/expanded.gif create mode 100644 site/current-book/images/external.png create mode 100644 site/current-book/images/newwindow.png delete mode 100644 site/current-book/js/apache-maven-fluido-1.3.0.min.js create mode 100644 site/current-book/js/apache-maven-fluido-1.7.min.js create mode 100644 site/current-book/metron-contrib/metron-performance/index.html create mode 100644 site/current-book/metron-deployment/ansible/index.html create mode 100644 site/current-book/metron-deployment/ansible/roles/index.html create mode 100644 site/current-book/metron-deployment/ansible/roles/opentaxii/index.html create mode 100644 site/current-book/metron-deployment/ansible/roles/pcap_replay/index.html create mode 100644 site/current-book/metron-deployment/ansible/roles/sensor-stubs/index.html create mode 100644 site/current-book/metron-deployment/ansible/roles/sensor-test-mode/index.html create mode 100644 site/current-book/metron-deployment/development/centos6/index.html create mode 100644 site/current-book/metron-deployment/development/fastcapa/index.html create mode 100644 site/current-book/metron-deployment/development/index.html create mode 100644 site/current-book/metron-deployment/development/ubuntu14/index.html create mode 100644 site/current-book/metron-deployment/packaging/ambari/elasticsearch-mpack/index.html create mode 100644 site/current-book/metron-deployment/packaging/ambari/metron-mpack/index.html create mode 100644 site/current-book/metron-deployment/packaging/docker/deb-docker/index.html delete mode 100644 site/current-book/metron-deployment/roles/index.html delete mode 100644 site/current-book/metron-deployment/roles/monit/index.html delete mode 100644 site/current-book/metron-deployment/roles/opentaxii/index.html delete mode 100644 site/current-book/metron-deployment/roles/pcap_replay/index.html delete mode 100644 site/current-book/metron-deployment/roles/sensor-stubs/index.html delete mode 100644 site/current-book/metron-deployment/roles/sensor-test-mode/index.html delete mode 100644 site/current-book/metron-deployment/vagrant/codelab-platform/index.html delete mode 100644 site/current-book/metron-deployment/vagrant/fastcapa-test-platform/index.html delete mode 100644 site/current-book/metron-deployment/vagrant/full-dev-platform/index.html delete mode 100644 site/current-book/metron-deployment/vagrant/index.html delete mode 100644 site/current-book/metron-deployment/vagrant/quick-dev-platform/index.html create mode 100644 site/current-book/metron-platform/metron-enrichment/Performance.html create mode 100644 site/current-book/metron-platform/metron-parsers/3rdPartyParser.html delete mode 100644 site/current-book/metron-sensors/bro-plugin-kafka/index.html create mode 100644 site/current-book/metron-stellar/stellar-zeppelin/index.html create mode 100644 site/current-book/use-cases/typosquat_detection/index.html diff --git a/site/current-book/CONTRIBUTING.html b/site/current-book/CONTRIBUTING.html new file mode 100644 index 0000000000..bb3119e6cd --- /dev/null +++ b/site/current-book/CONTRIBUTING.html @@ -0,0 +1,157 @@ + + + + + + + + + Metron – How To Contribute + + + + + + + +
+ + + +
+ +
+ +

How To Contribute

+

+

As an open source project, Metron welcomes contributions of all forms. There are several great ways to contribute!

+
    + +
  • Contributing a Code Change
  • +
  • Reviewing pull requests on our GitHub page. Check out current open Pull Requests
  • +
  • Improve our documentation. Our docs are self contained in the project in README files. Doc changes are the same process as a code change. See Contributing a Code Change
  • +
  • Contributing to or starting discussions on the mailing lists. Both the user and dev lists are great places to give and receive help, or provide feedback. See Mailing Lists
  • +
  • Filing tickets for features, enhancements, and bugs to our JIRA. Take a look at Reporting Issues and the Metron JIRA
  • +
+
+

Contributing A Code Change

+
    + +
  1. Open a JIRA ticket associated with your change, if one doesn’t already exist. Assign it to yourself and give a good description. +
      + +
    • Feel free to ask questions on the lists and collaborate!
    • +
    +
  2. +
  3. Implement your change +
      + +
    • We recommend setting up Travis CI on your personal Github repo to handle long running testing. If the Travis build fails, you’ll want to look into it. See Getting started for instructions.
    • +
    +
  4. +
  5. Open a GitHub Pull Request with your change + +
  6. +
  7. Iterate on your change with reviewers until it’s merged into master.
  8. +
+
+

Development Guidelines

+

The full guidelines can be found on the Metron wiki. They boil down to

+
    + +
  1. Make sure you’ve tested your change.
  2. +
  3. Make sure you’ve documented your change.
  4. +
  5. Follow the Google Java Style Guide +
      + +
    • If the file is a different style follow that style.
    • +
    +
  6. +
  7. Be open to feedback.
  8. +
+
+
+
+
+ + + diff --git a/site/current-book/Upgrading.html b/site/current-book/Upgrading.html index 78fe2acf61..fac4db15b1 100644 --- a/site/current-book/Upgrading.html +++ b/site/current-book/Upgrading.html @@ -1,199 +1,109 @@ - + Metron – Upgrading - + - - - - - - - - - - - - - - -
- +
  • +

    Apply real, live telemetry to your profile.

    -

    Once you are happy with your profile against a controlled data set, it can be useful to introduce more complex, live data. This example extracts 10 messages of live, enriched telemetry to test your profile(s).

    - -
    -
    -
    [Stellar]>>> %define bootstrap.servers := "node1:6667" 
    +

    Once you are happy with your profile against a controlled data set, it can be useful to introduce more complex, live data. This example extracts 10 messages of live, enriched telemetry to test your profile(s).

    + +
    +
    +
    [Stellar]>>> %define bootstrap.servers := "node1:6667"
     node1:6667
    -[Stellar]>>> msgs := KAFKA_GET("indexing", 10) 
    +[Stellar]>>> msgs := KAFKA_GET("indexing", 10)
     [Stellar]>>> LENGTH(msgs)
     10
     
    +

    Apply those 10 messages to your profile(s).

    - -
    -
    -
    [Stellar]>>> PROFILER_APPLY(msgs, p)
    +
    +
    +
    +
    [Stellar]>>> PROFILER_APPLY(msgs, profiler)
       Profiler{1 profile(s), 10 messages(s), 10 route(s)}
    -
  • +
    +

    Deploying Profiles

    -

    This section will describe the steps required to get your first “Hello, World!”" profile running. This assumes that you have a successful Profiler Installation and have it running. You can deploy profiles in two different ways.

    - +

    This section will describe the steps required to get your first “Hello, World!”" profile running. This assumes that you have a successful Profiler Installation and have it running. You can deploy profiles in two different ways.

    Deploying Profiles with the Stellar Shell

    -

    Continuing the previous running example, at this point, you have seen how your profile behaves against real, live telemetry in a controlled execution environment. The next step is to deploy your profile to the live, actively running Profiler topology.

    - +

    Continuing the previous running example, at this point, you have seen how your profile behaves against real, live telemetry in a controlled execution environment. The next step is to deploy your profile to the live, actively running Profiler topology.

      - +
    1. -

      Start the Stellar Shell with the -z ZK:2181 command line argument. This is required when deploying a new profile to the active Profiler topology. Replace ZK:2181 with a URL that is appropriate to your environment.

      - -
      -
      -
      [root@node1 ~]# $METRON_HOME/bin/stellar -z ZK:2181
      +
      +

      Start the Stellar Shell with the -z ZK:2181 command line argument. This is required when deploying a new profile to the active Profiler topology. Replace ZK:2181 with a URL that is appropriate to your environment.

      + +
      +
      +
      [root@node1 ~]# $METRON_HOME/bin/stellar -z ZK:2181
       Stellar, Go!
       [Stellar]>>>
       [Stellar]>>> %functions CONFIG CONFIG_GET, CONFIG_PUT
      -
    2. - +
    +
  • +

    If you haven’t already, define your profile.

    - -
    -
    -
    [Stellar]>>> conf := SHELL_EDIT()
    +
    +
    +
    +
    [Stellar]>>> conf := SHELL_EDIT()
     [Stellar]>>> conf
     {
       "profiles": [
    @@ -505,37 +385,40 @@ 

    Deploying Profiles w } ] } -

  • - + +
  • -

    Check what is already deployed.

    -

    Pushing a new profile configuration is destructive. It will overwrite any existing configuration. Check what you have out there. Manually merge the existing configuration with your new profile definition.

    - -
    -
    -
    [Stellar]>>> existing := CONFIG_GET("PROFILER")
    -
  • - + +

    Check what is already deployed.

    +

    Pushing a new profile configuration is destructive. It will overwrite any existing configuration. Check what you have out there. Manually merge the existing configuration with your new profile definition.

    + +
    +
    +
    [Stellar]>>> existing := CONFIG_GET("PROFILER")
    +
    +
  • -

    Deploy your profile. This will push the configuration to to the live, actively running Profiler topology. This will overwrite any existing profile definitions.

    - -
    -
    -
    [Stellar]>>> CONFIG_PUT("PROFILER", conf)
    -
  • + +

    Deploy your profile. This will push the configuration to to the live, actively running Profiler topology. This will overwrite any existing profile definitions.

    + +
    +
    +
    [Stellar]>>> CONFIG_PUT("PROFILER", conf)
    +
    +

    Deploying Profiles from the Command Line

    -
      - +
    1. -

      Create the profile definition in a file located at $METRON_HOME/config/zookeeper/profiler.json. This file will likely not exist, if you have never created Profiles before.

      + +

      Create the profile definition in a file located at $METRON_HOME/config/zookeeper/profiler.json. This file will likely not exist, if you have never created Profiles before.

      The following example will create a profile that simply counts the number of messages per ip_src_addr.

      - -
      -
      -
      {
      +
      +
      +
      +
      {
         "profiles": [
           {
             "profile": "hello-world",
      @@ -547,21 +430,23 @@ 

      Deploying Profiles fr } ] } -

    2. - +
    +
  • -

    Upload the profile definition to Zookeeper. Change node1:2181 to refer the actual Zookeeper host in your environment.

    - -
    -
    -
    $ cd $METRON_HOME
    +
    +

    Upload the profile definition to Zookeeper. Change node1:2181 to refer the actual Zookeeper host in your environment.

    + +
    +
    +
    $ cd $METRON_HOME
     $ bin/zk_load_configs.sh -m PUSH -i config/zookeeper/ -z node1:2181
     
    +

    You can validate this by reading back the Metron configuration from Zookeeper using the same script. The result should look-like the following.

    - -
    -
    -
    $ bin/zk_load_configs.sh -m DUMP -z node1:2181
    +
    +
    +
    +
    $ bin/zk_load_configs.sh -m DUMP -z node1:2181
     ...
     PROFILER Config: profiler
     {
    @@ -576,378 +461,386 @@ 

    Deploying Profiles fr } ] } -

  • - + +
  • -

    Ensure that test messages are being sent to the Profiler’s input topic in Kafka. The Profiler will consume messages from the input topic defined in the Profiler’s configuration (see Configuring the Profiler). By default this is the indexing topic.

  • - + +

    Ensure that test messages are being sent to the Profiler’s input topic in Kafka. The Profiler will consume messages from the input topic defined in the Profiler’s configuration (see Configuring the Profiler). By default this is the indexing topic.

    +
  • -

    Check the HBase table to validate that the Profiler is writing the profile. Remember that the Profiler is flushing the profile every 15 minutes. You will need to wait at least this long to start seeing profile data in HBase.

    - -
    -
    -
    $ /usr/hdp/current/hbase-client/bin/hbase shell
    +
    +

    Check the HBase table to validate that the Profiler is writing the profile. Remember that the Profiler is flushing the profile every 15 minutes. You will need to wait at least this long to start seeing profile data in HBase.

    + +
    +
    +
    $ /usr/hdp/current/hbase-client/bin/hbase shell
     hbase(main):001:0> count 'profiler'
    -
  • - + +
  • -

    Use the Profiler Client to read the profile data. The following PROFILE_GET command will read the data written by the hello-world profile. This assumes that 10.0.0.1 is one of the values for ip_src_addr contained within the telemetry consumed by the Profiler.

    - -
    -
    -
    $ bin/stellar -z node1:2181
    +
    +

    Use the Profiler Client to read the profile data. The following PROFILE_GET command will read the data written by the hello-world profile. This assumes that 10.0.0.1 is one of the values for ip_src_addr contained within the telemetry consumed by the Profiler.

    + +
    +
    +
    $ bin/stellar -z node1:2181
     [Stellar]>>> PROFILE_GET( "hello-world", "10.0.0.1", PROFILE_FIXED(30, "MINUTES"))
     [451, 448]
     
    -

    This result indicates that over the past 30 minutes, the Profiler stored two values related to the source IP address “10.0.0.1”. In the first 15 minute period, the IP 10.0.0.1 was seen in 451 telemetry messages. In the second 15 minute period, the same IP was seen in 448 telemetry messages.

    -

    It is assumed that the PROFILE_GET client is correctly configured to match the Profile configuration before using it to read that Profile. More information on configuring and using the Profiler client can be found here.

  • + +

    This result indicates that over the past 30 minutes, the Profiler stored two values related to the source IP address “10.0.0.1”. In the first 15 minute period, the IP 10.0.0.1 was seen in 451 telemetry messages. In the second 15 minute period, the same IP was seen in 448 telemetry messages.

    +

    It is assumed that the PROFILE_GET client is correctly configured to match the Profile configuration before using it to read that Profile. More information on configuring and using the Profiler client can be found here.

    +

    Anatomy of a Profile

    -

    A profile definition requires a JSON-formatted set of elements, many of which can contain Stellar code. The specification contains the following elements. (For the impatient, skip ahead to the Examples.)

    +
    +

    Profiler

    +

    The Profiler configuration contains only two fields; only one of which is required.

    + +
    +
    +
    {
    +    "profiles": [
    +        { "profile": "one", ... },
    +        { "profile": "two", ... }
    +    ],
    +    "timestampField": "timestamp"
    +}
    +
    - - + + - - - - - - - - - - + + + + + - - - - - - - - + + + - - - - - - - - + + + + +
    Name Description
    Name Description
    profile Required Unique name identifying the profile.
    profiles Required A list of zero or more Profile definitions.
    foreach Required A separate profile is maintained “for each” of these.
    timestampField Optional Indicates whether processing time or event time should be used. By default, processing time is enabled.
    +
    +

    profiles

    +

    Required

    +

    A list of zero or more Profile definitions.

    +
    +

    timestampField

    +

    Optional

    +

    Indicates whether processing time or event time is used. By default, processing time is enabled.

    +
    +
    Processing Time
    +

    By default, no timestampField is defined. In this case, the Profiler uses system time when generating profiles. This means that the profiles are generated based on when the data has been processed by the Profiler. This is also known as ‘processing time’.

    +

    This is the simplest mode of operation, but has some draw backs. If the Profiler is consuming live data and all is well, the processing and event times will likely remain similar and consistent. If processing time diverges from event time, then the Profiler will generate skewed profiles.

    +

    There are a few scenarios that might cause skewed profiles when using processing time. For example when a system has undergone a scheduled maintenance window and is restarted, a high volume of messages will need to be processed by the Profiler. The output of the Profiler might indicate an increase in activity during this time, although no change in activity actually occurred on the target network. The same situation could occur if an upstream system which provides telemetry undergoes an outage.

    +

    Event Time can be used to mitigate these problems.

    +
    +
    Event Time
    +

    Alternatively, a timestampField can be defined. This must be the name of a field contained within the telemetry processed by the Profiler. The Profiler will extract and use the timestamp contained within this field.

    +
      + +
    • + +

      If a message does not contain this field, it will be dropped.

      +
    • +
    • + +

      The field must contain a timestamp in epoch milliseconds expressed as either a numeric or string. Otherwise, the message will be dropped.

      +
    • +
    • + +

      The Profiler will use the same field across all telemetry sources and for all profiles.

      +
    • +
    • + +

      Be aware of clock skew across telemetry sources. If your profile is processing telemetry from multiple sources where the clock differs significantly, the Profiler may assume that some of those messages are late and will be ignored. Adjusting the profiler.window.duration and profiler.window.lag can help accommodate skewed clocks.

      +
    • +
    +
    +

    Profiles

    +

    A profile definition requires a JSON-formatted set of elements, many of which can contain Stellar code. The specification contains the following elements. (For the impatient, skip ahead to the Examples.)

    + + + + + + + + + - - - - - - - - + + + - - - - - - - - + + + - - - - - - - - + + + - - - - - - - - + + + - - - - - - - - + + + - - - - - - - - -
    Name Description
    onlyif Optional Boolean expression that determines if a message should be applied to the profile.
    profile Required Unique name identifying the profile.
    groupBy Optional One or more Stellar expressions used to group the profile measurements when persisted.
    foreach Required A separate profile is maintained “for each” of these.
    init Optional One or more expressions executed at the start of a window period.
    onlyif Optional Boolean expression that determines if a message should be applied to the profile.
    update Required One or more expressions executed when a message is applied to the profile.
    groupBy Optional One or more Stellar expressions used to group the profile measurements when persisted.
    result Required Stellar expressions that are executed when the window period expires.
    init Optional One or more expressions executed at the start of a window period.
    expires Optional Profile data is purged after this period of time, specified in days.
    + update + Required + One or more expressions executed when a message is applied to the profile. + + result + Required + Stellar expressions that are executed when the window period expires. + + expires + Optional + Profile data is purged after this period of time, specified in days. + +

    profile

    Required

    -

    A unique name identifying the profile. The field is treated as a string.

    +

    A unique name identifying the profile. The field is treated as a string.

    foreach

    Required

    -

    A separate profile is maintained ‘for each’ of these. This is effectively the entity that the profile is describing. The field is expected to contain a Stellar expression whose result is the entity name.

    +

    A separate profile is maintained ‘for each’ of these. This is effectively the entity that the profile is describing. The field is expected to contain a Stellar expression whose result is the entity name.

    For example, if ip_src_addr then a separate profile would be maintained for each unique IP source address in the data; 10.0.0.1, 10.0.0.2, etc.

    onlyif

    Optional

    -

    An expression that determines if a message should be applied to the profile. A Stellar expression that returns a Boolean is expected. A message is only applied to a profile if this expression is true. This allows a profile to filter the messages that get applied to it.

    +

    An expression that determines if a message should be applied to the profile. A Stellar expression that returns a Boolean is expected. A message is only applied to a profile if this expression is true. This allows a profile to filter the messages that get applied to it.

    groupBy

    Optional

    -

    One or more Stellar expressions used to group the profile measurements when persisted. This can be used to sort the Profile data to allow for a contiguous scan when accessing subsets of the data. This is also one way to deal with calendar effects. For example, where activity on a weekday can be very different from a weekend.

    -

    A common use case would be grouping by day of week. This allows a contiguous scan to access all profile data for Mondays only. Using the following definition would achieve this.

    +

    One or more Stellar expressions used to group the profile measurements when persisted. This can be used to sort the Profile data to allow for a contiguous scan when accessing subsets of the data. This is also one way to deal with calendar effects. For example, where activity on a weekday can be very different from a weekend.

    +

    A common use case would be grouping by day of week. This allows a contiguous scan to access all profile data for Mondays only. Using the following definition would achieve this.

    -
    -
    -
    "groupBy": [ "DAY_OF_WEEK(start)" ]
    +
    +
    +
    "groupBy": [ "DAY_OF_WEEK(start)" ]
     
    -

    The expression can reference any of these variables.

    +

    The expression can reference any of these variables.

      - +
    • Any variable defined by the profile in its init or update expressions.
    • -
    • profile The name of the profile.
    • -
    • entity The name of the entity being profiled.
    • -
    • start The start time of the profile period in epoch milliseconds.
    • -
    • end The end time of the profile period in epoch milliseconds.
    • -
    • duration The duration of the profile period in milliseconds.
    • -
    • result The result of executing the result expression.

    init

    Optional

    -

    One or more expressions executed at the start of a window period. A map is expected where the key is the variable name and the value is a Stellar expression. The map can contain zero or more variable:expression pairs. At the start of each window period, each expression is executed once and stored in the given variable. Note that constant init values such as “0” must be in quotes regardless of their type, as the init value must be a string to be executed by Stellar.

    +

    One or more expressions executed at the start of a window period. A map is expected where the key is the variable name and the value is a Stellar expression. The map can contain zero or more variable:expression pairs. At the start of each window period, each expression is executed once and stored in the given variable. Note that constant init values such as “0” must be in quotes regardless of their type, as the init value must be a string to be executed by Stellar.

    -
    -
    -
    "init": {
    +
    +
    +
    "init": {
       "var1": "0",
       "var2": "1"
     }
    -
    +
    +

    update

    Required

    -

    One or more expressions executed when a message is applied to the profile. A map is expected where the key is the variable name and the value is a Stellar expression. The map can include 0 or more variables/expressions. When each message is applied to the profile, the expression is executed and stored in a variable with the given name.

    +

    One or more expressions executed when a message is applied to the profile. A map is expected where the key is the variable name and the value is a Stellar expression. The map can include 0 or more variables/expressions. When each message is applied to the profile, the expression is executed and stored in a variable with the given name.

    -
    -
    -
    "update": {
    +
    +
    +
    "update": {
       "var1": "var1 + 1",
       "var2": "var2 + 1"
     }
    -
    +
    +

    result

    Required

    -

    Stellar expressions that are executed when the window period expires. The expressions are expected to summarize the messages that were applied to the profile over the window period. In the most basic form a single result is persisted for later retrieval.

    +

    Stellar expressions that are executed when the window period expires. The expressions are expected to summarize the messages that were applied to the profile over the window period. In the most basic form a single result is persisted for later retrieval.

    -
    -
    -
    "result": "var1 + var2"
    +
    +
    +
    "result": "var1 + var2"
     
    -

    For more advanced use cases, a profile can generate two types of results. A profile can define one or both of these result types at the same time.

    +

    For more advanced use cases, a profile can generate two types of results. A profile can define one or both of these result types at the same time.

      - -
    • profile: A required expression that defines a value that is persisted for later retrieval.
    • - + +
    • profile: A required expression that defines a value that is persisted for later retrieval.
    • triage: An optional expression that defines values that are accessible within the Threat Triage process.

    profile

    -

    A required Stellar expression that results in a value that is persisted in the profile store for later retrieval. The expression can result in any object that is Kryo serializable. These values can be retrieved for later use with the Profiler Client.

    +

    A required Stellar expression that results in a value that is persisted in the profile store for later retrieval. The expression can result in any object that is Kryo serializable. These values can be retrieved for later use with the Profiler Client.

    -
    -
    -
    "result": {
    +
    +
    +
    "result": {
         "profile": "2 + 2"
     }
     
    +

    An alternative, simplified form is also acceptable.

    -
    -
    -
    "result": "2 + 2"
    +
    +
    +
    "result": "2 + 2"
     
    +

    triage

    -

    An optional map of one or more Stellar expressions. The value of each expression is made available to the Threat Triage process under the given name. Each expression must result in a either a primitive type, like an integer, long, or short, or a String. All other types will result in an error.

    -

    In the following example, three values, the minimum, the maximum and the mean are appended to a message. This message is consumed by Metron, like other sources of telemetry, and each of these values are accessible from within the Threat Triage process using the given field names; min, max, and mean.

    +

    An optional map of one or more Stellar expressions. The value of each expression is made available to the Threat Triage process under the given name. Each expression must result in a either a primitive type, like an integer, long, or short, or a String. All other types will result in an error.

    +

    In the following example, three values, the minimum, the maximum and the mean are appended to a message. This message is consumed by Metron, like other sources of telemetry, and each of these values are accessible from within the Threat Triage process using the given field names; min, max, and mean.

    -
    -
    -
    "result": {
    +
    +
    +
    "result": {
         "triage": {
             "min": "STATS_MIN(stats)",
             "max": "STATS_MAX(stats)",
             "mean": "STATS_MEAN(stats)"
         }
     }
    -
    +
    +

    expires

    Optional

    -

    A numeric value that defines how many days the profile data is retained. After this time, the data expires and is no longer accessible. If no value is defined, the data does not expire.

    +

    A numeric value that defines how many days the profile data is retained. After this time, the data expires and is no longer accessible. If no value is defined, the data does not expire.

    The REPL can be a powerful for developing profiles. Read all about Developing Profiles.

    Configuring the Profiler

    -

    The Profiler runs as an independent Storm topology. The configuration for the Profiler topology is stored in local filesystem at $METRON_HOME/config/profiler.properties. The values can be changed on disk and then the Profiler topology must be restarted.

    - +

    The Profiler runs as an independent Storm topology. The configuration for the Profiler topology is stored in local filesystem at $METRON_HOME/config/profiler.properties. After changing these values, the Profiler topology must be restarted for the changes to take effect.

    - - + + + + + + + + + + + + + + + + - - - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + + + + +
    Setting Description
    profiler.input.topic The name of the input Kafka topic.
    profiler.output.topic The name of the output Kafka topic.
    profiler.period.duration The duration of each profile period.
    Setting Description
    profiler.period.duration.units The units used to specify the profiler.period.duration.
    profiler.input.topic The name of the Kafka topic from which to consume data.
    profiler.window.duration The duration of each profile window.
    profiler.output.topic The name of the Kafka topic to which profile data is written. Only used with profiles that define the triage result field.
    profiler.window.duration.units The units used to specify the profiler.window.duration.
    profiler.period.duration The duration of each profile period.
    profiler.window.lag The maximum time lag for timestamps.
    profiler.period.duration.units The units used to specify the profiler.period.duration.
    profiler.window.lag.units The units used to specify the profiler.window.lag.
    profiler.workers The number of worker processes for the topology.
    profiler.workers The number of worker processes for the topology.
    profiler.executors The number of executors to spawn per component.
    profiler.executors The number of executors to spawn per component.
    profiler.ttl If a message has not been applied to a Profile in this period of time, the Profile will be forgotten and its resources will be cleaned up.
    profiler.ttl If a message has not been applied to a Profile in this period of time, the Profile will be forgotten and its resources will be cleaned up.
    profiler.ttl.units The units used to specify the profiler.ttl.
    profiler.ttl.units The units used to specify the profiler.ttl.
    profiler.hbase.salt.divisor A salt is prepended to the row key to help prevent hotspotting.
    profiler.hbase.salt.divisor A salt is prepended to the row key to help prevent hot-spotting.
    profiler.hbase.table The name of the HBase table that profiles are written to.
    profiler.hbase.table The name of the HBase table that profiles are written to.
    profiler.hbase.column.family The column family used to store profiles.
    profiler.hbase.column.family The column family used to store profiles.
    profiler.hbase.batch The number of puts that are written to HBase in a single batch.
    profiler.hbase.batch The number of puts that are written to HBase in a single batch.
    profiler.hbase.flush.interval.seconds The maximum number of seconds between batch writes to HBase.
    profiler.hbase.flush.interval.seconds The maximum number of seconds between batch writes to HBase.
    topology.kryo.register Storm will use Kryo serialization for these classes.

    profiler.input.topic

    Default: indexing

    -

    The name of the Kafka topic from which to consume data. By default, the Profiler consumes data from the indexing topic so that it has access to fully enriched telemetry.

    +

    The name of the Kafka topic from which to consume data. By default, the Profiler consumes data from the indexing topic so that it has access to fully enriched telemetry.

    profiler.output.topic

    Default: enrichments

    -

    The name of the Kafka topic to which profile data is written. This property is only applicable to profiles that define the result triage field. This allows Profile data to be selectively triaged like any other source of telemetry in Metron.

    +

    The name of the Kafka topic to which profile data is written. This property is only applicable to profiles that define the result triage field. This allows Profile data to be selectively triaged like any other source of telemetry in Metron.

    profiler.period.duration

    Default: 15

    -

    The duration of each profile period. This value should be defined along with profiler.period.duration.units.

    -

    Important: To read a profile using the Profiler Client, the Profiler Client’s profiler.client.period.duration property must match this value. Otherwise, the Profiler Client will be unable to read the profile data.

    +

    The duration of each profile period. This value should be defined along with profiler.period.duration.units.

    +

    Important: To read a profile using the Profiler Client, the Profiler Client’s profiler.client.period.duration property must match this value. Otherwise, the Profiler Client will be unable to read the profile data.

    profiler.period.duration.units

    Default: MINUTES

    -

    The units used to specify the profiler.period.duration. This value should be defined along with profiler.period.duration.

    -

    Important: To read a profile using the Profiler Client, the Profiler Client’s profiler.client.period.duration.units property must match this value. Otherwise, the Profiler Client will be unable to read the profile data.

    +

    The units used to specify the profiler.period.duration. This value should be defined along with profiler.period.duration.

    +

    Important: To read a profile using the Profiler Client, the Profiler Client’s profiler.client.period.duration.units property must match this value. Otherwise, the Profiler Client will be unable to read the profile data.

    +
    +

    profiler.window.duration

    +

    Default: 30

    +

    The duration of each profile window. Telemetry that arrives within a slice of time is processed within a single window.

    +

    Many windows of telemetry will be processed during a single profile period. This does not change the output of the Profiler, it only changes how the Profiler processes data. The window defines how much data the Profiler processes in a single pass.

    +

    This value should be defined along with profiler.window.duration.units.

    +

    This value must be less than the period duration as defined by profiler.period.duration and profiler.period.duration.units.

    +
    +

    profiler.window.duration.units

    +

    Default: SECONDS

    +

    The units used to specify the profiler.window.duration. This value should be defined along with profiler.window.duration.

    +
    +

    profiler.window.lag

    +

    Default: 1

    +

    The maximum time lag for timestamps. Timestamps cannot arrive out-of-order by more than this amount. This value should be defined along with profiler.window.lag.units.

    +
    +

    profiler.window.lag.units

    +

    Default: SECONDS

    +

    The units used to specify the profiler.window.lag. This value should be defined along with profiler.window.lag.

    profiler.workers

    Default: 1

    -

    The number of worker processes to create for the Profiler topology. This property is useful for performance tuning the Profiler.

    +

    The number of worker processes to create for the Profiler topology. This property is useful for performance tuning the Profiler.

    profiler.executors

    Default: 0

    -

    The number of executors to spawn per component for the Profiler topology. This property is useful for performance tuning the Profiler.

    +

    The number of executors to spawn per component for the Profiler topology. This property is useful for performance tuning the Profiler.

    profiler.ttl

    Default: 30

    If a message has not been applied to a Profile in this period of time, the Profile will be terminated and its resources will be cleaned up. This value should be defined along with profiler.ttl.units.

    -

    This time-to-live does not affect the persisted Profile data in HBase. It only affects the state stored in memory during the execution of the latest profile period. This state will be deleted if the time-to-live is exceeded.

    +

    This time-to-live does not affect the persisted Profile data in HBase. It only affects the state stored in memory during the execution of the latest profile period. This state will be deleted if the time-to-live is exceeded.

    profiler.ttl.units

    Default: MINUTES

    @@ -955,11 +848,11 @@

    profiler.ttl.units

    profiler.hbase.salt.divisor

    Default: 1000

    -

    A salt is prepended to the row key to help prevent hotspotting. This constant is used to generate the salt. This constant should be roughly equal to the number of nodes in the Hbase cluster to ensure even distribution of data.

    +

    A salt is prepended to the row key to help prevent hotspotting. This constant is used to generate the salt. This constant should be roughly equal to the number of nodes in the Hbase cluster to ensure even distribution of data.

    profiler.hbase.table

    Default: profiler

    -

    The name of the HBase table that profile data is written to. The Profiler expects that the table exists and is writable. It will not create the table.

    +

    The name of the HBase table that profile data is written to. The Profiler expects that the table exists and is writable. It will not create the table.

    profiler.hbase.column.family

    Default: P

    @@ -971,15 +864,37 @@

    profiler.hbase.batch

    profiler.hbase.flush.interval.seconds

    Default: 30

    -

    The maximum number of seconds between batch writes to HBase.

    +

    The maximum number of seconds between batch writes to HBase.

    +
    +

    topology.kryo.register

    +

    Default:

    + +
    +
    +
    [ org.apache.metron.profiler.ProfileMeasurement, \
    +  org.apache.metron.profiler.ProfilePeriod, \
    +  org.apache.metron.common.configuration.profiler.ProfileResult, \
    +  org.apache.metron.common.configuration.profiler.ProfileResultExpressions, \
    +  org.apache.metron.common.configuration.profiler.ProfileTriageExpressions, \
    +  org.apache.metron.common.configuration.profiler.ProfilerConfig, \
    +  org.apache.metron.common.configuration.profiler.ProfileConfig, \
    +  org.json.simple.JSONObject, \
    +  java.util.LinkedHashMap, \
    +  org.apache.metron.statistics.OnlineStatisticsProvider ]
    +
    + +

    Storm will use Kryo serialization for these classes. Kryo serialization is more performant than Java serialization, in most cases.

    +

    For these classes, Storm will uses Kryo’s FieldSerializer as defined in the Storm Serialization docs. For all other classes not in this list, Storm defaults to using Java serialization which is slower and not recommended for a production topology.

    +

    This value should only need altered if you have defined a profile that results in a non-primitive, user-defined type that is not in this list. If the class is not defined in this list, Java serialization will be used and the class must adhere to Java’s serialization requirements.

    +

    The performance of the entire Profiler topology can be negatively impacted if any profile produces results that undergo Java serialization.

    Examples

    The following examples are intended to highlight the functionality provided by the Profiler. Try out these examples easily in the Stellar Shell as described in the Creating Profiles section.

    -

    These examples assume a fictitious input message stream that looks like the following.

    +

    These examples assume a fictitious input message stream that looks like the following.

    -
    -
    -
    [Stellar]>>> msgs := SHELL_EDIT()
    +
    +
    +
    [Stellar]>>> msgs := SHELL_EDIT()
     [Stellar]>>> msgs
     [
       {
    @@ -1002,13 +917,14 @@ 

    Examples

    } ]
    +

    Example 1

    The total number of bytes of HTTP data for each host. The following configuration would be used to generate this profile.

    -
    -
    -
    {
    +
    +
    +
    {
       "profiles": [
         {
           "profile": "example1",
    @@ -1026,31 +942,25 @@ 

    Example 1

    ] }
    -

    This creates a profile…

    +

    This creates a profile…

      - +
    • Named ‘example1’
    • -
    • That for each IP source address
    • -
    • Only if the ‘protocol’ field equals ‘HTTP’
    • -
    • Initializes a counter ‘total_bytes’ to zero
    • -
    • Adds to ‘total_bytes’ the value of the message’s ‘bytes_in’ field
    • -
    • Returns ‘total_bytes’ as the result
    • -
    • The profile data will expire in 30 days

    Example 2

    The ratio of DNS traffic to HTTP traffic for each host. The following configuration would be used to generate this profile.

    -
    -
    -
    {
    +
    +
    +
    {
       "profiles": [
         {
           "profile": "example2",
    @@ -1069,29 +979,24 @@ 

    Example 2

    ] }
    -

    This creates a profile…

    +

    This creates a profile…

      - +
    • Named ‘example2’
    • -
    • That for each IP source address
    • -
    • Only if the ‘protocol’ field equals ‘HTTP’ or ‘DNS’
    • -
    • Accumulates the number of DNS requests
    • -
    • Accumulates the number of HTTP requests
    • -
    • Returns the ratio of these as the result

    Example 3

    The average of the length field of HTTP traffic. The following configuration would be used to generate this profile.

    -
    -
    -
    {
    +
    +
    +
    {
       "profiles": [
         {
           "profile": "example3",
    @@ -1103,28 +1008,24 @@ 

    Example 3

    ] }
    -

    This creates a profile…

    +

    This creates a profile…

      - +
    • Named ‘example3’
    • -
    • That for each IP source address
    • -
    • Only if the ‘protocol’ field is ‘HTTP’
    • -
    • Adds the length field from each message
    • -
    • Calculates the average as the result

    Example 4

    -

    It is important to note that the Profiler can persist any serializable Object, not just numeric values. An alternative to the previous example could take advantage of this.

    -

    Instead of storing the mean of the lengths, the profile could store a statistical summarization of the lengths. This summary can then be used at a later time to calculate the mean, min, max, percentiles, or any other sensible metric. This provides a much greater degree of flexibility.

    +

    It is important to note that the Profiler can persist any serializable Object, not just numeric values. An alternative to the previous example could take advantage of this.

    +

    Instead of storing the mean of the lengths, the profile could store a statistical summarization of the lengths. This summary can then be used at a later time to calculate the mean, min, max, percentiles, or any other sensible metric. This provides a much greater degree of flexibility.

    -
    -
    -
    {
    +
    +
    +
    {
       "profiles": [
         {
           "profile": "example4",
    @@ -1136,94 +1037,101 @@ 

    Example 4

    ] }
    +

    The following Stellar REPL session shows how you might use this summary to calculate different metrics with the same underlying profile data. It is assumed that the PROFILE_GET client is configured as described here.

    Retrieve the last 30 minutes of profile measurements for a specific host.

    -
    -
    -
    $ bin/stellar -z node1:2181
    +
    +
    +
    $ bin/stellar -z node1:2181
     
     [Stellar]>>> stats := PROFILE_GET( "example4", "10.0.0.1", PROFILE_FIXED(30, "MINUTES"))
     [Stellar]>>> stats
     [org.apache.metron.common.math.stats.OnlineStatisticsProvider@79fe4ab9, ...]
     
    +

    Calculate different metrics with the same profile data.

    -
    -
    -
    [Stellar]>>> STATS_MEAN( GET_FIRST( stats))
    +
    +
    +
    [Stellar]>>> STATS_MEAN( GET_FIRST( stats))
     15979.0625
     
     [Stellar]>>> STATS_PERCENTILE( GET_FIRST(stats), 90)
     30310.958
     
    +

    Merge all of the profile measurements over the past 30 minutes into a single summary and calculate the 90th percentile.

    -
    -
    -
    [Stellar]>>> merged := STATS_MERGE( stats)
    +
    +
    +
    [Stellar]>>> merged := STATS_MERGE( stats)
     [Stellar]>>> STATS_PERCENTILE(merged, 90)
     29810.992
     
    +

    More information on accessing profile data can be found in the Profiler Client.

    More information on using the STATS_* functions in Stellar can be found here.

    Implementation

    Key Classes

    -
      - +
    • -

      ProfileMeasurement - Represents a single data point within a Profile. A Profile is effectively a time series. To this end a Profile is composed of many ProfileMeasurement values which in aggregate form a time series.

    • - + +

      ProfileMeasurement - Represents a single data point within a Profile. A Profile is effectively a time series. To this end a Profile is composed of many ProfileMeasurement values which in aggregate form a time series.

      +
    • -

      ProfilePeriod - The Profiler captures one ProfileMeasurement each ProfilePeriod. A ProfilePeriod will occur at fixed, deterministic points in time. This allows for efficient retrieval of profile data.

    • - + +

      ProfilePeriod - The Profiler captures one ProfileMeasurement each ProfilePeriod. A ProfilePeriod will occur at fixed, deterministic points in time. This allows for efficient retrieval of profile data.

      +
    • -

      RowKeyBuilder - Builds row keys that can be used to read or write profile data to HBase.

    • - + +

      RowKeyBuilder - Builds row keys that can be used to read or write profile data to HBase.

      +
    • -

      ColumnBuilder - Defines the columns of data stored with a profile measurement.

    • - + +

      ColumnBuilder - Defines the columns of data stored with a profile measurement.

      +
    • -

      ProfileHBaseMapper - Defines for the HBaseBolt how profile measurements are stored in HBase. This class leverages a RowKeyBuilder and ColumnBuilder.

    • + +

      ProfileHBaseMapper - Defines for the HBaseBolt how profile measurements are stored in HBase. This class leverages a RowKeyBuilder and ColumnBuilder.

      +

    Storm Topology

    The Profiler is implemented as a Storm topology using the following bolts and spouts.

    -
      - +
    • -

      KafkaSpout - A spout that consumes messages from a single Kafka topic. In most cases, the Profiler topology will consume messages from the indexing topic. This topic contains fully enriched messages that are ready to be indexed. This ensures that profiles can take advantage of all the available data elements.

    • - + +

      KafkaSpout - A spout that consumes messages from a single Kafka topic. In most cases, the Profiler topology will consume messages from the indexing topic. This topic contains fully enriched messages that are ready to be indexed. This ensures that profiles can take advantage of all the available data elements.

      +
    • -

      ProfileSplitterBolt - The bolt responsible for filtering incoming messages and directing each to the one or more downstream bolts that are responsible for building a profile. Each message may be needed by 0, 1 or even many profiles. Each emitted tuple contains the ‘resolved’ entity name, the profile definition, and the input message.

    • - + +

      ProfileSplitterBolt - The bolt responsible for filtering incoming messages and directing each to the one or more downstream bolts that are responsible for building a profile. Each message may be needed by 0, 1 or even many profiles. Each emitted tuple contains the ‘resolved’ entity name, the profile definition, and the input message.

      +
    • -

      ProfileBuilderBolt - This bolt maintains all of the state required to build a profile. When the window period expires, the data is summarized as a ProfileMeasurement, all state is flushed, and the ProfileMeasurement is emitted. Each instance of this bolt is responsible for maintaining the state for a single Profile-Entity pair.

    • - + +

      ProfileBuilderBolt - This bolt maintains all of the state required to build a profile. When the window period expires, the data is summarized as a ProfileMeasurement, all state is flushed, and the ProfileMeasurement is emitted. Each instance of this bolt is responsible for maintaining the state for a single Profile-Entity pair.

      +
    • -

      HBaseBolt - A bolt that is responsible for writing to HBase. Most profiles will be flushed every 15 minutes or so. If each ProfileBuilderBolt were responsible for writing to HBase itself, there would be little to no opportunity to optimize these writes. By aggregating the writes from multiple Profile-Entity pairs these writes can be batched, for example.

    • -
    -
    -
    -
    +

    HBaseBolt - A bolt that is responsible for writing to HBase. Most profiles will be flushed every 15 minutes or so. If each ProfileBuilderBolt were responsible for writing to HBase itself, there would be little to no opportunity to optimize these writes. By aggregating the writes from multiple Profile-Entity pairs these writes can be batched, for example.

    + +
    +
    +
    +

    -
    -
    -
    Copyright © 2018 - The Apache Software Foundation. - All Rights Reserved. - +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    - - - -
    diff --git a/site/current-book/metron-analytics/metron-statistics/HLLP.html b/site/current-book/metron-analytics/metron-statistics/HLLP.html index f56beba219..fdbf631522 100644 --- a/site/current-book/metron-analytics/metron-statistics/HLLP.html +++ b/site/current-book/metron-analytics/metron-statistics/HLLP.html @@ -1,234 +1,109 @@ - + Metron – HyperLogLogPlus - + - - - - - - - - - - - - - - -
    -
    +
    -

    Table Cardinality 200-1000, step by 200

    -
    +

    Table Cardinality 200-1000, step by 200


    Options Used

    -
    -
    -
    num trials: 5000
    +
    +
    +
    num trials: 5000
     card min: 200
     card max: 1000
     card step: 200
    @@ -278,2735 +152,1288 @@ 

    Options Used

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    card sp p err l/m/h/std (% of actual) time l/m/h/std (ms) size l/m/h/std (b)
    200 4 4 0.000 / 17.000 / 180.000 / 17.470 0.070 / 0.118 / 10.092 / 0.204 218 / 220 / 220 / 1
    200 8 4 0.000 / 17.000 / 209.500 / 18.060 0.071 / 0.085 / 8.786 / 0.128 219 / 221 / 221 / 1
    200 8 8 0.000 / 3.500 / 21.500 / 3.185 0.082 / 0.085 / 8.375 / 0.119 531 / 587 / 637 / 14
    200 12 4 0.000 / 17.000 / 174.000 / 17.376 0.070 / 0.085 / 8.708 / 0.128 219 / 221 / 221 / 1
    200 12 8 0.000 / 3.000 / 25.500 / 2.847 0.086 / 0.119 / 8.984 / 0.151 353 / 372 / 627 / 74
    200 12 12 0.000 / 0.500 / 5.500 / 0.659 0.082 / 0.096 / 17.208 / 0.243 775 / 816 / 834 / 9
    200 16 4 0.000 / 17.500 / 172.000 / 16.622 0.068 / 0.075 / 9.553 / 0.137 220 / 222 / 222 / 1
    200 16 8 0.000 / 3.500 / 18.000 / 2.899 0.095 / 0.118 / 0.663 / 0.031 354 / 373 / 390 / 5
    200 16 12 0.000 / 0.000 / 1.500 / 0.276 0.085 / 0.108 / 13.977 / 0.199 802 / 833 / 852 / 6
    200 16 16 0.000 / 0.000 / 2.500 / 0.279 0.079 / 0.085 / 0.271 / 0.017 990 / 1027 / 1044 / 6
    200 20 4 0.000 / 17.000 / 209.500 / 17.424 0.068 / 0.072 / 0.250 / 0.014 221 / 223 / 223 / 1
    200 20 8 0.000 / 3.500 / 18.000 / 2.944 0.096 / 0.106 / 13.581 / 0.192 357 / 374 / 388 / 5
    200 20 12 0.000 / 0.000 / 1.000 / 0.066 0.084 / 0.088 / 1.096 / 0.019 915 / 945 / 972 / 8
    200 20 16 0.000 / 0.000 / 0.500 / 0.070 0.083 / 0.087 / 10.272 / 0.145 912 / 953 / 982 / 8
    200 20 20 0.000 / 0.000 / 1.000 / 0.069 0.079 / 0.081 / 0.210 / 0.017 1028 / 1056 / 1058 / 2
    200 24 4 0.000 / 17.500 / 136.000 / 16.589 0.068 / 0.071 / 0.952 / 0.025 221 / 223 / 223 / 1
    200 24 8 0.000 / 3.500 / 18.000 / 2.955 0.095 / 0.106 / 10.387 / 0.148 353 / 373 / 390 / 5
    200 24 12 0.000 / 0.000 / 0.500 / 0.016 0.082 / 0.083 / 0.235 / 0.014 1035 / 1048 / 1056 / 3
    200 24 16 0.000 / 0.000 / 0.500 / 0.012 0.082 / 0.084 / 10.904 / 0.154 1038 / 1051 / 1059 / 3
    200 24 20 0.000 / 0.000 / 0.500 / 0.010 0.082 / 0.085 / 0.410 / 0.019 1049 / 1064 / 1082 / 5
    200 24 24 0.000 / 0.000 / 0.500 / 0.023 0.079 / 0.084 / 11.926 / 0.168 1247 / 1264 / 1275 / 4
    200 28 4 0.000 / 17.500 / 229.000 / 17.294 0.068 / 0.072 / 0.369 / 0.015 222 / 224 / 224 / 1
    200 28 8 83.000 / 83.000 / 84.000 / 0.118 0.093 / 0.098 / 10.918 / 0.157 272 / 276 / 278 / 1
    200 28 12 0.000 / 0.000 / 0.500 / 0.016 0.082 / 0.083 / 10.157 / 0.143 1032 / 1067 / 1075 / 3
    200 28 16 0.000 / 0.000 / 0.500 / 0.007 0.082 / 0.083 / 0.617 / 0.020 1058 / 1069 / 1077 / 3
    200 28 20 0.000 / 0.000 / 0.500 / 0.010 0.082 / 0.085 / 11.619 / 0.165 1060 / 1071 / 1080 / 3
    200 28 24 0.000 / 0.000 / 0.500 / 0.007 0.083 / 0.085 / 0.516 / 0.022 1065 / 1083 / 1100 / 4
    200 28 28 0.000 / 0.000 / 0.500 / 0.019 0.080 / 0.087 / 11.278 / 0.160 1250 / 1267 / 1278 / 4
    200 32 4 0.000 / 18.000 / 175.500 / 17.157 0.068 / 0.078 / 0.223 / 0.019 222 / 224 / 224 / 1
    200 32 8 99.000 / 99.000 / 99.000 / 0.000 0.093 / 0.107 / 11.695 / 0.167 258 / 258 / 258 / 0
    200 32 12 0.000 / 0.000 / 0.500 / 0.014 0.081 / 0.084 / 8.906 / 0.126 1060 / 1071 / 1075 / 2
    200 32 16 0.000 / 0.000 / 0.500 / 0.010 0.082 / 0.085 / 1.458 / 0.027 1061 / 1073 / 1077 / 2
    200 32 20 0.000 / 0.000 / 0.500 / 0.012 0.082 / 0.084 / 10.499 / 0.148 1065 / 1074 / 1079 / 2
    200 32 24 0.000 / 0.000 / 0.500 / 0.012 0.082 / 0.085 / 0.420 / 0.020 1066 / 1075 / 1082 / 2
    200 32 28 0.000 / 0.000 / 0.500 / 0.016 0.082 / 0.086 / 8.753 / 0.124 1076 / 1088 / 1102 / 4
    200 32 32 0.000 / 0.000 / 0.500 / 0.010 0.080 / 0.081 / 13.248 / 0.188 1249 / 1268 / 1279 / 4
    400 4 4 0.000 / 17.500 / 175.250 / 17.530 0.136 / 0.142 / 0.591 / 0.035 218 / 220 / 220 / 0
    400 8 4 0.000 / 17.000 / 148.500 / 17.174 0.136 / 0.156 / 12.882 / 0.241 219 / 221 / 221 / 0
    400 8 8 0.000 / 3.500 / 21.250 / 3.215 0.159 / 0.186 / 10.396 / 0.151 375 / 387 / 802 / 62
    400 12 4 0.000 / 17.750 / 166.000 / 17.363 0.135 / 0.142 / 11.607 / 0.165 219 / 221 / 221 / 0
    400 12 8 0.000 / 3.250 / 23.750 / 3.133 0.166 / 0.179 / 8.713 / 0.130 376 / 387 / 401 / 3
    400 12 12 0.000 / 0.750 / 4.250 / 0.706 0.159 / 0.163 / 10.537 / 0.189 1334 / 1387 / 1434 / 14
    400 16 4 0.000 / 17.125 / 163.250 / 17.208 0.135 / 0.138 / 12.403 / 0.178 220 / 222 / 222 / 0
    400 16 8 0.000 / 3.250 / 23.500 / 3.126 0.165 / 0.179 / 9.985 / 0.147 378 / 388 / 401 / 3
    400 16 12 0.000 / 0.250 / 1.500 / 0.195 0.166 / 0.173 / 10.434 / 0.150 1414 / 1446 / 1475 / 8
    400 16 16 0.000 / 0.250 / 1.750 / 0.194 0.160 / 0.177 / 1.300 / 0.048 1761 / 1798 / 1825 / 8
    400 20 4 0.000 / 17.750 / 270.750 / 17.592 0.135 / 0.149 / 8.814 / 0.128 221 / 223 / 223 / 0
    400 20 8 0.000 / 3.500 / 23.000 / 3.103 0.165 / 0.183 / 9.271 / 0.139 379 / 389 / 398 / 3
    400 20 12 0.000 / 0.000 / 0.500 / 0.066 0.164 / 0.182 / 11.093 / 0.162 1617 / 1652 / 1683 / 10
    400 20 16 0.000 / 0.000 / 0.500 / 0.070 0.166 / 0.170 / 8.676 / 0.128 1624 / 1665 / 1706 / 10
    400 20 20 0.000 / 0.000 / 0.750 / 0.069 0.159 / 0.162 / 12.846 / 0.183 1840 / 1853 / 1856 / 2
    400 24 4 0.000 / 16.750 / 174.750 / 16.786 0.135 / 0.145 / 8.586 / 0.128 221 / 223 / 223 / 0
    400 24 8 0.000 / 3.500 / 24.500 / 3.090 0.165 / 0.179 / 11.344 / 0.164 377 / 389 / 399 / 3
    400 24 12 0.000 / 0.000 / 0.250 / 0.016 0.164 / 0.183 / 10.708 / 0.159 1828 / 1841 / 1852 / 4
    400 24 16 0.000 / 0.000 / 0.250 / 0.017 0.164 / 0.172 / 11.180 / 0.161 1830 / 1844 / 1855 / 4
    400 24 20 0.000 / 0.000 / 0.250 / 0.015 0.166 / 0.170 / 9.589 / 0.140 1843 / 1868 / 1890 / 6
    400 24 24 0.000 / 0.000 / 0.250 / 0.022 0.160 / 0.162 / 9.137 / 0.134 2213 / 2232 / 2247 / 5
    400 28 4 0.000 / 18.250 / 164.000 / 16.587 0.135 / 0.144 / 14.520 / 0.209 222 / 224 / 224 / 0
    400 28 8 33.000 / 47.750 / 56.750 / 3.588 0.164 / 0.168 / 1.305 / 0.052 355 / 375 / 394 / 5
    400 28 12 0.000 / 0.000 / 0.250 / 0.006 0.165 / 0.178 / 11.264 / 0.167 1837 / 1848 / 1854 / 3
    400 28 16 0.000 / 0.000 / 0.250 / 0.014 0.164 / 0.167 / 8.689 / 0.130 1838 / 1850 / 1857 / 3
    400 28 20 0.000 / 0.000 / 0.250 / 0.011 0.164 / 0.167 / 10.679 / 0.159 1839 / 1852 / 1863 / 3
    400 28 24 0.000 / 0.000 / 0.250 / 0.011 0.166 / 0.175 / 12.887 / 0.190 1857 / 1875 / 1896 / 5
    400 28 28 0.000 / 0.000 / 0.250 / 0.015 0.160 / 0.196 / 1.478 / 0.071 2217 / 2235 / 2252 / 5
    400 32 4 0.000 / 17.500 / 183.750 / 19.308 0.135 / 0.142 / 9.949 / 0.148 222 / 224 / 224 / 0
    400 32 8 46.500 / 56.250 / 63.250 / 2.194 0.164 / 0.181 / 1.209 / 0.063 349 / 370 / 390 / 5
    400 32 12 0.000 / 0.000 / 0.250 / 0.012 0.164 / 0.171 / 11.529 / 0.170 1837 / 1848 / 1854 / 3
    400 32 16 0.000 / 0.000 / 0.250 / 0.016 0.164 / 0.167 / 10.276 / 0.154 1836 / 1850 / 1856 / 3
    400 32 20 0.000 / 0.000 / 0.250 / 0.015 0.164 / 0.184 / 11.611 / 0.227 1839 / 1851 / 1858 / 3
    400 32 24 0.000 / 0.000 / 0.250 / 0.012 0.165 / 0.171 / 9.313 / 0.143 1842 / 1853 / 1862 / 3
    400 32 28 0.000 / 0.000 / 0.250 / 0.013 0.166 / 0.180 / 10.708 / 0.162 1860 / 1877 / 1900 / 5
    400 32 32 0.000 / 0.000 / 0.250 / 0.014 0.160 / 0.166 / 1.205 / 0.057 2217 / 2235 / 2249 / 5
    600 4 4 0.000 / 17.333 / 219.667 / 17.222 0.202 / 0.240 / 13.390 / 0.237 218 / 220 / 220 / 0
    600 8 4 0.000 / 17.417 / 231.333 / 17.340 0.202 / 0.224 / 9.662 / 0.150 220 / 221 / 221 / 0
    600 8 8 0.000 / 3.500 / 24.333 / 3.240 0.234 / 0.271 / 11.443 / 0.216 382 / 392 / 403 / 3
    600 12 4 0.000 / 17.167 / 188.167 / 17.324 0.202 / 0.210 / 1.320 / 0.055 219 / 221 / 221 / 0
    600 12 8 0.000 / 3.500 / 23.833 / 3.243 0.235 / 0.246 / 10.821 / 0.164 382 / 392 / 403 / 3
    600 12 12 0.000 / 0.667 / 4.500 / 0.694 0.240 / 0.259 / 12.004 / 0.183 2015 / 2101 / 2178 / 21
    600 16 4 0.000 / 17.500 / 170.000 / 17.882 0.202 / 0.218 / 9.208 / 0.140 221 / 222 / 222 / 0
    600 16 8 0.000 / 3.667 / 22.667 / 3.276 0.234 / 0.251 / 12.301 / 0.237 383 / 393 / 408 / 3
    600 16 12 0.000 / 0.167 / 1.000 / 0.170 0.250 / 0.284 / 12.000 / 0.180 2199 / 2243 / 2282 / 12
    600 16 16 0.000 / 0.167 / 1.167 / 0.171 0.239 / 0.291 / 21.163 / 0.333 2811 / 2859 / 2901 / 13
    600 20 4 0.000 / 17.667 / 176.667 / 18.162 0.202 / 0.223 / 16.405 / 0.275 221 / 223 / 223 / 0
    600 20 8 0.000 / 3.500 / 20.833 / 3.180 0.234 / 0.243 / 5.621 / 0.104 385 / 394 / 405 / 3
    600 20 12 0.000 / 0.000 / 0.500 / 0.066 0.246 / 0.281 / 19.279 / 0.390 2541 / 2604 / 2663 / 15
    600 20 16 0.000 / 0.000 / 0.667 / 0.071 0.248 / 0.258 / 24.627 / 0.387 2569 / 2627 / 2682 / 15
    600 20 20 0.000 / 0.000 / 0.500 / 0.069 0.239 / 0.246 / 13.606 / 0.248 2938 / 2954 / 2972 / 3
    600 24 4 0.000 / 17.333 / 210.333 / 18.157 0.202 / 0.218 / 11.991 / 0.180 222 / 223 / 223 / 0
    600 24 8 0.000 / 3.667 / 21.167 / 3.184 0.234 / 0.258 / 11.130 / 0.238 385 / 394 / 406 / 3
    600 24 12 0.000 / 0.000 / 0.167 / 0.017 0.246 / 0.272 / 12.032 / 0.191 2912 / 2935 / 2954 / 5
    600 24 16 0.000 / 0.000 / 0.167 / 0.019 0.246 / 0.268 / 19.358 / 0.282 2916 / 2940 / 2959 / 6
    600 24 20 0.000 / 0.000 / 0.167 / 0.015 0.248 / 0.259 / 20.293 / 0.343 2948 / 2980 / 3009 / 9
    600 24 24 0.000 / 0.000 / 0.167 / 0.017 0.239 / 0.252 / 11.721 / 0.230 3586 / 3618 / 3643 / 7
    600 28 4 0.000 / 17.667 / 182.667 / 17.309 0.202 / 0.210 / 11.957 / 0.177 223 / 224 / 224 / 0
    600 28 8 10.333 / 28.000 / 42.833 / 3.687 0.233 / 0.238 / 10.166 / 0.210 377 / 392 / 403 / 3
    600 28 12 0.000 / 0.000 / 0.333 / 0.013 0.246 / 0.252 / 9.907 / 0.158 3005 / 3024 / 3041 / 5
    600 28 16 0.000 / 0.000 / 0.167 / 0.012 0.246 / 0.256 / 18.673 / 0.273 3007 / 3026 / 3045 / 5
    600 28 20 0.000 / 0.000 / 0.167 / 0.011 0.246 / 0.283 / 17.762 / 0.355 3005 / 3029 / 3047 / 6
    600 28 24 0.000 / 0.000 / 0.167 / 0.011 0.248 / 0.254 / 8.821 / 0.138 3035 / 3065 / 3098 / 8
    600 28 28 0.000 / 0.000 / 0.167 / 0.011 0.239 / 0.242 / 12.171 / 0.177 3589 / 3621 / 3646 / 7
    600 32 4 0.000 / 17.333 / 200.000 / 18.294 0.202 / 0.205 / 9.036 / 0.138 223 / 224 / 224 / 0
    600 32 8 25.167 / 37.167 / 46.833 / 3.185 0.232 / 0.236 / 9.061 / 0.144 377 / 389 / 403 / 3
    600 32 12 0.000 / 0.000 / 0.167 / 0.013 0.246 / 0.256 / 11.119 / 0.169 3028 / 3043 / 3055 / 4
    600 32 16 0.000 / 0.000 / 0.167 / 0.010 0.246 / 0.257 / 11.557 / 0.213 3030 / 3045 / 3057 / 4
    600 32 20 0.000 / 0.000 / 0.167 / 0.011 0.246 / 0.266 / 20.353 / 0.295 3030 / 3047 / 3071 / 4
    600 32 24 0.000 / 0.000 / 0.167 / 0.012 0.246 / 0.270 / 11.461 / 0.183 3035 / 3050 / 3073 / 4
    600 32 28 0.000 / 0.000 / 0.167 / 0.013 0.248 / 0.260 / 11.755 / 0.242 3060 / 3085 / 3108 / 7
    600 32 32 0.000 / 0.000 / 0.167 / 0.012 0.239 / 0.248 / 10.380 / 0.157 3593 / 3621 / 3645 / 7
    800 4 4 0.000 / 17.250 / 188.250 / 17.248 0.269 / 0.280 / 10.818 / 0.212 219 / 220 / 220 / 0
    800 8 4 0.000 / 17.875 / 184.125 / 17.721 0.270 / 0.298 / 16.706 / 0.252 220 / 221 / 221 / 0
    800 8 8 0.000 / 3.625 / 22.000 / 3.420 0.303 / 0.315 / 12.489 / 0.243 386 / 395 / 406 / 3
    800 12 4 0.000 / 17.750 / 196.500 / 16.870 0.269 / 0.289 / 13.533 / 0.235 220 / 221 / 221 / 0
    800 12 8 0.000 / 3.750 / 25.875 / 3.359 0.303 / 0.330 / 18.306 / 0.365 386 / 395 / 408 / 3
    800 12 12 0.000 / 0.750 / 4.375 / 0.677 0.322 / 0.357 / 20.131 / 0.350 2449 / 2603 / 2694 / 27
    800 16 4 0.000 / 17.750 / 195.250 / 17.455 0.269 / 0.274 / 10.472 / 0.205 221 / 222 / 222 / 0
    800 16 8 0.000 / 3.750 / 20.375 / 3.357 0.302 / 0.308 / 10.637 / 0.165 386 / 396 / 409 / 3
    800 16 12 0.000 / 0.125 / 1.375 / 0.170 0.334 / 0.344 / 10.745 / 0.221 2712 / 2836 / 2882 / 15
    800 16 16 0.000 / 0.250 / 1.375 / 0.169 0.321 / 0.334 / 13.979 / 0.252 3390 / 3625 / 3668 / 19
    800 20 4 0.000 / 17.750 / 220.750 / 17.953 0.269 / 0.281 / 9.422 / 0.148 222 / 223 / 223 / 0
    800 20 8 0.000 / 3.750 / 21.875 / 3.305 0.302 / 0.358 / 24.073 / 0.435 387 / 397 / 408 / 3
    800 20 12 0.000 / 0.000 / 0.500 / 0.067 0.331 / 0.345 / 13.461 / 0.211 3249 / 3304 / 3360 / 17
    800 20 16 0.000 / 0.000 / 0.500 / 0.069 0.333 / 0.349 / 8.271 / 0.146 3190 / 3331 / 3392 / 17
    800 20 20 0.000 / 0.000 / 0.375 / 0.069 0.320 / 0.335 / 11.307 / 0.239 3539 / 3752 / 3771 / 5
    800 24 4 0.000 / 17.125 / 184.500 / 18.184 0.269 / 0.283 / 1.541 / 0.079 222 / 223 / 223 / 0
    800 24 8 0.000 / 3.625 / 23.125 / 3.301 0.302 / 0.317 / 10.845 / 0.169 388 / 397 / 409 / 3
    800 24 12 0.000 / 0.000 / 0.250 / 0.017 0.330 / 0.352 / 10.221 / 0.244 3703 / 3729 / 3749 / 6
    800 24 16 0.000 / 0.000 / 0.250 / 0.018 0.330 / 0.344 / 13.454 / 0.239 3711 / 3734 / 3753 / 6
    800 24 20 0.000 / 0.000 / 0.250 / 0.018 0.333 / 0.348 / 16.987 / 0.374 3751 / 3786 / 3826 / 10
    800 24 24 0.000 / 0.000 / 0.250 / 0.018 0.320 / 0.333 / 17.097 / 0.288 4567 / 4605 / 4630 / 8
    800 28 4 0.000 / 17.375 / 326.125 / 18.121 0.269 / 0.274 / 9.600 / 0.149 223 / 224 / 224 / 0
    800 28 8 0.375 / 19.875 / 34.500 / 4.445 0.302 / 0.313 / 10.025 / 0.181 387 / 397 / 409 / 3
    800 28 12 0.000 / 0.000 / 0.125 / 0.011 0.330 / 0.343 / 11.347 / 0.216 3797 / 3821 / 3839 / 6
    800 28 16 0.000 / 0.000 / 0.125 / 0.010 0.330 / 0.344 / 10.748 / 0.219 3801 / 3823 / 3843 / 6
    800 28 20 0.000 / 0.000 / 0.125 / 0.011 0.330 / 0.355 / 15.268 / 0.314 3802 / 3827 / 3845 / 6
    800 28 24 0.000 / 0.000 / 0.125 / 0.011 0.334 / 0.360 / 11.192 / 0.243 3841 / 3874 / 3905 / 9
    800 28 28 0.000 / 0.000 / 0.250 / 0.011 0.321 / 0.334 / 1.757 / 0.095 4575 / 4609 / 4635 / 8
    800 32 4 0.000 / 17.125 / 161.000 / 18.370 0.269 / 0.279 / 20.700 / 0.344 223 / 224 / 224 / 0
    800 32 8 10.500 / 27.750 / 39.500 / 3.883 0.301 / 0.333 / 18.781 / 0.332 385 / 395 / 406 / 3
    800 32 12 0.000 / 0.000 / 0.250 / 0.011 0.330 / 0.371 / 18.883 / 0.317 3823 / 3840 / 3853 / 4
    800 32 16 0.000 / 0.000 / 0.125 / 0.011 0.330 / 0.353 / 9.319 / 0.195 3824 / 3842 / 3855 / 4
    800 32 20 0.000 / 0.000 / 0.125 / 0.012 0.330 / 0.353 / 15.582 / 0.305 3826 / 3843 / 3859 / 4
    800 32 24 0.000 / 0.000 / 0.125 / 0.013 0.330 / 0.349 / 11.346 / 0.234 3830 / 3847 / 3862 / 5
    800 32 28 0.000 / 0.000 / 0.250 / 0.013 0.333 / 0.368 / 14.482 / 0.309 3866 / 3894 / 3925 / 8
    800 32 32 0.000 / 0.000 / 0.125 / 0.012 0.320 / 0.335 / 17.771 / 0.295 4576 / 4608 / 4633 / 8
    1000 4 4 0.000 / 17.800 / 187.500 / 18.576 0.337 / 0.374 / 10.384 / 0.179 219 / 220 / 220 / 0
    1000 8 4 0.000 / 17.600 / 181.100 / 18.035 0.336 / 0.372 / 13.220 / 0.262 220 / 221 / 221 / 0
    1000 8 8 0.000 / 3.900 / 23.100 / 3.425 0.371 / 0.398 / 9.495 / 0.175 386 / 398 / 409 / 3
    1000 12 4 0.000 / 17.600 / 178.900 / 17.559 0.336 / 0.351 / 11.176 / 0.265 220 / 221 / 221 / 0
    1000 12 8 0.000 / 3.800 / 22.700 / 3.438 0.371 / 0.392 / 10.942 / 0.188 387 / 398 / 411 / 3
    1000 12 12 0.000 / 0.800 / 4.200 / 0.684 0.403 / 0.443 / 11.219 / 0.279 2971 / 3242 / 3364 / 39
    1000 16 4 0.000 / 17.600 / 184.300 / 17.148 0.336 / 0.368 / 21.656 / 0.350 221 / 222 / 222 / 0
    1000 16 8 0.000 / 3.800 / 21.900 / 3.350 0.369 / 0.385 / 15.840 / 0.277 388 / 399 / 412 / 3
    1000 16 12 0.000 / 0.200 / 1.200 / 0.174 0.422 / 0.438 / 16.035 / 0.335 3428 / 3530 / 3628 / 16
    1000 16 16 0.000 / 0.200 / 1.200 / 0.173 0.405 / 0.420 / 13.370 / 0.305 4314 / 4484 / 4573 / 20
    1000 20 4 0.000 / 17.600 / 223.000 / 16.968 0.336 / 0.372 / 17.746 / 0.392 222 / 223 / 223 / 0
    1000 20 8 0.000 / 3.800 / 21.400 / 3.384 0.369 / 0.419 / 16.486 / 0.257 389 / 400 / 412 / 3
    1000 20 12 0.000 / 0.000 / 0.400 / 0.068 0.417 / 0.446 / 12.313 / 0.265 3954 / 4099 / 4158 / 18
    1000 20 16 0.000 / 0.000 / 0.500 / 0.069 0.422 / 0.439 / 11.284 / 0.262 4016 / 4134 / 4211 / 19
    1000 20 20 0.000 / 0.000 / 0.600 / 0.069 0.404 / 0.429 / 16.987 / 0.335 4517 / 4641 / 4651 / 5
    1000 24 4 0.000 / 17.600 / 226.700 / 17.761 0.339 / 0.351 / 12.804 / 0.275 222 / 223 / 223 / 0
    1000 24 8 0.000 / 3.800 / 24.100 / 3.403 0.371 / 0.406 / 15.710 / 0.298 390 / 400 / 412 / 3
    1000 24 12 0.000 / 0.000 / 0.200 / 0.018 0.417 / 0.449 / 12.253 / 0.294 4494 / 4614 / 4636 / 7
    1000 24 16 0.000 / 0.000 / 0.100 / 0.018 0.417 / 0.434 / 11.046 / 0.254 4594 / 4620 / 4641 / 7
    1000 24 20 0.000 / 0.000 / 0.200 / 0.019 0.422 / 0.458 / 13.433 / 0.270 4645 / 4682 / 4722 / 11
    1000 24 24 0.000 / 0.000 / 0.200 / 0.016 0.405 / 0.435 / 11.470 / 0.189 5635 / 5672 / 5703 / 9
    1000 28 4 0.000 / 17.200 / 148.500 / 17.046 0.338 / 0.363 / 20.446 / 0.380 224 / 224 / 224 / 0
    1000 28 8 0.000 / 15.100 / 30.700 / 4.794 0.371 / 0.389 / 18.272 / 0.359 390 / 400 / 411 / 3
    1000 28 12 0.000 / 0.000 / 0.100 / 0.013 0.417 / 0.432 / 13.575 / 0.264 4677 / 4700 / 4719 / 6
    1000 28 16 0.000 / 0.000 / 0.200 / 0.013 0.417 / 0.435 / 18.060 / 0.381 4545 / 4702 / 4723 / 6
    1000 28 20 0.000 / 0.000 / 0.200 / 0.013 0.417 / 0.448 / 17.596 / 0.344 4679 / 4707 / 4728 / 6
    1000 28 24 0.000 / 0.000 / 0.200 / 0.012 0.421 / 0.454 / 13.807 / 0.297 4733 / 4764 / 4801 / 10
    1000 28 28 0.000 / 0.000 / 0.200 / 0.013 0.406 / 0.456 / 20.533 / 0.353 5646 / 5675 / 5704 / 9
    1000 32 4 0.000 / 18.150 / 177.600 / 19.537 0.338 / 0.352 / 12.293 / 0.252 223 / 224 / 224 / 0
    1000 32 8 1.500 / 22.100 / 35.100 / 4.399 0.371 / 0.407 / 17.782 / 0.386 388 / 398 / 412 / 3
    1000 32 12 0.000 / 0.000 / 0.200 / 0.011 0.417 / 0.435 / 11.830 / 0.247 4698 / 4717 / 4730 / 5
    1000 32 16 0.000 / 0.000 / 0.200 / 0.013 0.417 / 0.443 / 18.214 / 0.276 4700 / 4719 / 4733 / 5
    1000 32 20 0.000 / 0.000 / 0.200 / 0.012 0.417 / 0.437 / 11.208 / 0.232 4703 / 4720 / 4737 / 5
    1000 32 24 0.000 / 0.000 / 0.200 / 0.013 0.417 / 0.448 / 18.288 / 0.405 4706 / 4724 / 4740 / 5
    1000 32 28 0.000 / 0.000 / 0.200 / 0.011 0.420 / 0.437 / 13.389 / 0.245 4613 / 4782 / 4814 / 9
    1000 32 32 0.000 / 0.000 / 0.100 / 0.012 0.406 / 0.424 / 12.513 / 0.232 5641 / 5675 / 5704 / 9
    card sp p err l/m/h/std (% of actual) time l/m/h/std (ms) size l/m/h/std (b)
    200 4 4 0.000 / 17.000 / 180.000 / 17.470 0.070 / 0.118 / 10.092 / 0.204 218 / 220 / 220 / 1
    200 8 4 0.000 / 17.000 / 209.500 / 18.060 0.071 / 0.085 / 8.786 / 0.128 219 / 221 / 221 / 1
    200 8 8 0.000 / 3.500 / 21.500 / 3.185 0.082 / 0.085 / 8.375 / 0.119 531 / 587 / 637 / 14
    200 12 4 0.000 / 17.000 / 174.000 / 17.376 0.070 / 0.085 / 8.708 / 0.128 219 / 221 / 221 / 1
    200 12 8 0.000 / 3.000 / 25.500 / 2.847 0.086 / 0.119 / 8.984 / 0.151 353 / 372 / 627 / 74
    200 12 12 0.000 / 0.500 / 5.500 / 0.659 0.082 / 0.096 / 17.208 / 0.243 775 / 816 / 834 / 9
    200 16 4 0.000 / 17.500 / 172.000 / 16.622 0.068 / 0.075 / 9.553 / 0.137 220 / 222 / 222 / 1
    200 16 8 0.000 / 3.500 / 18.000 / 2.899 0.095 / 0.118 / 0.663 / 0.031 354 / 373 / 390 / 5
    200 16 12 0.000 / 0.000 / 1.500 / 0.276 0.085 / 0.108 / 13.977 / 0.199 802 / 833 / 852 / 6
    200 16 16 0.000 / 0.000 / 2.500 / 0.279 0.079 / 0.085 / 0.271 / 0.017 990 / 1027 / 1044 / 6
    200 20 4 0.000 / 17.000 / 209.500 / 17.424 0.068 / 0.072 / 0.250 / 0.014 221 / 223 / 223 / 1
    200 20 8 0.000 / 3.500 / 18.000 / 2.944 0.096 / 0.106 / 13.581 / 0.192 357 / 374 / 388 / 5
    200 20 12 0.000 / 0.000 / 1.000 / 0.066 0.084 / 0.088 / 1.096 / 0.019 915 / 945 / 972 / 8
    200 20 16 0.000 / 0.000 / 0.500 / 0.070 0.083 / 0.087 / 10.272 / 0.145 912 / 953 / 982 / 8
    200 20 20 0.000 / 0.000 / 1.000 / 0.069 0.079 / 0.081 / 0.210 / 0.017 1028 / 1056 / 1058 / 2
    200 24 4 0.000 / 17.500 / 136.000 / 16.589 0.068 / 0.071 / 0.952 / 0.025 221 / 223 / 223 / 1
    200 24 8 0.000 / 3.500 / 18.000 / 2.955 0.095 / 0.106 / 10.387 / 0.148 353 / 373 / 390 / 5
    200 24 12 0.000 / 0.000 / 0.500 / 0.016 0.082 / 0.083 / 0.235 / 0.014 1035 / 1048 / 1056 / 3
    200 24 16 0.000 / 0.000 / 0.500 / 0.012 0.082 / 0.084 / 10.904 / 0.154 1038 / 1051 / 1059 / 3
    200 24 20 0.000 / 0.000 / 0.500 / 0.010 0.082 / 0.085 / 0.410 / 0.019 1049 / 1064 / 1082 / 5
    200 24 24 0.000 / 0.000 / 0.500 / 0.023 0.079 / 0.084 / 11.926 / 0.168 1247 / 1264 / 1275 / 4
    200 28 4 0.000 / 17.500 / 229.000 / 17.294 0.068 / 0.072 / 0.369 / 0.015 222 / 224 / 224 / 1
    200 28 8 83.000 / 83.000 / 84.000 / 0.118 0.093 / 0.098 / 10.918 / 0.157 272 / 276 / 278 / 1
    200 28 12 0.000 / 0.000 / 0.500 / 0.016 0.082 / 0.083 / 10.157 / 0.143 1032 / 1067 / 1075 / 3
    200 28 16 0.000 / 0.000 / 0.500 / 0.007 0.082 / 0.083 / 0.617 / 0.020 1058 / 1069 / 1077 / 3
    200 28 20 0.000 / 0.000 / 0.500 / 0.010 0.082 / 0.085 / 11.619 / 0.165 1060 / 1071 / 1080 / 3
    200 28 24 0.000 / 0.000 / 0.500 / 0.007 0.083 / 0.085 / 0.516 / 0.022 1065 / 1083 / 1100 / 4
    200 28 28 0.000 / 0.000 / 0.500 / 0.019 0.080 / 0.087 / 11.278 / 0.160 1250 / 1267 / 1278 / 4
    200 32 4 0.000 / 18.000 / 175.500 / 17.157 0.068 / 0.078 / 0.223 / 0.019 222 / 224 / 224 / 1
    200 32 8 99.000 / 99.000 / 99.000 / 0.000 0.093 / 0.107 / 11.695 / 0.167 258 / 258 / 258 / 0
    200 32 12 0.000 / 0.000 / 0.500 / 0.014 0.081 / 0.084 / 8.906 / 0.126 1060 / 1071 / 1075 / 2
    200 32 16 0.000 / 0.000 / 0.500 / 0.010 0.082 / 0.085 / 1.458 / 0.027 1061 / 1073 / 1077 / 2
    200 32 20 0.000 / 0.000 / 0.500 / 0.012 0.082 / 0.084 / 10.499 / 0.148 1065 / 1074 / 1079 / 2
    200 32 24 0.000 / 0.000 / 0.500 / 0.012 0.082 / 0.085 / 0.420 / 0.020 1066 / 1075 / 1082 / 2
    200 32 28 0.000 / 0.000 / 0.500 / 0.016 0.082 / 0.086 / 8.753 / 0.124 1076 / 1088 / 1102 / 4
    200 32 32 0.000 / 0.000 / 0.500 / 0.010 0.080 / 0.081 / 13.248 / 0.188 1249 / 1268 / 1279 / 4
    400 4 4 0.000 / 17.500 / 175.250 / 17.530 0.136 / 0.142 / 0.591 / 0.035 218 / 220 / 220 / 0
    400 8 4 0.000 / 17.000 / 148.500 / 17.174 0.136 / 0.156 / 12.882 / 0.241 219 / 221 / 221 / 0
    400 8 8 0.000 / 3.500 / 21.250 / 3.215 0.159 / 0.186 / 10.396 / 0.151 375 / 387 / 802 / 62
    400 12 4 0.000 / 17.750 / 166.000 / 17.363 0.135 / 0.142 / 11.607 / 0.165 219 / 221 / 221 / 0
    400 12 8 0.000 / 3.250 / 23.750 / 3.133 0.166 / 0.179 / 8.713 / 0.130 376 / 387 / 401 / 3
    400 12 12 0.000 / 0.750 / 4.250 / 0.706 0.159 / 0.163 / 10.537 / 0.189 1334 / 1387 / 1434 / 14
    400 16 4 0.000 / 17.125 / 163.250 / 17.208 0.135 / 0.138 / 12.403 / 0.178 220 / 222 / 222 / 0
    400 16 8 0.000 / 3.250 / 23.500 / 3.126 0.165 / 0.179 / 9.985 / 0.147 378 / 388 / 401 / 3
    400 16 12 0.000 / 0.250 / 1.500 / 0.195 0.166 / 0.173 / 10.434 / 0.150 1414 / 1446 / 1475 / 8
    400 16 16 0.000 / 0.250 / 1.750 / 0.194 0.160 / 0.177 / 1.300 / 0.048 1761 / 1798 / 1825 / 8
    400 20 4 0.000 / 17.750 / 270.750 / 17.592 0.135 / 0.149 / 8.814 / 0.128 221 / 223 / 223 / 0
    400 20 8 0.000 / 3.500 / 23.000 / 3.103 0.165 / 0.183 / 9.271 / 0.139 379 / 389 / 398 / 3
    400 20 12 0.000 / 0.000 / 0.500 / 0.066 0.164 / 0.182 / 11.093 / 0.162 1617 / 1652 / 1683 / 10
    400 20 16 0.000 / 0.000 / 0.500 / 0.070 0.166 / 0.170 / 8.676 / 0.128 1624 / 1665 / 1706 / 10
    400 20 20 0.000 / 0.000 / 0.750 / 0.069 0.159 / 0.162 / 12.846 / 0.183 1840 / 1853 / 1856 / 2
    400 24 4 0.000 / 16.750 / 174.750 / 16.786 0.135 / 0.145 / 8.586 / 0.128 221 / 223 / 223 / 0
    400 24 8 0.000 / 3.500 / 24.500 / 3.090 0.165 / 0.179 / 11.344 / 0.164 377 / 389 / 399 / 3
    400 24 12 0.000 / 0.000 / 0.250 / 0.016 0.164 / 0.183 / 10.708 / 0.159 1828 / 1841 / 1852 / 4
    400 24 16 0.000 / 0.000 / 0.250 / 0.017 0.164 / 0.172 / 11.180 / 0.161 1830 / 1844 / 1855 / 4
    400 24 20 0.000 / 0.000 / 0.250 / 0.015 0.166 / 0.170 / 9.589 / 0.140 1843 / 1868 / 1890 / 6
    400 24 24 0.000 / 0.000 / 0.250 / 0.022 0.160 / 0.162 / 9.137 / 0.134 2213 / 2232 / 2247 / 5
    400 28 4 0.000 / 18.250 / 164.000 / 16.587 0.135 / 0.144 / 14.520 / 0.209 222 / 224 / 224 / 0
    400 28 8 33.000 / 47.750 / 56.750 / 3.588 0.164 / 0.168 / 1.305 / 0.052 355 / 375 / 394 / 5
    400 28 12 0.000 / 0.000 / 0.250 / 0.006 0.165 / 0.178 / 11.264 / 0.167 1837 / 1848 / 1854 / 3
    400 28 16 0.000 / 0.000 / 0.250 / 0.014 0.164 / 0.167 / 8.689 / 0.130 1838 / 1850 / 1857 / 3
    400 28 20 0.000 / 0.000 / 0.250 / 0.011 0.164 / 0.167 / 10.679 / 0.159 1839 / 1852 / 1863 / 3
    400 28 24 0.000 / 0.000 / 0.250 / 0.011 0.166 / 0.175 / 12.887 / 0.190 1857 / 1875 / 1896 / 5
    400 28 28 0.000 / 0.000 / 0.250 / 0.015 0.160 / 0.196 / 1.478 / 0.071 2217 / 2235 / 2252 / 5
    400 32 4 0.000 / 17.500 / 183.750 / 19.308 0.135 / 0.142 / 9.949 / 0.148 222 / 224 / 224 / 0
    400 32 8 46.500 / 56.250 / 63.250 / 2.194 0.164 / 0.181 / 1.209 / 0.063 349 / 370 / 390 / 5
    400 32 12 0.000 / 0.000 / 0.250 / 0.012 0.164 / 0.171 / 11.529 / 0.170 1837 / 1848 / 1854 / 3
    400 32 16 0.000 / 0.000 / 0.250 / 0.016 0.164 / 0.167 / 10.276 / 0.154 1836 / 1850 / 1856 / 3
    400 32 20 0.000 / 0.000 / 0.250 / 0.015 0.164 / 0.184 / 11.611 / 0.227 1839 / 1851 / 1858 / 3
    400 32 24 0.000 / 0.000 / 0.250 / 0.012 0.165 / 0.171 / 9.313 / 0.143 1842 / 1853 / 1862 / 3
    400 32 28 0.000 / 0.000 / 0.250 / 0.013 0.166 / 0.180 / 10.708 / 0.162 1860 / 1877 / 1900 / 5
    400 32 32 0.000 / 0.000 / 0.250 / 0.014 0.160 / 0.166 / 1.205 / 0.057 2217 / 2235 / 2249 / 5
    600 4 4 0.000 / 17.333 / 219.667 / 17.222 0.202 / 0.240 / 13.390 / 0.237 218 / 220 / 220 / 0
    600 8 4 0.000 / 17.417 / 231.333 / 17.340 0.202 / 0.224 / 9.662 / 0.150 220 / 221 / 221 / 0
    600 8 8 0.000 / 3.500 / 24.333 / 3.240 0.234 / 0.271 / 11.443 / 0.216 382 / 392 / 403 / 3
    600 12 4 0.000 / 17.167 / 188.167 / 17.324 0.202 / 0.210 / 1.320 / 0.055 219 / 221 / 221 / 0
    600 12 8 0.000 / 3.500 / 23.833 / 3.243 0.235 / 0.246 / 10.821 / 0.164 382 / 392 / 403 / 3
    600 12 12 0.000 / 0.667 / 4.500 / 0.694 0.240 / 0.259 / 12.004 / 0.183 2015 / 2101 / 2178 / 21
    600 16 4 0.000 / 17.500 / 170.000 / 17.882 0.202 / 0.218 / 9.208 / 0.140 221 / 222 / 222 / 0
    600 16 8 0.000 / 3.667 / 22.667 / 3.276 0.234 / 0.251 / 12.301 / 0.237 383 / 393 / 408 / 3
    600 16 12 0.000 / 0.167 / 1.000 / 0.170 0.250 / 0.284 / 12.000 / 0.180 2199 / 2243 / 2282 / 12
    600 16 16 0.000 / 0.167 / 1.167 / 0.171 0.239 / 0.291 / 21.163 / 0.333 2811 / 2859 / 2901 / 13
    600 20 4 0.000 / 17.667 / 176.667 / 18.162 0.202 / 0.223 / 16.405 / 0.275 221 / 223 / 223 / 0
    600 20 8 0.000 / 3.500 / 20.833 / 3.180 0.234 / 0.243 / 5.621 / 0.104 385 / 394 / 405 / 3
    600 20 12 0.000 / 0.000 / 0.500 / 0.066 0.246 / 0.281 / 19.279 / 0.390 2541 / 2604 / 2663 / 15
    600 20 16 0.000 / 0.000 / 0.667 / 0.071 0.248 / 0.258 / 24.627 / 0.387 2569 / 2627 / 2682 / 15
    600 20 20 0.000 / 0.000 / 0.500 / 0.069 0.239 / 0.246 / 13.606 / 0.248 2938 / 2954 / 2972 / 3
    600 24 4 0.000 / 17.333 / 210.333 / 18.157 0.202 / 0.218 / 11.991 / 0.180 222 / 223 / 223 / 0
    600 24 8 0.000 / 3.667 / 21.167 / 3.184 0.234 / 0.258 / 11.130 / 0.238 385 / 394 / 406 / 3
    600 24 12 0.000 / 0.000 / 0.167 / 0.017 0.246 / 0.272 / 12.032 / 0.191 2912 / 2935 / 2954 / 5
    600 24 16 0.000 / 0.000 / 0.167 / 0.019 0.246 / 0.268 / 19.358 / 0.282 2916 / 2940 / 2959 / 6
    600 24 20 0.000 / 0.000 / 0.167 / 0.015 0.248 / 0.259 / 20.293 / 0.343 2948 / 2980 / 3009 / 9
    600 24 24 0.000 / 0.000 / 0.167 / 0.017 0.239 / 0.252 / 11.721 / 0.230 3586 / 3618 / 3643 / 7
    600 28 4 0.000 / 17.667 / 182.667 / 17.309 0.202 / 0.210 / 11.957 / 0.177 223 / 224 / 224 / 0
    600 28 8 10.333 / 28.000 / 42.833 / 3.687 0.233 / 0.238 / 10.166 / 0.210 377 / 392 / 403 / 3
    600 28 12 0.000 / 0.000 / 0.333 / 0.013 0.246 / 0.252 / 9.907 / 0.158 3005 / 3024 / 3041 / 5
    600 28 16 0.000 / 0.000 / 0.167 / 0.012 0.246 / 0.256 / 18.673 / 0.273 3007 / 3026 / 3045 / 5
    600 28 20 0.000 / 0.000 / 0.167 / 0.011 0.246 / 0.283 / 17.762 / 0.355 3005 / 3029 / 3047 / 6
    600 28 24 0.000 / 0.000 / 0.167 / 0.011 0.248 / 0.254 / 8.821 / 0.138 3035 / 3065 / 3098 / 8
    600 28 28 0.000 / 0.000 / 0.167 / 0.011 0.239 / 0.242 / 12.171 / 0.177 3589 / 3621 / 3646 / 7
    600 32 4 0.000 / 17.333 / 200.000 / 18.294 0.202 / 0.205 / 9.036 / 0.138 223 / 224 / 224 / 0
    600 32 8 25.167 / 37.167 / 46.833 / 3.185 0.232 / 0.236 / 9.061 / 0.144 377 / 389 / 403 / 3
    600 32 12 0.000 / 0.000 / 0.167 / 0.013 0.246 / 0.256 / 11.119 / 0.169 3028 / 3043 / 3055 / 4
    600 32 16 0.000 / 0.000 / 0.167 / 0.010 0.246 / 0.257 / 11.557 / 0.213 3030 / 3045 / 3057 / 4
    600 32 20 0.000 / 0.000 / 0.167 / 0.011 0.246 / 0.266 / 20.353 / 0.295 3030 / 3047 / 3071 / 4
    600 32 24 0.000 / 0.000 / 0.167 / 0.012 0.246 / 0.270 / 11.461 / 0.183 3035 / 3050 / 3073 / 4
    600 32 28 0.000 / 0.000 / 0.167 / 0.013 0.248 / 0.260 / 11.755 / 0.242 3060 / 3085 / 3108 / 7
    600 32 32 0.000 / 0.000 / 0.167 / 0.012 0.239 / 0.248 / 10.380 / 0.157 3593 / 3621 / 3645 / 7
    800 4 4 0.000 / 17.250 / 188.250 / 17.248 0.269 / 0.280 / 10.818 / 0.212 219 / 220 / 220 / 0
    800 8 4 0.000 / 17.875 / 184.125 / 17.721 0.270 / 0.298 / 16.706 / 0.252 220 / 221 / 221 / 0
    800 8 8 0.000 / 3.625 / 22.000 / 3.420 0.303 / 0.315 / 12.489 / 0.243 386 / 395 / 406 / 3
    800 12 4 0.000 / 17.750 / 196.500 / 16.870 0.269 / 0.289 / 13.533 / 0.235 220 / 221 / 221 / 0
    800 12 8 0.000 / 3.750 / 25.875 / 3.359 0.303 / 0.330 / 18.306 / 0.365 386 / 395 / 408 / 3
    800 12 12 0.000 / 0.750 / 4.375 / 0.677 0.322 / 0.357 / 20.131 / 0.350 2449 / 2603 / 2694 / 27
    800 16 4 0.000 / 17.750 / 195.250 / 17.455 0.269 / 0.274 / 10.472 / 0.205 221 / 222 / 222 / 0
    800 16 8 0.000 / 3.750 / 20.375 / 3.357 0.302 / 0.308 / 10.637 / 0.165 386 / 396 / 409 / 3
    800 16 12 0.000 / 0.125 / 1.375 / 0.170 0.334 / 0.344 / 10.745 / 0.221 2712 / 2836 / 2882 / 15
    800 16 16 0.000 / 0.250 / 1.375 / 0.169 0.321 / 0.334 / 13.979 / 0.252 3390 / 3625 / 3668 / 19
    800 20 4 0.000 / 17.750 / 220.750 / 17.953 0.269 / 0.281 / 9.422 / 0.148 222 / 223 / 223 / 0
    800 20 8 0.000 / 3.750 / 21.875 / 3.305 0.302 / 0.358 / 24.073 / 0.435 387 / 397 / 408 / 3
    800 20 12 0.000 / 0.000 / 0.500 / 0.067 0.331 / 0.345 / 13.461 / 0.211 3249 / 3304 / 3360 / 17
    800 20 16 0.000 / 0.000 / 0.500 / 0.069 0.333 / 0.349 / 8.271 / 0.146 3190 / 3331 / 3392 / 17
    800 20 20 0.000 / 0.000 / 0.375 / 0.069 0.320 / 0.335 / 11.307 / 0.239 3539 / 3752 / 3771 / 5
    800 24 4 0.000 / 17.125 / 184.500 / 18.184 0.269 / 0.283 / 1.541 / 0.079 222 / 223 / 223 / 0
    800 24 8 0.000 / 3.625 / 23.125 / 3.301 0.302 / 0.317 / 10.845 / 0.169 388 / 397 / 409 / 3
    800 24 12 0.000 / 0.000 / 0.250 / 0.017 0.330 / 0.352 / 10.221 / 0.244 3703 / 3729 / 3749 / 6
    800 24 16 0.000 / 0.000 / 0.250 / 0.018 0.330 / 0.344 / 13.454 / 0.239 3711 / 3734 / 3753 / 6
    800 24 20 0.000 / 0.000 / 0.250 / 0.018 0.333 / 0.348 / 16.987 / 0.374 3751 / 3786 / 3826 / 10
    800 24 24 0.000 / 0.000 / 0.250 / 0.018 0.320 / 0.333 / 17.097 / 0.288 4567 / 4605 / 4630 / 8
    800 28 4 0.000 / 17.375 / 326.125 / 18.121 0.269 / 0.274 / 9.600 / 0.149 223 / 224 / 224 / 0
    800 28 8 0.375 / 19.875 / 34.500 / 4.445 0.302 / 0.313 / 10.025 / 0.181 387 / 397 / 409 / 3
    800 28 12 0.000 / 0.000 / 0.125 / 0.011 0.330 / 0.343 / 11.347 / 0.216 3797 / 3821 / 3839 / 6
    800 28 16 0.000 / 0.000 / 0.125 / 0.010 0.330 / 0.344 / 10.748 / 0.219 3801 / 3823 / 3843 / 6
    800 28 20 0.000 / 0.000 / 0.125 / 0.011 0.330 / 0.355 / 15.268 / 0.314 3802 / 3827 / 3845 / 6
    800 28 24 0.000 / 0.000 / 0.125 / 0.011 0.334 / 0.360 / 11.192 / 0.243 3841 / 3874 / 3905 / 9
    800 28 28 0.000 / 0.000 / 0.250 / 0.011 0.321 / 0.334 / 1.757 / 0.095 4575 / 4609 / 4635 / 8
    800 32 4 0.000 / 17.125 / 161.000 / 18.370 0.269 / 0.279 / 20.700 / 0.344 223 / 224 / 224 / 0
    800 32 8 10.500 / 27.750 / 39.500 / 3.883 0.301 / 0.333 / 18.781 / 0.332 385 / 395 / 406 / 3
    800 32 12 0.000 / 0.000 / 0.250 / 0.011 0.330 / 0.371 / 18.883 / 0.317 3823 / 3840 / 3853 / 4
    800 32 16 0.000 / 0.000 / 0.125 / 0.011 0.330 / 0.353 / 9.319 / 0.195 3824 / 3842 / 3855 / 4
    800 32 20 0.000 / 0.000 / 0.125 / 0.012 0.330 / 0.353 / 15.582 / 0.305 3826 / 3843 / 3859 / 4
    800 32 24 0.000 / 0.000 / 0.125 / 0.013 0.330 / 0.349 / 11.346 / 0.234 3830 / 3847 / 3862 / 5
    800 32 28 0.000 / 0.000 / 0.250 / 0.013 0.333 / 0.368 / 14.482 / 0.309 3866 / 3894 / 3925 / 8
    800 32 32 0.000 / 0.000 / 0.125 / 0.012 0.320 / 0.335 / 17.771 / 0.295 4576 / 4608 / 4633 / 8
    1000 4 4 0.000 / 17.800 / 187.500 / 18.576 0.337 / 0.374 / 10.384 / 0.179 219 / 220 / 220 / 0
    1000 8 4 0.000 / 17.600 / 181.100 / 18.035 0.336 / 0.372 / 13.220 / 0.262 220 / 221 / 221 / 0
    1000 8 8 0.000 / 3.900 / 23.100 / 3.425 0.371 / 0.398 / 9.495 / 0.175 386 / 398 / 409 / 3
    1000 12 4 0.000 / 17.600 / 178.900 / 17.559 0.336 / 0.351 / 11.176 / 0.265 220 / 221 / 221 / 0
    1000 12 8 0.000 / 3.800 / 22.700 / 3.438 0.371 / 0.392 / 10.942 / 0.188 387 / 398 / 411 / 3
    1000 12 12 0.000 / 0.800 / 4.200 / 0.684 0.403 / 0.443 / 11.219 / 0.279 2971 / 3242 / 3364 / 39
    1000 16 4 0.000 / 17.600 / 184.300 / 17.148 0.336 / 0.368 / 21.656 / 0.350 221 / 222 / 222 / 0
    1000 16 8 0.000 / 3.800 / 21.900 / 3.350 0.369 / 0.385 / 15.840 / 0.277 388 / 399 / 412 / 3
    1000 16 12 0.000 / 0.200 / 1.200 / 0.174 0.422 / 0.438 / 16.035 / 0.335 3428 / 3530 / 3628 / 16
    1000 16 16 0.000 / 0.200 / 1.200 / 0.173 0.405 / 0.420 / 13.370 / 0.305 4314 / 4484 / 4573 / 20
    1000 20 4 0.000 / 17.600 / 223.000 / 16.968 0.336 / 0.372 / 17.746 / 0.392 222 / 223 / 223 / 0
    1000 20 8 0.000 / 3.800 / 21.400 / 3.384 0.369 / 0.419 / 16.486 / 0.257 389 / 400 / 412 / 3
    1000 20 12 0.000 / 0.000 / 0.400 / 0.068 0.417 / 0.446 / 12.313 / 0.265 3954 / 4099 / 4158 / 18
    1000 20 16 0.000 / 0.000 / 0.500 / 0.069 0.422 / 0.439 / 11.284 / 0.262 4016 / 4134 / 4211 / 19
    1000 20 20 0.000 / 0.000 / 0.600 / 0.069 0.404 / 0.429 / 16.987 / 0.335 4517 / 4641 / 4651 / 5
    1000 24 4 0.000 / 17.600 / 226.700 / 17.761 0.339 / 0.351 / 12.804 / 0.275 222 / 223 / 223 / 0
    1000 24 8 0.000 / 3.800 / 24.100 / 3.403 0.371 / 0.406 / 15.710 / 0.298 390 / 400 / 412 / 3
    1000 24 12 0.000 / 0.000 / 0.200 / 0.018 0.417 / 0.449 / 12.253 / 0.294 4494 / 4614 / 4636 / 7
    1000 24 16 0.000 / 0.000 / 0.100 / 0.018 0.417 / 0.434 / 11.046 / 0.254 4594 / 4620 / 4641 / 7
    1000 24 20 0.000 / 0.000 / 0.200 / 0.019 0.422 / 0.458 / 13.433 / 0.270 4645 / 4682 / 4722 / 11
    1000 24 24 0.000 / 0.000 / 0.200 / 0.016 0.405 / 0.435 / 11.470 / 0.189 5635 / 5672 / 5703 / 9
    1000 28 4 0.000 / 17.200 / 148.500 / 17.046 0.338 / 0.363 / 20.446 / 0.380 224 / 224 / 224 / 0
    1000 28 8 0.000 / 15.100 / 30.700 / 4.794 0.371 / 0.389 / 18.272 / 0.359 390 / 400 / 411 / 3
    1000 28 12 0.000 / 0.000 / 0.100 / 0.013 0.417 / 0.432 / 13.575 / 0.264 4677 / 4700 / 4719 / 6
    1000 28 16 0.000 / 0.000 / 0.200 / 0.013 0.417 / 0.435 / 18.060 / 0.381 4545 / 4702 / 4723 / 6
    1000 28 20 0.000 / 0.000 / 0.200 / 0.013 0.417 / 0.448 / 17.596 / 0.344 4679 / 4707 / 4728 / 6
    1000 28 24 0.000 / 0.000 / 0.200 / 0.012 0.421 / 0.454 / 13.807 / 0.297 4733 / 4764 / 4801 / 10
    1000 28 28 0.000 / 0.000 / 0.200 / 0.013 0.406 / 0.456 / 20.533 / 0.353 5646 / 5675 / 5704 / 9
    1000 32 4 0.000 / 18.150 / 177.600 / 19.537 0.338 / 0.352 / 12.293 / 0.252 223 / 224 / 224 / 0
    1000 32 8 1.500 / 22.100 / 35.100 / 4.399 0.371 / 0.407 / 17.782 / 0.386 388 / 398 / 412 / 3
    1000 32 12 0.000 / 0.000 / 0.200 / 0.011 0.417 / 0.435 / 11.830 / 0.247 4698 / 4717 / 4730 / 5
    1000 32 16 0.000 / 0.000 / 0.200 / 0.013 0.417 / 0.443 / 18.214 / 0.276 4700 / 4719 / 4733 / 5
    1000 32 20 0.000 / 0.000 / 0.200 / 0.012 0.417 / 0.437 / 11.208 / 0.232 4703 / 4720 / 4737 / 5
    1000 32 24 0.000 / 0.000 / 0.200 / 0.013 0.417 / 0.448 / 18.288 / 0.405 4706 / 4724 / 4740 / 5
    1000 32 28 0.000 / 0.000 / 0.200 / 0.011 0.420 / 0.437 / 13.389 / 0.245 4613 / 4782 / 4814 / 9
    1000 32 32 0.000 / 0.000 / 0.100 / 0.012 0.406 / 0.424 / 12.513 / 0.232 5641 / 5675 / 5704 / 9
    -

    Table Cardinality 1500-5000, step by 500

    +

    Table Cardinality 1500-5000, step by 500

    Options Used

    -
    -
    -
    num trials: 5000
    +
    +
    +
    num trials: 5000
     card min: 1500
     card max: 5000
     card step: 500
    @@ -3021,4525 +1448,2126 @@ 

    Options Used

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    card sp p err l/m/h/std (% of actual) time l/m/h/std (ms) size l/m/h/std (b)
    1500 4 4 0.000 / 17.600 / 254.400 / 17.627 0.501 / 0.612 / 19.629 / 0.593 220 / 220 / 220 / 0
    1500 8 4 0.000 / 17.600 / 158.133 / 16.980 0.506 / 0.594 / 16.843 / 0.493 221 / 221 / 221 / 0
    1500 8 8 0.000 / 4.000 / 23.933 / 3.590 0.533 / 0.567 / 11.059 / 0.259 392 / 404 / 416 / 3
    1500 12 4 0.000 / 18.067 / 208.733 / 17.934 0.505 / 0.531 / 20.544 / 0.368 221 / 221 / 221 / 0
    1500 12 8 0.000 / 4.067 / 22.133 / 3.579 0.529 / 0.576 / 22.421 / 0.453 391 / 404 / 416 / 3
    1500 12 12 0.000 / 0.800 / 4.133 / 0.707 0.607 / 0.638 / 15.124 / 0.329 4338 / 4489 / 4656 / 43
    1500 16 4 0.000 / 17.200 / 167.333 / 17.918 0.508 / 0.546 / 17.715 / 0.381 221 / 222 / 222 / 0
    1500 16 8 0.000 / 3.933 / 23.667 / 3.605 0.530 / 0.564 / 18.635 / 0.407 393 / 405 / 417 / 3
    1500 16 12 0.000 / 0.200 / 1.067 / 0.166 0.621 / 0.689 / 17.660 / 0.364 5177 / 5271 / 5341 / 21
    1500 16 16 0.000 / 0.200 / 0.933 / 0.165 0.612 / 0.654 / 19.700 / 0.419 6688 / 6775 / 6855 / 23
    1500 20 4 0.000 / 17.600 / 231.333 / 17.757 0.509 / 0.544 / 20.194 / 0.369 223 / 223 / 223 / 0
    1500 20 8 0.000 / 3.933 / 25.600 / 3.728 0.529 / 0.570 / 15.702 / 0.372 395 / 406 / 417 / 3
    1500 20 12 0.000 / 0.067 / 0.333 / 0.047 0.612 / 0.659 / 12.620 / 0.343 6097 / 6191 / 6281 / 24
    1500 20 16 0.000 / 0.067 / 0.400 / 0.047 0.619 / 0.648 / 13.508 / 0.300 6163 / 6244 / 6344 / 24
    1500 20 20 0.000 / 0.067 / 0.333 / 0.047 0.610 / 0.650 / 12.478 / 0.323 7019 / 7048 / 7093 / 6
    1500 24 4 0.000 / 17.467 / 156.333 / 18.009 0.508 / 0.569 / 17.878 / 0.386 223 / 223 / 223 / 0
    1500 24 8 0.000 / 4.067 / 27.400 / 3.599 0.529 / 0.564 / 21.583 / 0.397 394 / 406 / 416 / 3
    1500 24 12 0.000 / 0.000 / 0.133 / 0.017 0.611 / 0.655 / 16.659 / 0.383 6974 / 7008 / 7039 / 8
    1500 24 16 0.000 / 0.000 / 0.133 / 0.017 0.612 / 0.644 / 10.934 / 0.313 6981 / 7016 / 7048 / 9
    1500 24 20 0.000 / 0.000 / 0.133 / 0.017 0.620 / 0.683 / 21.873 / 0.512 7064 / 7115 / 7167 / 14
    1500 24 24 0.000 / 0.000 / 0.133 / 0.017 0.609 / 0.634 / 13.249 / 0.315 8645 / 8684 / 8722 / 11
    1500 28 4 0.000 / 17.467 / 157.067 / 17.312 0.508 / 0.529 / 14.149 / 0.336 224 / 224 / 224 / 0
    1500 28 8 0.000 / 8.533 / 25.933 / 4.865 0.529 / 0.561 / 15.511 / 0.380 396 / 406 / 419 / 3
    1500 28 12 0.000 / 0.000 / 0.133 / 0.012 0.611 / 0.657 / 10.977 / 0.294 7178 / 7209 / 7239 / 8
    1500 28 16 0.000 / 0.000 / 0.133 / 0.013 0.611 / 0.636 / 12.958 / 0.319 7177 / 7211 / 7240 / 8
    1500 28 20 0.000 / 0.000 / 0.133 / 0.012 0.612 / 0.646 / 13.818 / 0.327 7185 / 7218 / 7248 / 9
    1500 28 24 0.000 / 0.000 / 0.133 / 0.012 0.619 / 0.662 / 11.359 / 0.279 7258 / 7305 / 7354 / 13
    1500 28 28 0.000 / 0.000 / 0.133 / 0.012 0.609 / 0.648 / 12.260 / 0.300 8643 / 8687 / 8732 / 12
    1500 32 4 0.000 / 17.267 / 175.933 / 18.415 0.508 / 0.529 / 11.408 / 0.321 224 / 224 / 224 / 0
    1500 32 8 0.000 / 14.667 / 29.200 / 4.897 0.529 / 0.563 / 11.784 / 0.278 393 / 404 / 416 / 3
    1500 32 12 0.000 / 0.000 / 0.133 / 0.012 0.611 / 0.668 / 13.335 / 0.342 7226 / 7252 / 7273 / 6
    1500 32 16 0.000 / 0.000 / 0.133 / 0.012 0.611 / 0.655 / 19.309 / 0.454 7230 / 7254 / 7276 / 6
    1500 32 20 0.000 / 0.000 / 0.133 / 0.012 0.612 / 0.643 / 12.975 / 0.314 7231 / 7256 / 7277 / 6
    1500 32 24 0.000 / 0.000 / 0.067 / 0.013 0.612 / 0.666 / 12.496 / 0.357 7236 / 7262 / 7286 / 7
    1500 32 28 0.000 / 0.000 / 0.133 / 0.013 0.625 / 0.657 / 21.381 / 0.401 7305 / 7347 / 7383 / 11
    1500 32 32 0.000 / 0.000 / 0.133 / 0.012 0.609 / 0.652 / 19.148 / 0.387 8643 / 8687 / 8724 / 12
    2000 4 4 0.050 / 17.950 / 200.300 / 17.701 0.678 / 0.712 / 13.274 / 0.370 220 / 220 / 220 / 0
    2000 8 4 0.050 / 17.200 / 227.450 / 17.112 0.678 / 0.706 / 12.428 / 0.357 221 / 221 / 221 / 0
    2000 8 8 0.000 / 4.150 / 28.100 / 3.687 0.705 / 0.746 / 11.845 / 0.297 397 / 408 / 418 / 3
    2000 12 4 0.050 / 17.075 / 166.300 / 17.289 0.679 / 0.746 / 19.810 / 0.436 221 / 221 / 221 / 0
    2000 12 8 0.000 / 4.050 / 26.000 / 3.697 0.700 / 0.772 / 19.166 / 0.385 396 / 408 / 419 / 3
    2000 12 12 0.050 / 0.850 / 4.150 / 0.733 0.818 / 0.904 / 20.237 / 0.460 5109 / 5354 / 5633 / 103
    2000 16 4 0.050 / 17.650 / 196.200 / 17.539 0.678 / 0.747 / 17.211 / 0.435 222 / 222 / 222 / 0
    2000 16 8 0.000 / 4.100 / 23.650 / 3.720 0.699 / 0.770 / 17.887 / 0.378 397 / 409 / 420 / 3
    2000 16 12 0.000 / 0.200 / 1.100 / 0.163 0.835 / 0.915 / 24.825 / 0.515 6456 / 6547 / 6647 / 23
    2000 16 16 0.000 / 0.200 / 1.100 / 0.167 0.820 / 0.906 / 15.149 / 0.427 8177 / 8278 / 8384 / 27
    2000 20 4 0.050 / 17.650 / 184.550 / 17.468 0.678 / 0.742 / 19.468 / 0.449 223 / 223 / 223 / 0
    2000 20 8 0.000 / 4.150 / 27.500 / 3.693 0.700 / 0.756 / 12.525 / 0.289 399 / 410 / 420 / 3
    2000 20 12 0.000 / 0.050 / 0.350 / 0.044 0.830 / 0.921 / 19.963 / 0.553 7551 / 7643 / 7742 / 23
    2000 20 16 0.000 / 0.050 / 0.300 / 0.044 0.840 / 0.916 / 16.698 / 0.448 7615 / 7702 / 7789 / 23
    2000 20 20 0.000 / 0.050 / 0.300 / 0.044 0.824 / 0.909 / 23.619 / 0.600 8602 / 8633 / 8652 / 7
    2000 24 4 0.050 / 17.600 / 249.350 / 17.740 0.675 / 0.754 / 18.418 / 0.431 223 / 223 / 223 / 0
    2000 24 8 0.000 / 4.150 / 24.700 / 3.663 0.697 / 0.753 / 24.521 / 0.466 398 / 410 / 421 / 3
    2000 24 12 0.000 / 0.000 / 0.150 / 0.017 0.825 / 0.907 / 16.320 / 0.373 8559 / 8591 / 8621 / 8
    2000 24 16 0.000 / 0.000 / 0.100 / 0.017 0.826 / 0.876 / 20.177 / 0.403 8567 / 8600 / 8630 / 9
    2000 24 20 0.000 / 0.000 / 0.100 / 0.017 0.836 / 0.891 / 18.865 / 0.429 8670 / 8715 / 8762 / 13
    2000 24 24 0.000 / 0.000 / 0.150 / 0.017 0.823 / 0.874 / 13.270 / 0.398 10491 / 10531 / 10569 / 11
    2000 28 4 0.050 / 17.600 / 206.800 / 17.750 0.675 / 0.726 / 18.063 / 0.424 224 / 224 / 224 / 0
    2000 28 8 0.000 / 6.050 / 23.850 / 4.359 0.698 / 0.752 / 24.616 / 0.531 400 / 411 / 421 / 3
    2000 28 12 0.000 / 0.000 / 0.100 / 0.013 0.826 / 0.879 / 16.497 / 0.458 8600 / 8623 / 8641 / 6
    2000 28 16 0.000 / 0.000 / 0.100 / 0.012 0.826 / 0.898 / 16.948 / 0.417 8602 / 8626 / 8645 / 6
    2000 28 20 0.000 / 0.000 / 0.150 / 0.013 0.826 / 0.876 / 21.015 / 0.435 8609 / 8634 / 8656 / 6
    2000 28 24 0.000 / 0.000 / 0.100 / 0.012 0.836 / 0.878 / 19.773 / 0.462 8704 / 8746 / 8791 / 12
    2000 28 28 0.000 / 0.000 / 0.100 / 0.012 0.823 / 0.877 / 14.429 / 0.366 10489 / 10535 / 10573 / 11
    2000 32 4 0.050 / 18.300 / 180.850 / 18.635 0.676 / 0.723 / 18.331 / 0.431 224 / 224 / 224 / 0
    2000 32 8 0.000 / 10.900 / 26.400 / 5.122 0.698 / 0.742 / 18.170 / 0.443 397 / 409 / 420 / 3
    2000 32 12 0.000 / 0.000 / 0.100 / 0.013 0.825 / 0.869 / 12.927 / 0.376 8603 / 8623 / 8642 / 6
    2000 32 16 0.000 / 0.000 / 0.100 / 0.012 0.826 / 0.876 / 12.052 / 0.376 8601 / 8625 / 8644 / 6
    2000 32 20 0.000 / 0.000 / 0.100 / 0.012 0.824 / 0.883 / 19.872 / 0.492 8602 / 8627 / 8644 / 6
    2000 32 24 0.000 / 0.000 / 0.100 / 0.012 0.826 / 0.879 / 21.842 / 0.509 8610 / 8635 / 8654 / 6
    2000 32 28 0.000 / 0.000 / 0.150 / 0.012 0.836 / 0.894 / 18.071 / 0.448 8707 / 8748 / 8791 / 12
    2000 32 32 0.000 / 0.000 / 0.100 / 0.012 0.823 / 0.870 / 13.917 / 0.398 10491 / 10535 / 10575 / 11
    2500 4 4 0.000 / 17.480 / 215.840 / 18.035 0.844 / 0.896 / 17.723 / 0.444 220 / 220 / 220 / 0
    2500 8 4 0.000 / 17.960 / 369.960 / 18.503 0.844 / 0.897 / 20.260 / 0.542 221 / 221 / 221 / 0
    2500 8 8 0.000 / 4.080 / 23.280 / 3.639 0.874 / 0.928 / 21.505 / 0.472 399 / 412 / 420 / 3
    2500 12 4 0.000 / 17.520 / 204.760 / 17.973 0.845 / 0.963 / 21.008 / 0.499 221 / 221 / 221 / 0
    2500 12 8 0.000 / 4.080 / 30.120 / 3.683 0.869 / 0.946 / 18.277 / 0.488 400 / 412 / 421 / 3
    2500 12 12 0.000 / 0.880 / 4.600 / 0.747 1.025 / 1.134 / 20.157 / 0.532 6140 / 6934 / 7154 / 78
    2500 16 4 0.000 / 17.240 / 173.400 / 17.729 0.845 / 0.902 / 15.768 / 0.421 222 / 222 / 222 / 0
    2500 16 8 0.000 / 4.160 / 25.520 / 3.846 0.868 / 0.929 / 11.497 / 0.362 401 / 413 / 422 / 3
    2500 16 12 0.000 / 0.200 / 1.080 / 0.164 1.048 / 1.156 / 20.371 / 0.514 8704 / 8924 / 9057 / 33
    2500 16 16 0.000 / 0.200 / 1.000 / 0.166 1.031 / 1.108 / 13.336 / 0.432 11159 / 11486 / 11633 / 42
    2500 20 4 0.000 / 17.600 / 154.600 / 17.373 0.845 / 0.951 / 14.707 / 0.424 223 / 223 / 223 / 0
    2500 20 8 0.000 / 4.200 / 23.720 / 3.781 0.868 / 0.932 / 20.062 / 0.477 397 / 414 / 424 / 3
    2500 20 12 0.000 / 0.040 / 0.320 / 0.044 1.032 / 1.119 / 17.855 / 0.560 10273 / 10533 / 10639 / 33
    2500 20 16 0.000 / 0.040 / 0.320 / 0.043 1.045 / 1.107 / 16.834 / 0.461 10370 / 10621 / 10730 / 33
    2500 20 20 0.000 / 0.040 / 0.400 / 0.044 1.028 / 1.087 / 22.330 / 0.536 11718 / 11995 / 12020 / 12
    2500 24 4 0.000 / 17.480 / 156.160 / 17.171 0.844 / 0.890 / 18.096 / 0.406 223 / 223 / 223 / 0
    2500 24 8 0.000 / 4.140 / 22.280 / 3.716 0.868 / 0.915 / 19.031 / 0.458 403 / 414 / 423 / 3
    2500 24 12 0.000 / 0.000 / 0.160 / 0.017 1.030 / 1.088 / 22.283 / 0.500 11894 / 11934 / 11971 / 11
    2500 24 16 0.000 / 0.000 / 0.120 / 0.017 1.032 / 1.090 / 18.220 / 0.547 11896 / 11947 / 11990 / 12
    2500 24 20 0.000 / 0.000 / 0.120 / 0.018 1.043 / 1.101 / 17.194 / 0.516 12056 / 12115 / 12187 / 18
    2500 24 24 0.000 / 0.000 / 0.120 / 0.018 1.027 / 1.098 / 21.530 / 0.547 14736 / 14798 / 14849 / 15
    2500 28 4 0.000 / 17.720 / 199.480 / 17.641 0.845 / 0.900 / 20.585 / 0.511 224 / 224 / 224 / 0
    2500 28 8 0.000 / 5.200 / 22.920 / 4.106 0.869 / 0.914 / 12.212 / 0.359 403 / 414 / 425 / 3
    2500 28 12 0.000 / 0.000 / 0.080 / 0.012 1.031 / 1.085 / 17.978 / 0.500 12267 / 12329 / 12367 / 11
    2500 28 16 0.000 / 0.000 / 0.120 / 0.013 1.030 / 1.094 / 18.134 / 0.519 11986 / 12331 / 12372 / 13
    2500 28 20 0.000 / 0.000 / 0.120 / 0.011 1.031 / 1.086 / 20.068 / 0.550 12296 / 12341 / 12382 / 12
    2500 28 24 0.000 / 0.000 / 0.080 / 0.012 1.043 / 1.121 / 21.095 / 0.587 12117 / 12486 / 12547 / 17
    2500 28 28 0.000 / 0.000 / 0.080 / 0.012 1.028 / 1.097 / 20.162 / 0.573 14747 / 14802 / 14864 / 15
    2500 32 4 0.000 / 18.200 / 187.680 / 18.797 0.844 / 0.889 / 20.143 / 0.460 224 / 224 / 224 / 0
    2500 32 8 0.000 / 8.680 / 25.600 / 4.951 0.868 / 0.923 / 20.998 / 0.525 402 / 413 / 422 / 3
    2500 32 12 0.000 / 0.000 / 0.080 / 0.012 1.030 / 1.130 / 24.624 / 0.666 12378 / 12414 / 12443 / 8
    2500 32 16 0.000 / 0.000 / 0.080 / 0.012 1.030 / 1.090 / 17.364 / 0.532 12381 / 12416 / 12443 / 8
    2500 32 20 0.000 / 0.000 / 0.120 / 0.012 1.029 / 1.152 / 27.049 / 0.647 12386 / 12418 / 12444 / 8
    2500 32 24 0.000 / 0.000 / 0.080 / 0.013 1.031 / 1.083 / 26.018 / 0.575 12390 / 12427 / 12460 / 9
    2500 32 28 0.000 / 0.000 / 0.120 / 0.013 1.042 / 1.102 / 18.739 / 0.486 12513 / 12568 / 12621 / 14
    2500 32 32 0.000 / 0.000 / 0.120 / 0.012 1.027 / 1.088 / 16.996 / 0.499 14742 / 14802 / 14851 / 15
    3000 4 4 0.000 / 17.833 / 186.867 / 17.498 1.013 / 1.080 / 18.433 / 0.461 220 / 220 / 220 / 0
    3000 8 4 0.033 / 17.600 / 201.567 / 17.855 1.013 / 1.074 / 19.563 / 0.528 221 / 221 / 221 / 0
    3000 8 8 0.000 / 4.300 / 26.467 / 3.786 1.042 / 1.101 / 13.911 / 0.435 403 / 414 / 422 / 3
    3000 12 4 0.000 / 17.467 / 212.600 / 18.720 1.014 / 1.070 / 21.257 / 0.509 221 / 221 / 221 / 0
    3000 12 8 0.000 / 4.167 / 30.600 / 3.794 1.039 / 1.104 / 20.074 / 0.553 405 / 414 / 422 / 3
    3000 12 12 0.000 / 0.833 / 4.833 / 0.745 1.233 / 1.322 / 20.558 / 0.638 7453 / 7706 / 7923 / 67
    3000 16 4 0.000 / 18.117 / 152.933 / 17.161 1.013 / 1.101 / 21.535 / 0.564 222 / 222 / 222 / 0
    3000 16 8 0.000 / 4.200 / 25.633 / 3.817 1.037 / 1.100 / 18.806 / 0.554 405 / 415 / 423 / 3
    3000 16 12 0.000 / 0.200 / 1.033 / 0.169 1.258 / 1.331 / 22.352 / 0.682 10292 / 10439 / 10570 / 37
    3000 16 16 0.000 / 0.200 / 0.967 / 0.166 1.238 / 1.317 / 18.279 / 0.589 13313 / 13458 / 13612 / 43
    3000 20 4 0.000 / 17.467 / 164.967 / 17.757 1.013 / 1.113 / 19.652 / 0.508 223 / 223 / 223 / 0
    3000 20 8 0.000 / 4.167 / 24.267 / 3.743 1.038 / 1.092 / 18.642 / 0.554 405 / 416 / 425 / 3
    3000 20 12 0.000 / 0.033 / 0.400 / 0.045 1.240 / 1.303 / 14.404 / 0.517 12293 / 12419 / 12571 / 35
    3000 20 16 0.000 / 0.033 / 0.300 / 0.045 1.256 / 1.327 / 17.597 / 0.537 12406 / 12522 / 12655 / 35
    3000 20 20 0.000 / 0.033 / 0.333 / 0.044 1.237 / 1.308 / 20.509 / 0.558 14100 / 14156 / 14250 / 11
    3000 24 4 0.000 / 17.417 / 215.733 / 18.149 1.013 / 1.091 / 21.116 / 0.517 223 / 223 / 223 / 0
    3000 24 8 0.000 / 4.233 / 21.767 / 3.773 1.036 / 1.092 / 11.990 / 0.434 406 / 416 / 426 / 3
    3000 24 12 0.000 / 0.000 / 0.100 / 0.017 1.239 / 1.343 / 19.689 / 0.541 14036 / 14088 / 14126 / 12
    3000 24 16 0.000 / 0.000 / 0.133 / 0.017 1.239 / 1.311 / 14.029 / 0.532 14050 / 14102 / 14146 / 13
    3000 24 20 0.000 / 0.000 / 0.133 / 0.017 1.255 / 1.327 / 25.879 / 0.611 14218 / 14302 / 14381 / 20
    3000 24 24 0.000 / 0.000 / 0.133 / 0.017 1.233 / 1.299 / 20.804 / 0.615 17434 / 17491 / 17548 / 17
    3000 28 4 0.000 / 17.467 / 160.633 / 17.603 1.014 / 1.069 / 15.224 / 0.466 224 / 224 / 224 / 0
    3000 28 8 0.000 / 4.733 / 22.600 / 3.937 1.037 / 1.099 / 17.982 / 0.528 407 / 417 / 426 / 3
    3000 28 12 0.000 / 0.000 / 0.100 / 0.013 1.239 / 1.301 / 20.579 / 0.688 14494 / 14534 / 14579 / 12
    3000 28 16 0.000 / 0.000 / 0.100 / 0.012 1.237 / 1.299 / 16.532 / 0.499 14490 / 14536 / 14575 / 12
    3000 28 20 0.000 / 0.000 / 0.100 / 0.013 1.239 / 1.337 / 19.234 / 0.591 14503 / 14548 / 14594 / 13
    3000 28 24 0.000 / 0.000 / 0.100 / 0.012 1.254 / 1.328 / 17.902 / 0.580 14666 / 14722 / 14789 / 18
    3000 28 28 0.000 / 0.000 / 0.100 / 0.013 1.234 / 1.300 / 20.500 / 0.552 17439 / 17495 / 17558 / 17
    3000 32 4 0.000 / 17.600 / 205.500 / 18.233 1.012 / 1.059 / 11.735 / 0.414 224 / 224 / 224 / 0
    3000 32 8 0.000 / 7.450 / 23.967 / 4.786 1.038 / 1.102 / 15.705 / 0.478 405 / 416 / 424 / 3
    3000 32 12 0.000 / 0.000 / 0.133 / 0.013 1.238 / 1.335 / 18.066 / 0.600 14599 / 14630 / 14661 / 9
    3000 32 16 0.000 / 0.000 / 0.100 / 0.012 1.238 / 1.324 / 20.202 / 0.642 14596 / 14632 / 14662 / 9
    3000 32 20 0.000 / 0.000 / 0.100 / 0.013 1.238 / 1.313 / 17.383 / 0.513 14601 / 14634 / 14663 / 9
    3000 32 24 0.000 / 0.000 / 0.100 / 0.012 1.239 / 1.300 / 19.292 / 0.560 14607 / 14646 / 14677 / 10
    3000 32 28 0.000 / 0.000 / 0.100 / 0.012 1.254 / 1.332 / 20.109 / 0.578 14761 / 14815 / 14872 / 16
    3000 32 32 0.000 / 0.000 / 0.067 / 0.012 1.234 / 1.304 / 18.132 / 0.537 17436 / 17495 / 17546 / 17
    3500 4 4 0.057 / 17.843 / 154.429 / 17.131 1.183 / 1.241 / 18.127 / 0.543 220 / 220 / 220 / 0
    3500 8 4 0.000 / 18.057 / 187.514 / 17.697 1.182 / 1.250 / 20.428 / 0.564 221 / 221 / 221 / 0
    3500 8 8 0.000 / 4.314 / 28.257 / 3.833 1.213 / 1.299 / 20.333 / 0.672 405 / 416 / 424 / 2
    3500 12 4 0.057 / 17.571 / 161.857 / 17.664 1.181 / 1.252 / 20.923 / 0.569 221 / 221 / 221 / 0
    3500 12 8 0.000 / 4.229 / 24.943 / 3.759 1.208 / 1.275 / 22.113 / 0.543 406 / 416 / 424 / 3
    3500 12 12 0.000 / 0.871 / 4.657 / 0.786 1.442 / 1.523 / 18.288 / 0.590 8126 / 8383 / 8643 / 70
    3500 16 4 0.000 / 18.114 / 163.343 / 17.771 1.183 / 1.253 / 20.723 / 0.585 222 / 222 / 222 / 0
    3500 16 8 0.000 / 4.286 / 30.143 / 3.812 1.207 / 1.298 / 20.047 / 0.593 406 / 418 / 424 / 2
    3500 16 12 0.000 / 1.057 / 5.457 / 0.698 1.528 / 1.659 / 22.643 / 0.768 2763 / 2824 / 2893 / 18
    3500 16 16 0.000 / 0.200 / 1.029 / 0.166 1.450 / 1.558 / 20.879 / 0.642 15119 / 15300 / 15466 / 46
    3500 20 4 0.057 / 18.029 / 156.029 / 17.445 1.183 / 1.247 / 13.857 / 0.462 223 / 223 / 223 / 0
    3500 20 8 0.000 / 4.314 / 26.371 / 3.859 1.206 / 1.311 / 22.816 / 0.630 408 / 419 / 426 / 3
    3500 20 12 0.000 / 1.057 / 4.771 / 0.694 1.537 / 1.636 / 23.911 / 0.753 2760 / 2824 / 2883 / 18
    3500 20 16 0.000 / 0.057 / 0.343 / 0.042 1.472 / 1.571 / 20.930 / 0.676 14140 / 14282 / 14406 / 38
    3500 20 20 0.000 / 0.057 / 0.257 / 0.043 1.447 / 1.526 / 15.232 / 0.536 16096 / 16146 / 16234 / 13
    3500 24 4 0.057 / 17.029 / 212.571 / 17.691 1.183 / 1.254 / 17.746 / 0.583 223 / 223 / 223 / 0
    3500 24 8 0.000 / 4.271 / 23.257 / 3.762 1.207 / 1.268 / 15.615 / 0.492 409 / 418 / 426 / 2
    3500 24 12 0.000 / 1.057 / 6.229 / 0.706 1.533 / 1.653 / 22.778 / 0.677 2760 / 2824 / 2888 / 18
    3500 24 16 0.000 / 0.000 / 0.114 / 0.017 1.451 / 1.588 / 18.966 / 0.697 16029 / 16088 / 16131 / 13
    3500 24 20 0.000 / 0.000 / 0.114 / 0.017 1.469 / 1.573 / 16.584 / 0.477 16233 / 16316 / 16395 / 22
    3500 24 24 0.000 / 0.000 / 0.114 / 0.017 1.443 / 1.545 / 14.326 / 0.523 19883 / 19959 / 20026 / 18
    3500 28 4 0.029 / 17.371 / 256.857 / 18.779 1.182 / 1.254 / 13.532 / 0.445 224 / 224 / 224 / 0
    3500 28 8 0.000 / 4.543 / 28.200 / 3.934 1.208 / 1.317 / 22.788 / 0.594 408 / 419 / 427 / 3
    3500 28 12 84.371 / 84.371 / 84.514 / 0.021 1.511 / 1.626 / 15.627 / 0.572 1188 / 1204 / 1220 / 4
    3500 28 16 0.000 / 0.000 / 0.086 / 0.012 1.449 / 1.530 / 13.406 / 0.526 16477 / 16528 / 16572 / 12
    3500 28 20 0.000 / 0.000 / 0.114 / 0.012 1.451 / 1.539 / 16.128 / 0.543 16495 / 16542 / 16587 / 13
    3500 28 24 0.000 / 0.000 / 0.086 / 0.012 1.469 / 1.551 / 15.112 / 0.554 16679 / 16744 / 16813 / 19
    3500 28 28 0.000 / 0.000 / 0.086 / 0.012 1.445 / 1.545 / 15.241 / 0.543 19879 / 19962 / 20018 / 17
    3500 32 4 0.057 / 17.371 / 188.286 / 17.775 1.183 / 1.258 / 13.408 / 0.468 224 / 224 / 224 / 0
    3500 32 8 0.000 / 6.400 / 25.629 / 4.553 1.207 / 1.271 / 12.497 / 0.443 409 / 418 / 427 / 3
    3500 32 12 99.086 / 99.086 / 99.086 / 0.000 1.506 / 1.646 / 14.954 / 0.571 920 / 920 / 920 / 0
    3500 32 16 0.000 / 0.000 / 0.086 / 0.012 1.449 / 1.537 / 15.306 / 0.511 16582 / 16624 / 16657 / 10
    3500 32 20 0.000 / 0.000 / 0.114 / 0.013 1.450 / 1.558 / 15.277 / 0.547 16587 / 16626 / 16657 / 10
    3500 32 24 0.000 / 0.000 / 0.086 / 0.013 1.451 / 1.555 / 20.496 / 0.661 16604 / 16639 / 16678 / 10
    3500 32 28 0.000 / 0.000 / 0.114 / 0.012 1.468 / 1.554 / 15.893 / 0.489 16768 / 16836 / 16895 / 17
    3500 32 32 0.000 / 0.000 / 0.086 / 0.012 1.445 / 1.548 / 20.310 / 0.537 19889 / 19962 / 20025 / 17
    4000 4 4 0.025 / 17.950 / 203.200 / 17.860 1.351 / 1.431 / 14.530 / 0.524 220 / 220 / 220 / 0
    4000 8 4 0.050 / 17.175 / 216.800 / 17.734 1.351 / 1.421 / 19.692 / 0.620 221 / 221 / 221 / 0
    4000 8 8 0.000 / 4.325 / 24.925 / 3.817 1.382 / 1.475 / 19.092 / 0.560 408 / 418 / 424 / 2
    4000 12 4 0.025 / 17.538 / 175.650 / 18.066 1.352 / 1.437 / 19.980 / 0.590 221 / 221 / 221 / 0
    4000 12 8 0.000 / 4.400 / 29.450 / 3.863 1.378 / 1.477 / 22.190 / 0.643 410 / 418 / 424 / 2
    4000 12 12 0.025 / 0.900 / 5.775 / 0.799 1.648 / 1.764 / 19.034 / 0.720 8718 / 8981 / 9265 / 70
    4000 16 4 0.050 / 17.575 / 176.200 / 17.005 1.350 / 1.429 / 18.900 / 0.549 222 / 222 / 222 / 0
    4000 16 8 0.000 / 4.250 / 26.400 / 3.828 1.376 / 1.451 / 18.224 / 0.601 410 / 419 / 425 / 2
    4000 16 12 0.275 / 0.950 / 4.275 / 0.615 1.697 / 1.867 / 21.027 / 0.759 2813 / 2882 / 2951 / 17
    4000 16 16 0.000 / 0.200 / 1.075 / 0.168 1.660 / 1.801 / 17.255 / 0.650 16124 / 17130 / 17352 / 55
    4000 20 4 0.050 / 18.325 / 148.475 / 17.187 1.351 / 1.479 / 18.402 / 0.524 223 / 223 / 223 / 0
    4000 20 8 0.000 / 4.350 / 25.750 / 3.871 1.375 / 1.446 / 24.560 / 0.671 410 / 420 / 426 / 2
    4000 20 12 0.275 / 0.975 / 4.400 / 0.635 1.680 / 1.805 / 23.306 / 0.729 2821 / 2883 / 2951 / 17
    4000 20 16 0.000 / 0.050 / 0.325 / 0.042 1.684 / 1.783 / 20.501 / 0.699 15888 / 16038 / 16188 / 39
    4000 20 20 0.000 / 0.050 / 0.325 / 0.042 1.658 / 1.759 / 19.013 / 0.689 18077 / 18134 / 18240 / 14
    4000 24 4 0.000 / 17.625 / 164.300 / 17.292 1.351 / 1.427 / 19.917 / 0.579 223 / 223 / 223 / 0
    4000 24 8 0.000 / 4.125 / 26.750 / 3.905 1.375 / 1.442 / 18.641 / 0.557 410 / 420 / 426 / 2
    4000 24 12 0.275 / 0.975 / 4.275 / 0.610 1.703 / 1.810 / 22.554 / 0.826 2825 / 2883 / 2942 / 16
    4000 24 16 0.000 / 0.000 / 0.100 / 0.017 1.659 / 1.752 / 17.914 / 0.612 18021 / 18073 / 18152 / 14
    4000 24 20 0.000 / 0.000 / 0.125 / 0.017 1.681 / 1.789 / 20.884 / 0.743 18241 / 18331 / 18404 / 22
    4000 24 24 0.000 / 0.000 / 0.150 / 0.017 1.653 / 1.725 / 16.967 / 0.604 22355 / 22426 / 22594 / 19
    4000 28 4 0.050 / 18.125 / 167.050 / 17.329 1.348 / 1.501 / 23.889 / 0.758 224 / 224 / 224 / 0
    4000 28 8 0.000 / 4.475 / 23.700 / 3.835 1.374 / 1.588 / 21.053 / 0.732 411 / 421 / 427 / 2
    4000 28 12 67.225 / 75.800 / 76.550 / 0.261 1.691 / 1.936 / 17.278 / 0.667 1620 / 1704 / 2001 / 23
    4000 28 16 0.000 / 0.000 / 0.100 / 0.012 1.707 / 1.932 / 16.598 / 0.577 18470 / 18520 / 18569 / 13
    4000 28 20 0.000 / 0.000 / 0.075 / 0.012 1.732 / 1.984 / 20.429 / 0.752 18482 / 18536 / 18582 / 14
    4000 28 24 0.000 / 0.000 / 0.075 / 0.012 1.739 / 1.993 / 21.507 / 0.670 18690 / 18766 / 18838 / 20
    4000 28 28 0.000 / 0.000 / 0.100 / 0.012 1.658 / 1.939 / 14.211 / 0.594 22364 / 22431 / 22489 / 18
    4000 32 4 0.000 / 17.950 / 206.150 / 18.020 1.386 / 1.567 / 14.368 / 0.550 224 / 224 / 224 / 0
    4000 32 8 0.000 / 5.925 / 22.650 / 4.366 1.395 / 1.594 / 16.171 / 0.515 412 / 421 / 427 / 2
    4000 32 12 88.250 / 88.675 / 89.125 / 0.127 1.732 / 1.985 / 23.129 / 0.774 1408 / 1486 / 1563 / 22
    4000 32 16 0.000 / 0.000 / 0.100 / 0.012 1.709 / 1.935 / 28.713 / 0.675 18577 / 18616 / 18647 / 10
    4000 32 20 0.000 / 0.000 / 0.100 / 0.012 1.711 / 1.925 / 20.065 / 0.653 18583 / 18618 / 18653 / 10
    4000 32 24 0.000 / 0.000 / 0.100 / 0.013 1.699 / 1.917 / 20.723 / 0.617 18589 / 18633 / 18664 / 10
    4000 32 28 0.000 / 0.000 / 0.075 / 0.012 1.734 / 1.977 / 27.269 / 0.753 18792 / 18858 / 18921 / 18
    4000 32 32 0.000 / 0.000 / 0.100 / 0.012 1.704 / 1.921 / 14.253 / 0.553 22343 / 22431 / 22575 / 19
    4500 4 4 0.044 / 17.911 / 173.911 / 18.150 1.550 / 1.758 / 15.086 / 0.501 220 / 220 / 220 / 0
    4500 8 4 0.044 / 17.800 / 206.000 / 17.391 1.551 / 1.768 / 13.653 / 0.545 221 / 221 / 221 / 0
    4500 8 8 0.000 / 4.222 / 26.378 / 3.844 1.595 / 1.838 / 20.724 / 0.697 411 / 419 / 424 / 2
    4500 12 4 0.000 / 17.689 / 172.667 / 17.123 1.561 / 1.751 / 15.085 / 0.578 221 / 221 / 221 / 0
    4500 12 8 0.000 / 4.300 / 24.644 / 3.826 1.588 / 1.791 / 20.054 / 0.593 410 / 419 / 424 / 2
    4500 12 12 0.022 / 0.911 / 4.956 / 0.805 1.915 / 2.172 / 19.644 / 0.615 9234 / 9507 / 9768 / 70
    4500 16 4 0.000 / 18.244 / 258.444 / 17.967 1.526 / 1.758 / 15.643 / 0.552 222 / 222 / 222 / 0
    4500 16 8 0.000 / 4.200 / 26.978 / 3.931 1.563 / 1.786 / 15.151 / 0.572 413 / 420 / 425 / 2
    4500 16 12 0.133 / 0.933 / 5.044 / 0.687 1.972 / 2.210 / 22.173 / 0.741 2864 / 2927 / 2980 / 15
    4500 16 16 0.000 / 0.200 / 0.978 / 0.166 1.947 / 2.221 / 21.386 / 0.766 17912 / 18092 / 18533 / 55
    4500 20 4 0.044 / 17.478 / 185.133 / 17.498 1.561 / 1.765 / 13.399 / 0.524 223 / 223 / 223 / 0
    4500 20 8 0.000 / 4.333 / 29.822 / 3.854 1.590 / 1.787 / 17.447 / 0.612 412 / 421 / 426 / 2
    4500 20 12 0.133 / 0.911 / 4.778 / 0.683 1.953 / 2.210 / 24.534 / 0.768 2875 / 2928 / 2982 / 15
    4500 20 16 0.000 / 0.044 / 0.311 / 0.042 1.987 / 2.216 / 14.466 / 0.611 16982 / 17116 / 17239 / 36
    4500 20 20 0.000 / 0.044 / 0.244 / 0.042 1.944 / 2.176 / 20.109 / 0.655 19151 / 19206 / 19254 / 15
    4500 24 4 0.044 / 17.644 / 191.756 / 18.124 1.562 / 1.747 / 15.134 / 0.531 223 / 223 / 223 / 0
    4500 24 8 0.000 / 4.178 / 28.111 / 3.838 1.553 / 1.804 / 23.164 / 0.670 413 / 421 / 426 / 2
    4500 24 12 0.133 / 0.933 / 4.156 / 0.663 1.951 / 2.182 / 18.935 / 0.663 2869 / 2928 / 2982 / 16
    4500 24 16 0.000 / 0.022 / 0.067 / 0.012 1.943 / 2.170 / 17.937 / 0.713 19107 / 19153 / 19196 / 13
    4500 24 20 0.000 / 0.022 / 0.089 / 0.011 1.977 / 2.262 / 24.969 / 0.761 19338 / 19410 / 19500 / 20
    4500 24 24 0.000 / 0.022 / 0.089 / 0.012 1.929 / 2.189 / 18.456 / 0.712 23435 / 23497 / 23550 / 17
    4500 28 4 0.044 / 17.133 / 288.400 / 17.897 1.563 / 1.759 / 19.175 / 0.641 224 / 224 / 224 / 0
    4500 28 8 0.000 / 4.378 / 24.867 / 3.803 1.572 / 1.769 / 21.643 / 0.634 415 / 422 / 427 / 2
    4500 28 12 66.089 / 67.400 / 68.667 / 0.359 1.930 / 2.183 / 28.176 / 0.759 2026 / 2113 / 2214 / 27
    4500 28 16 0.000 / 0.000 / 0.089 / 0.012 1.954 / 2.170 / 20.834 / 0.751 19176 / 19211 / 19240 / 9
    4500 28 20 0.000 / 0.000 / 0.089 / 0.012 1.942 / 2.170 / 21.282 / 0.708 19191 / 19228 / 19261 / 10
    4500 28 24 0.000 / 0.000 / 0.067 / 0.012 1.982 / 2.234 / 29.563 / 0.905 19410 / 19480 / 19557 / 18
    4500 28 28 0.000 / 0.000 / 0.089 / 0.012 1.944 / 2.180 / 21.368 / 0.749 23437 / 23501 / 23562 / 17
    4500 32 4 0.044 / 17.778 / 204.511 / 18.488 1.564 / 1.801 / 23.871 / 0.680 224 / 224 / 224 / 0
    4500 32 8 0.000 / 5.489 / 22.289 / 4.225 1.588 / 1.786 / 19.144 / 0.592 413 / 422 / 427 / 2
    4500 32 12 77.822 / 78.800 / 79.689 / 0.242 1.926 / 2.172 / 21.370 / 0.726 1838 / 1948 / 2039 / 26
    4500 32 16 0.000 / 0.000 / 0.089 / 0.012 1.955 / 2.213 / 24.360 / 0.725 19171 / 19210 / 19238 / 9
    4500 32 20 0.000 / 0.000 / 0.089 / 0.012 1.949 / 2.186 / 17.274 / 0.660 19179 / 19212 / 19241 / 9
    4500 32 24 0.000 / 0.000 / 0.089 / 0.012 1.889 / 2.182 / 28.660 / 0.825 19192 / 19228 / 19262 / 10
    4500 32 28 0.000 / 0.000 / 0.089 / 0.012 1.903 / 2.039 / 21.219 / 0.700 19423 / 19482 / 19549 / 18
    4500 32 32 0.000 / 0.000 / 0.089 / 0.012 1.870 / 2.004 / 20.273 / 0.742 23437 / 23501 / 23566 / 17
    5000 4 4 0.000 / 17.720 / 192.140 / 17.740 1.684 / 1.829 / 14.606 / 0.612 220 / 220 / 220 / 0
    5000 8 4 0.060 / 17.700 / 186.580 / 17.279 1.683 / 1.818 / 15.426 / 0.599 221 / 221 / 221 / 0
    5000 8 8 0.000 / 4.300 / 27.780 / 3.783 1.715 / 1.913 / 20.698 / 0.741 412 / 420 / 424 / 2
    5000 12 4 0.000 / 17.040 / 206.400 / 18.593 1.683 / 1.809 / 17.501 / 0.622 221 / 221 / 221 / 0
    5000 12 8 0.000 / 4.300 / 25.740 / 3.805 1.710 / 1.811 / 19.765 / 0.670 413 / 421 / 424 / 2
    5000 12 12 0.020 / 0.920 / 5.200 / 0.842 2.066 / 2.203 / 25.912 / 0.840 9696 / 9977 / 10220 / 71
    5000 16 4 0.000 / 17.700 / 190.640 / 16.754 1.682 / 1.765 / 21.803 / 0.664 222 / 222 / 222 / 0
    5000 16 8 0.000 / 4.300 / 30.580 / 3.861 1.709 / 1.813 / 20.311 / 0.618 414 / 422 / 425 / 2
    5000 16 12 0.000 / 0.880 / 5.140 / 0.747 2.037 / 2.178 / 23.255 / 0.740 2911 / 2962 / 3013 / 14
    5000 16 16 0.000 / 0.200 / 1.120 / 0.171 2.094 / 2.204 / 20.890 / 0.784 20566 / 21208 / 21872 / 88
    5000 20 4 0.000 / 17.620 / 127.520 / 17.257 1.687 / 1.927 / 26.894 / 0.816 223 / 223 / 223 / 0
    5000 20 8 0.000 / 4.330 / 28.580 / 3.861 1.710 / 1.909 / 18.186 / 0.643 415 / 423 / 426 / 2
    5000 20 12 0.000 / 0.900 / 5.340 / 0.743 2.055 / 2.302 / 22.473 / 0.763 2905 / 2963 / 3013 / 14
    5000 20 16 0.000 / 0.040 / 0.320 / 0.043 2.137 / 2.410 / 24.675 / 0.864 19509 / 19910 / 20058 / 42
    5000 20 20 0.000 / 0.040 / 0.280 / 0.042 2.097 / 2.369 / 25.517 / 0.830 21768 / 22416 / 22538 / 26
    5000 24 4 0.040 / 17.450 / 201.900 / 17.504 1.686 / 1.861 / 18.820 / 0.618 223 / 223 / 223 / 0
    5000 24 8 0.000 / 4.200 / 28.260 / 3.839 1.713 / 1.923 / 19.929 / 0.679 415 / 422 / 426 / 2
    5000 24 12 0.000 / 0.900 / 4.780 / 0.766 2.047 / 2.287 / 15.684 / 0.699 2912 / 2963 / 3016 / 14
    5000 24 16 0.000 / 0.020 / 0.100 / 0.012 2.102 / 2.375 / 21.730 / 0.818 22296 / 22351 / 22415 / 15
    5000 24 20 0.000 / 0.020 / 0.080 / 0.012 2.128 / 2.397 / 24.851 / 0.845 22577 / 22658 / 22745 / 23
    5000 24 24 0.000 / 0.020 / 0.080 / 0.012 2.092 / 2.377 / 22.543 / 0.800 27480 / 27560 / 27624 / 20
    5000 28 4 0.000 / 17.860 / 158.380 / 17.534 1.686 / 1.875 / 17.770 / 0.647 224 / 224 / 224 / 0
    5000 28 8 0.000 / 4.380 / 22.440 / 3.886 1.712 / 1.969 / 22.211 / 0.772 416 / 423 / 427 / 2
    5000 28 12 59.020 / 60.660 / 62.740 / 0.463 2.037 / 2.288 / 20.272 / 0.652 2300 / 2388 / 2487 / 26
    5000 28 16 0.000 / 0.000 / 0.100 / 0.012 2.099 / 2.378 / 23.672 / 0.868 22667 / 22723 / 22765 / 13
    5000 28 20 0.000 / 0.000 / 0.080 / 0.012 2.100 / 2.389 / 21.719 / 0.838 22687 / 22742 / 22788 / 14
    5000 28 24 0.000 / 0.000 / 0.080 / 0.012 2.132 / 2.393 / 23.989 / 0.763 22950 / 23027 / 23106 / 21
    5000 28 28 0.000 / 0.000 / 0.080 / 0.012 2.094 / 2.386 / 24.741 / 0.892 27502 / 27565 / 27637 / 20
    5000 32 4 0.000 / 18.060 / 189.520 / 18.378 1.686 / 1.919 / 26.851 / 0.838 224 / 224 / 224 / 0
    5000 32 8 0.000 / 5.280 / 26.500 / 4.157 1.714 / 1.930 / 21.178 / 0.750 416 / 423 / 427 / 2
    5000 32 12 69.800 / 70.920 / 72.440 / 0.341 2.034 / 2.293 / 21.420 / 0.754 2160 / 2261 / 2356 / 27
    5000 32 16 0.000 / 0.000 / 0.080 / 0.012 2.099 / 2.387 / 25.364 / 0.794 21966 / 22798 / 22832 / 16
    5000 32 20 0.000 / 0.000 / 0.080 / 0.012 2.095 / 2.410 / 41.338 / 1.022 22759 / 22800 / 22839 / 11
    5000 32 24 0.000 / 0.000 / 0.100 / 0.012 2.100 / 2.277 / 23.671 / 0.742 22773 / 22818 / 22856 / 11
    5000 32 28 0.000 / 0.000 / 0.100 / 0.012 2.125 / 2.435 / 20.889 / 0.961 22274 / 23099 / 23169 / 23
    5000 32 32 0.000 / 0.000 / 0.060 / 0.012 2.088 / 2.280 / 16.157 / 0.705 27494 / 27565 / 27640 / 19
    card sp p err l/m/h/std (% of actual) time l/m/h/std (ms) size l/m/h/std (b)
    1500 4 4 0.000 / 17.600 / 254.400 / 17.627 0.501 / 0.612 / 19.629 / 0.593 220 / 220 / 220 / 0
    1500 8 4 0.000 / 17.600 / 158.133 / 16.980 0.506 / 0.594 / 16.843 / 0.493 221 / 221 / 221 / 0
    1500 8 8 0.000 / 4.000 / 23.933 / 3.590 0.533 / 0.567 / 11.059 / 0.259 392 / 404 / 416 / 3
    1500 12 4 0.000 / 18.067 / 208.733 / 17.934 0.505 / 0.531 / 20.544 / 0.368 221 / 221 / 221 / 0
    1500 12 8 0.000 / 4.067 / 22.133 / 3.579 0.529 / 0.576 / 22.421 / 0.453 391 / 404 / 416 / 3
    1500 12 12 0.000 / 0.800 / 4.133 / 0.707 0.607 / 0.638 / 15.124 / 0.329 4338 / 4489 / 4656 / 43
    1500 16 4 0.000 / 17.200 / 167.333 / 17.918 0.508 / 0.546 / 17.715 / 0.381 221 / 222 / 222 / 0
    1500 16 8 0.000 / 3.933 / 23.667 / 3.605 0.530 / 0.564 / 18.635 / 0.407 393 / 405 / 417 / 3
    1500 16 12 0.000 / 0.200 / 1.067 / 0.166 0.621 / 0.689 / 17.660 / 0.364 5177 / 5271 / 5341 / 21
    1500 16 16 0.000 / 0.200 / 0.933 / 0.165 0.612 / 0.654 / 19.700 / 0.419 6688 / 6775 / 6855 / 23
    1500 20 4 0.000 / 17.600 / 231.333 / 17.757 0.509 / 0.544 / 20.194 / 0.369 223 / 223 / 223 / 0
    1500 20 8 0.000 / 3.933 / 25.600 / 3.728 0.529 / 0.570 / 15.702 / 0.372 395 / 406 / 417 / 3
    1500 20 12 0.000 / 0.067 / 0.333 / 0.047 0.612 / 0.659 / 12.620 / 0.343 6097 / 6191 / 6281 / 24
    1500 20 16 0.000 / 0.067 / 0.400 / 0.047 0.619 / 0.648 / 13.508 / 0.300 6163 / 6244 / 6344 / 24
    1500 20 20 0.000 / 0.067 / 0.333 / 0.047 0.610 / 0.650 / 12.478 / 0.323 7019 / 7048 / 7093 / 6
    1500 24 4 0.000 / 17.467 / 156.333 / 18.009 0.508 / 0.569 / 17.878 / 0.386 223 / 223 / 223 / 0
    1500 24 8 0.000 / 4.067 / 27.400 / 3.599 0.529 / 0.564 / 21.583 / 0.397 394 / 406 / 416 / 3
    1500 24 12 0.000 / 0.000 / 0.133 / 0.017 0.611 / 0.655 / 16.659 / 0.383 6974 / 7008 / 7039 / 8
    1500 24 16 0.000 / 0.000 / 0.133 / 0.017 0.612 / 0.644 / 10.934 / 0.313 6981 / 7016 / 7048 / 9
    1500 24 20 0.000 / 0.000 / 0.133 / 0.017 0.620 / 0.683 / 21.873 / 0.512 7064 / 7115 / 7167 / 14
    1500 24 24 0.000 / 0.000 / 0.133 / 0.017 0.609 / 0.634 / 13.249 / 0.315 8645 / 8684 / 8722 / 11
    1500 28 4 0.000 / 17.467 / 157.067 / 17.312 0.508 / 0.529 / 14.149 / 0.336 224 / 224 / 224 / 0
    1500 28 8 0.000 / 8.533 / 25.933 / 4.865 0.529 / 0.561 / 15.511 / 0.380 396 / 406 / 419 / 3
    1500 28 12 0.000 / 0.000 / 0.133 / 0.012 0.611 / 0.657 / 10.977 / 0.294 7178 / 7209 / 7239 / 8
    1500 28 16 0.000 / 0.000 / 0.133 / 0.013 0.611 / 0.636 / 12.958 / 0.319 7177 / 7211 / 7240 / 8
    1500 28 20 0.000 / 0.000 / 0.133 / 0.012 0.612 / 0.646 / 13.818 / 0.327 7185 / 7218 / 7248 / 9
    1500 28 24 0.000 / 0.000 / 0.133 / 0.012 0.619 / 0.662 / 11.359 / 0.279 7258 / 7305 / 7354 / 13
    1500 28 28 0.000 / 0.000 / 0.133 / 0.012 0.609 / 0.648 / 12.260 / 0.300 8643 / 8687 / 8732 / 12
    1500 32 4 0.000 / 17.267 / 175.933 / 18.415 0.508 / 0.529 / 11.408 / 0.321 224 / 224 / 224 / 0
    1500 32 8 0.000 / 14.667 / 29.200 / 4.897 0.529 / 0.563 / 11.784 / 0.278 393 / 404 / 416 / 3
    1500 32 12 0.000 / 0.000 / 0.133 / 0.012 0.611 / 0.668 / 13.335 / 0.342 7226 / 7252 / 7273 / 6
    1500 32 16 0.000 / 0.000 / 0.133 / 0.012 0.611 / 0.655 / 19.309 / 0.454 7230 / 7254 / 7276 / 6
    1500 32 20 0.000 / 0.000 / 0.133 / 0.012 0.612 / 0.643 / 12.975 / 0.314 7231 / 7256 / 7277 / 6
    1500 32 24 0.000 / 0.000 / 0.067 / 0.013 0.612 / 0.666 / 12.496 / 0.357 7236 / 7262 / 7286 / 7
    1500 32 28 0.000 / 0.000 / 0.133 / 0.013 0.625 / 0.657 / 21.381 / 0.401 7305 / 7347 / 7383 / 11
    1500 32 32 0.000 / 0.000 / 0.133 / 0.012 0.609 / 0.652 / 19.148 / 0.387 8643 / 8687 / 8724 / 12
    2000 4 4 0.050 / 17.950 / 200.300 / 17.701 0.678 / 0.712 / 13.274 / 0.370 220 / 220 / 220 / 0
    2000 8 4 0.050 / 17.200 / 227.450 / 17.112 0.678 / 0.706 / 12.428 / 0.357 221 / 221 / 221 / 0
    2000 8 8 0.000 / 4.150 / 28.100 / 3.687 0.705 / 0.746 / 11.845 / 0.297 397 / 408 / 418 / 3
    2000 12 4 0.050 / 17.075 / 166.300 / 17.289 0.679 / 0.746 / 19.810 / 0.436 221 / 221 / 221 / 0
    2000 12 8 0.000 / 4.050 / 26.000 / 3.697 0.700 / 0.772 / 19.166 / 0.385 396 / 408 / 419 / 3
    2000 12 12 0.050 / 0.850 / 4.150 / 0.733 0.818 / 0.904 / 20.237 / 0.460 5109 / 5354 / 5633 / 103
    2000 16 4 0.050 / 17.650 / 196.200 / 17.539 0.678 / 0.747 / 17.211 / 0.435 222 / 222 / 222 / 0
    2000 16 8 0.000 / 4.100 / 23.650 / 3.720 0.699 / 0.770 / 17.887 / 0.378 397 / 409 / 420 / 3
    2000 16 12 0.000 / 0.200 / 1.100 / 0.163 0.835 / 0.915 / 24.825 / 0.515 6456 / 6547 / 6647 / 23
    2000 16 16 0.000 / 0.200 / 1.100 / 0.167 0.820 / 0.906 / 15.149 / 0.427 8177 / 8278 / 8384 / 27
    2000 20 4 0.050 / 17.650 / 184.550 / 17.468 0.678 / 0.742 / 19.468 / 0.449 223 / 223 / 223 / 0
    2000 20 8 0.000 / 4.150 / 27.500 / 3.693 0.700 / 0.756 / 12.525 / 0.289 399 / 410 / 420 / 3
    2000 20 12 0.000 / 0.050 / 0.350 / 0.044 0.830 / 0.921 / 19.963 / 0.553 7551 / 7643 / 7742 / 23
    2000 20 16 0.000 / 0.050 / 0.300 / 0.044 0.840 / 0.916 / 16.698 / 0.448 7615 / 7702 / 7789 / 23
    2000 20 20 0.000 / 0.050 / 0.300 / 0.044 0.824 / 0.909 / 23.619 / 0.600 8602 / 8633 / 8652 / 7
    2000 24 4 0.050 / 17.600 / 249.350 / 17.740 0.675 / 0.754 / 18.418 / 0.431 223 / 223 / 223 / 0
    2000 24 8 0.000 / 4.150 / 24.700 / 3.663 0.697 / 0.753 / 24.521 / 0.466 398 / 410 / 421 / 3
    2000 24 12 0.000 / 0.000 / 0.150 / 0.017 0.825 / 0.907 / 16.320 / 0.373 8559 / 8591 / 8621 / 8
    2000 24 16 0.000 / 0.000 / 0.100 / 0.017 0.826 / 0.876 / 20.177 / 0.403 8567 / 8600 / 8630 / 9
    2000 24 20 0.000 / 0.000 / 0.100 / 0.017 0.836 / 0.891 / 18.865 / 0.429 8670 / 8715 / 8762 / 13
    2000 24 24 0.000 / 0.000 / 0.150 / 0.017 0.823 / 0.874 / 13.270 / 0.398 10491 / 10531 / 10569 / 11
    2000 28 4 0.050 / 17.600 / 206.800 / 17.750 0.675 / 0.726 / 18.063 / 0.424 224 / 224 / 224 / 0
    2000 28 8 0.000 / 6.050 / 23.850 / 4.359 0.698 / 0.752 / 24.616 / 0.531 400 / 411 / 421 / 3
    2000 28 12 0.000 / 0.000 / 0.100 / 0.013 0.826 / 0.879 / 16.497 / 0.458 8600 / 8623 / 8641 / 6
    2000 28 16 0.000 / 0.000 / 0.100 / 0.012 0.826 / 0.898 / 16.948 / 0.417 8602 / 8626 / 8645 / 6
    2000 28 20 0.000 / 0.000 / 0.150 / 0.013 0.826 / 0.876 / 21.015 / 0.435 8609 / 8634 / 8656 / 6
    2000 28 24 0.000 / 0.000 / 0.100 / 0.012 0.836 / 0.878 / 19.773 / 0.462 8704 / 8746 / 8791 / 12
    2000 28 28 0.000 / 0.000 / 0.100 / 0.012 0.823 / 0.877 / 14.429 / 0.366 10489 / 10535 / 10573 / 11
    2000 32 4 0.050 / 18.300 / 180.850 / 18.635 0.676 / 0.723 / 18.331 / 0.431 224 / 224 / 224 / 0
    2000 32 8 0.000 / 10.900 / 26.400 / 5.122 0.698 / 0.742 / 18.170 / 0.443 397 / 409 / 420 / 3
    2000 32 12 0.000 / 0.000 / 0.100 / 0.013 0.825 / 0.869 / 12.927 / 0.376 8603 / 8623 / 8642 / 6
    2000 32 16 0.000 / 0.000 / 0.100 / 0.012 0.826 / 0.876 / 12.052 / 0.376 8601 / 8625 / 8644 / 6
    2000 32 20 0.000 / 0.000 / 0.100 / 0.012 0.824 / 0.883 / 19.872 / 0.492 8602 / 8627 / 8644 / 6
    2000 32 24 0.000 / 0.000 / 0.100 / 0.012 0.826 / 0.879 / 21.842 / 0.509 8610 / 8635 / 8654 / 6
    2000 32 28 0.000 / 0.000 / 0.150 / 0.012 0.836 / 0.894 / 18.071 / 0.448 8707 / 8748 / 8791 / 12
    2000 32 32 0.000 / 0.000 / 0.100 / 0.012 0.823 / 0.870 / 13.917 / 0.398 10491 / 10535 / 10575 / 11
    2500 4 4 0.000 / 17.480 / 215.840 / 18.035 0.844 / 0.896 / 17.723 / 0.444 220 / 220 / 220 / 0
    2500 8 4 0.000 / 17.960 / 369.960 / 18.503 0.844 / 0.897 / 20.260 / 0.542 221 / 221 / 221 / 0
    2500 8 8 0.000 / 4.080 / 23.280 / 3.639 0.874 / 0.928 / 21.505 / 0.472 399 / 412 / 420 / 3
    2500 12 4 0.000 / 17.520 / 204.760 / 17.973 0.845 / 0.963 / 21.008 / 0.499 221 / 221 / 221 / 0
    2500 12 8 0.000 / 4.080 / 30.120 / 3.683 0.869 / 0.946 / 18.277 / 0.488 400 / 412 / 421 / 3
    2500 12 12 0.000 / 0.880 / 4.600 / 0.747 1.025 / 1.134 / 20.157 / 0.532 6140 / 6934 / 7154 / 78
    2500 16 4 0.000 / 17.240 / 173.400 / 17.729 0.845 / 0.902 / 15.768 / 0.421 222 / 222 / 222 / 0
    2500 16 8 0.000 / 4.160 / 25.520 / 3.846 0.868 / 0.929 / 11.497 / 0.362 401 / 413 / 422 / 3
    2500 16 12 0.000 / 0.200 / 1.080 / 0.164 1.048 / 1.156 / 20.371 / 0.514 8704 / 8924 / 9057 / 33
    2500 16 16 0.000 / 0.200 / 1.000 / 0.166 1.031 / 1.108 / 13.336 / 0.432 11159 / 11486 / 11633 / 42
    2500 20 4 0.000 / 17.600 / 154.600 / 17.373 0.845 / 0.951 / 14.707 / 0.424 223 / 223 / 223 / 0
    2500 20 8 0.000 / 4.200 / 23.720 / 3.781 0.868 / 0.932 / 20.062 / 0.477 397 / 414 / 424 / 3
    2500 20 12 0.000 / 0.040 / 0.320 / 0.044 1.032 / 1.119 / 17.855 / 0.560 10273 / 10533 / 10639 / 33
    2500 20 16 0.000 / 0.040 / 0.320 / 0.043 1.045 / 1.107 / 16.834 / 0.461 10370 / 10621 / 10730 / 33
    2500 20 20 0.000 / 0.040 / 0.400 / 0.044 1.028 / 1.087 / 22.330 / 0.536 11718 / 11995 / 12020 / 12
    2500 24 4 0.000 / 17.480 / 156.160 / 17.171 0.844 / 0.890 / 18.096 / 0.406 223 / 223 / 223 / 0
    2500 24 8 0.000 / 4.140 / 22.280 / 3.716 0.868 / 0.915 / 19.031 / 0.458 403 / 414 / 423 / 3
    2500 24 12 0.000 / 0.000 / 0.160 / 0.017 1.030 / 1.088 / 22.283 / 0.500 11894 / 11934 / 11971 / 11
    2500 24 16 0.000 / 0.000 / 0.120 / 0.017 1.032 / 1.090 / 18.220 / 0.547 11896 / 11947 / 11990 / 12
    2500 24 20 0.000 / 0.000 / 0.120 / 0.018 1.043 / 1.101 / 17.194 / 0.516 12056 / 12115 / 12187 / 18
    2500 24 24 0.000 / 0.000 / 0.120 / 0.018 1.027 / 1.098 / 21.530 / 0.547 14736 / 14798 / 14849 / 15
    2500 28 4 0.000 / 17.720 / 199.480 / 17.641 0.845 / 0.900 / 20.585 / 0.511 224 / 224 / 224 / 0
    2500 28 8 0.000 / 5.200 / 22.920 / 4.106 0.869 / 0.914 / 12.212 / 0.359 403 / 414 / 425 / 3
    2500 28 12 0.000 / 0.000 / 0.080 / 0.012 1.031 / 1.085 / 17.978 / 0.500 12267 / 12329 / 12367 / 11
    2500 28 16 0.000 / 0.000 / 0.120 / 0.013 1.030 / 1.094 / 18.134 / 0.519 11986 / 12331 / 12372 / 13
    2500 28 20 0.000 / 0.000 / 0.120 / 0.011 1.031 / 1.086 / 20.068 / 0.550 12296 / 12341 / 12382 / 12
    2500 28 24 0.000 / 0.000 / 0.080 / 0.012 1.043 / 1.121 / 21.095 / 0.587 12117 / 12486 / 12547 / 17
    2500 28 28 0.000 / 0.000 / 0.080 / 0.012 1.028 / 1.097 / 20.162 / 0.573 14747 / 14802 / 14864 / 15
    2500 32 4 0.000 / 18.200 / 187.680 / 18.797 0.844 / 0.889 / 20.143 / 0.460 224 / 224 / 224 / 0
    2500 32 8 0.000 / 8.680 / 25.600 / 4.951 0.868 / 0.923 / 20.998 / 0.525 402 / 413 / 422 / 3
    2500 32 12 0.000 / 0.000 / 0.080 / 0.012 1.030 / 1.130 / 24.624 / 0.666 12378 / 12414 / 12443 / 8
    2500 32 16 0.000 / 0.000 / 0.080 / 0.012 1.030 / 1.090 / 17.364 / 0.532 12381 / 12416 / 12443 / 8
    2500 32 20 0.000 / 0.000 / 0.120 / 0.012 1.029 / 1.152 / 27.049 / 0.647 12386 / 12418 / 12444 / 8
    2500 32 24 0.000 / 0.000 / 0.080 / 0.013 1.031 / 1.083 / 26.018 / 0.575 12390 / 12427 / 12460 / 9
    2500 32 28 0.000 / 0.000 / 0.120 / 0.013 1.042 / 1.102 / 18.739 / 0.486 12513 / 12568 / 12621 / 14
    2500 32 32 0.000 / 0.000 / 0.120 / 0.012 1.027 / 1.088 / 16.996 / 0.499 14742 / 14802 / 14851 / 15
    3000 4 4 0.000 / 17.833 / 186.867 / 17.498 1.013 / 1.080 / 18.433 / 0.461 220 / 220 / 220 / 0
    3000 8 4 0.033 / 17.600 / 201.567 / 17.855 1.013 / 1.074 / 19.563 / 0.528 221 / 221 / 221 / 0
    3000 8 8 0.000 / 4.300 / 26.467 / 3.786 1.042 / 1.101 / 13.911 / 0.435 403 / 414 / 422 / 3
    3000 12 4 0.000 / 17.467 / 212.600 / 18.720 1.014 / 1.070 / 21.257 / 0.509 221 / 221 / 221 / 0
    3000 12 8 0.000 / 4.167 / 30.600 / 3.794 1.039 / 1.104 / 20.074 / 0.553 405 / 414 / 422 / 3
    3000 12 12 0.000 / 0.833 / 4.833 / 0.745 1.233 / 1.322 / 20.558 / 0.638 7453 / 7706 / 7923 / 67
    3000 16 4 0.000 / 18.117 / 152.933 / 17.161 1.013 / 1.101 / 21.535 / 0.564 222 / 222 / 222 / 0
    3000 16 8 0.000 / 4.200 / 25.633 / 3.817 1.037 / 1.100 / 18.806 / 0.554 405 / 415 / 423 / 3
    3000 16 12 0.000 / 0.200 / 1.033 / 0.169 1.258 / 1.331 / 22.352 / 0.682 10292 / 10439 / 10570 / 37
    3000 16 16 0.000 / 0.200 / 0.967 / 0.166 1.238 / 1.317 / 18.279 / 0.589 13313 / 13458 / 13612 / 43
    3000 20 4 0.000 / 17.467 / 164.967 / 17.757 1.013 / 1.113 / 19.652 / 0.508 223 / 223 / 223 / 0
    3000 20 8 0.000 / 4.167 / 24.267 / 3.743 1.038 / 1.092 / 18.642 / 0.554 405 / 416 / 425 / 3
    3000 20 12 0.000 / 0.033 / 0.400 / 0.045 1.240 / 1.303 / 14.404 / 0.517 12293 / 12419 / 12571 / 35
    3000 20 16 0.000 / 0.033 / 0.300 / 0.045 1.256 / 1.327 / 17.597 / 0.537 12406 / 12522 / 12655 / 35
    3000 20 20 0.000 / 0.033 / 0.333 / 0.044 1.237 / 1.308 / 20.509 / 0.558 14100 / 14156 / 14250 / 11
    3000 24 4 0.000 / 17.417 / 215.733 / 18.149 1.013 / 1.091 / 21.116 / 0.517 223 / 223 / 223 / 0
    3000 24 8 0.000 / 4.233 / 21.767 / 3.773 1.036 / 1.092 / 11.990 / 0.434 406 / 416 / 426 / 3
    3000 24 12 0.000 / 0.000 / 0.100 / 0.017 1.239 / 1.343 / 19.689 / 0.541 14036 / 14088 / 14126 / 12
    3000 24 16 0.000 / 0.000 / 0.133 / 0.017 1.239 / 1.311 / 14.029 / 0.532 14050 / 14102 / 14146 / 13
    3000 24 20 0.000 / 0.000 / 0.133 / 0.017 1.255 / 1.327 / 25.879 / 0.611 14218 / 14302 / 14381 / 20
    3000 24 24 0.000 / 0.000 / 0.133 / 0.017 1.233 / 1.299 / 20.804 / 0.615 17434 / 17491 / 17548 / 17
    3000 28 4 0.000 / 17.467 / 160.633 / 17.603 1.014 / 1.069 / 15.224 / 0.466 224 / 224 / 224 / 0
    3000 28 8 0.000 / 4.733 / 22.600 / 3.937 1.037 / 1.099 / 17.982 / 0.528 407 / 417 / 426 / 3
    3000 28 12 0.000 / 0.000 / 0.100 / 0.013 1.239 / 1.301 / 20.579 / 0.688 14494 / 14534 / 14579 / 12
    3000 28 16 0.000 / 0.000 / 0.100 / 0.012 1.237 / 1.299 / 16.532 / 0.499 14490 / 14536 / 14575 / 12
    3000 28 20 0.000 / 0.000 / 0.100 / 0.013 1.239 / 1.337 / 19.234 / 0.591 14503 / 14548 / 14594 / 13
    3000 28 24 0.000 / 0.000 / 0.100 / 0.012 1.254 / 1.328 / 17.902 / 0.580 14666 / 14722 / 14789 / 18
    3000 28 28 0.000 / 0.000 / 0.100 / 0.013 1.234 / 1.300 / 20.500 / 0.552 17439 / 17495 / 17558 / 17
    3000 32 4 0.000 / 17.600 / 205.500 / 18.233 1.012 / 1.059 / 11.735 / 0.414 224 / 224 / 224 / 0
    3000 32 8 0.000 / 7.450 / 23.967 / 4.786 1.038 / 1.102 / 15.705 / 0.478 405 / 416 / 424 / 3
    3000 32 12 0.000 / 0.000 / 0.133 / 0.013 1.238 / 1.335 / 18.066 / 0.600 14599 / 14630 / 14661 / 9
    3000 32 16 0.000 / 0.000 / 0.100 / 0.012 1.238 / 1.324 / 20.202 / 0.642 14596 / 14632 / 14662 / 9
    3000 32 20 0.000 / 0.000 / 0.100 / 0.013 1.238 / 1.313 / 17.383 / 0.513 14601 / 14634 / 14663 / 9
    3000 32 24 0.000 / 0.000 / 0.100 / 0.012 1.239 / 1.300 / 19.292 / 0.560 14607 / 14646 / 14677 / 10
    3000 32 28 0.000 / 0.000 / 0.100 / 0.012 1.254 / 1.332 / 20.109 / 0.578 14761 / 14815 / 14872 / 16
    3000 32 32 0.000 / 0.000 / 0.067 / 0.012 1.234 / 1.304 / 18.132 / 0.537 17436 / 17495 / 17546 / 17
    3500 4 4 0.057 / 17.843 / 154.429 / 17.131 1.183 / 1.241 / 18.127 / 0.543 220 / 220 / 220 / 0
    3500 8 4 0.000 / 18.057 / 187.514 / 17.697 1.182 / 1.250 / 20.428 / 0.564 221 / 221 / 221 / 0
    3500 8 8 0.000 / 4.314 / 28.257 / 3.833 1.213 / 1.299 / 20.333 / 0.672 405 / 416 / 424 / 2
    3500 12 4 0.057 / 17.571 / 161.857 / 17.664 1.181 / 1.252 / 20.923 / 0.569 221 / 221 / 221 / 0
    3500 12 8 0.000 / 4.229 / 24.943 / 3.759 1.208 / 1.275 / 22.113 / 0.543 406 / 416 / 424 / 3
    3500 12 12 0.000 / 0.871 / 4.657 / 0.786 1.442 / 1.523 / 18.288 / 0.590 8126 / 8383 / 8643 / 70
    3500 16 4 0.000 / 18.114 / 163.343 / 17.771 1.183 / 1.253 / 20.723 / 0.585 222 / 222 / 222 / 0
    3500 16 8 0.000 / 4.286 / 30.143 / 3.812 1.207 / 1.298 / 20.047 / 0.593 406 / 418 / 424 / 2
    3500 16 12 0.000 / 1.057 / 5.457 / 0.698 1.528 / 1.659 / 22.643 / 0.768 2763 / 2824 / 2893 / 18
    3500 16 16 0.000 / 0.200 / 1.029 / 0.166 1.450 / 1.558 / 20.879 / 0.642 15119 / 15300 / 15466 / 46
    3500 20 4 0.057 / 18.029 / 156.029 / 17.445 1.183 / 1.247 / 13.857 / 0.462 223 / 223 / 223 / 0
    3500 20 8 0.000 / 4.314 / 26.371 / 3.859 1.206 / 1.311 / 22.816 / 0.630 408 / 419 / 426 / 3
    3500 20 12 0.000 / 1.057 / 4.771 / 0.694 1.537 / 1.636 / 23.911 / 0.753 2760 / 2824 / 2883 / 18
    3500 20 16 0.000 / 0.057 / 0.343 / 0.042 1.472 / 1.571 / 20.930 / 0.676 14140 / 14282 / 14406 / 38
    3500 20 20 0.000 / 0.057 / 0.257 / 0.043 1.447 / 1.526 / 15.232 / 0.536 16096 / 16146 / 16234 / 13
    3500 24 4 0.057 / 17.029 / 212.571 / 17.691 1.183 / 1.254 / 17.746 / 0.583 223 / 223 / 223 / 0
    3500 24 8 0.000 / 4.271 / 23.257 / 3.762 1.207 / 1.268 / 15.615 / 0.492 409 / 418 / 426 / 2
    3500 24 12 0.000 / 1.057 / 6.229 / 0.706 1.533 / 1.653 / 22.778 / 0.677 2760 / 2824 / 2888 / 18
    3500 24 16 0.000 / 0.000 / 0.114 / 0.017 1.451 / 1.588 / 18.966 / 0.697 16029 / 16088 / 16131 / 13
    3500 24 20 0.000 / 0.000 / 0.114 / 0.017 1.469 / 1.573 / 16.584 / 0.477 16233 / 16316 / 16395 / 22
    3500 24 24 0.000 / 0.000 / 0.114 / 0.017 1.443 / 1.545 / 14.326 / 0.523 19883 / 19959 / 20026 / 18
    3500 28 4 0.029 / 17.371 / 256.857 / 18.779 1.182 / 1.254 / 13.532 / 0.445 224 / 224 / 224 / 0
    3500 28 8 0.000 / 4.543 / 28.200 / 3.934 1.208 / 1.317 / 22.788 / 0.594 408 / 419 / 427 / 3
    3500 28 12 84.371 / 84.371 / 84.514 / 0.021 1.511 / 1.626 / 15.627 / 0.572 1188 / 1204 / 1220 / 4
    3500 28 16 0.000 / 0.000 / 0.086 / 0.012 1.449 / 1.530 / 13.406 / 0.526 16477 / 16528 / 16572 / 12
    3500 28 20 0.000 / 0.000 / 0.114 / 0.012 1.451 / 1.539 / 16.128 / 0.543 16495 / 16542 / 16587 / 13
    3500 28 24 0.000 / 0.000 / 0.086 / 0.012 1.469 / 1.551 / 15.112 / 0.554 16679 / 16744 / 16813 / 19
    3500 28 28 0.000 / 0.000 / 0.086 / 0.012 1.445 / 1.545 / 15.241 / 0.543 19879 / 19962 / 20018 / 17
    3500 32 4 0.057 / 17.371 / 188.286 / 17.775 1.183 / 1.258 / 13.408 / 0.468 224 / 224 / 224 / 0
    3500 32 8 0.000 / 6.400 / 25.629 / 4.553 1.207 / 1.271 / 12.497 / 0.443 409 / 418 / 427 / 3
    3500 32 12 99.086 / 99.086 / 99.086 / 0.000 1.506 / 1.646 / 14.954 / 0.571 920 / 920 / 920 / 0
    3500 32 16 0.000 / 0.000 / 0.086 / 0.012 1.449 / 1.537 / 15.306 / 0.511 16582 / 16624 / 16657 / 10
    3500 32 20 0.000 / 0.000 / 0.114 / 0.013 1.450 / 1.558 / 15.277 / 0.547 16587 / 16626 / 16657 / 10
    3500 32 24 0.000 / 0.000 / 0.086 / 0.013 1.451 / 1.555 / 20.496 / 0.661 16604 / 16639 / 16678 / 10
    3500 32 28 0.000 / 0.000 / 0.114 / 0.012 1.468 / 1.554 / 15.893 / 0.489 16768 / 16836 / 16895 / 17
    3500 32 32 0.000 / 0.000 / 0.086 / 0.012 1.445 / 1.548 / 20.310 / 0.537 19889 / 19962 / 20025 / 17
    4000 4 4 0.025 / 17.950 / 203.200 / 17.860 1.351 / 1.431 / 14.530 / 0.524 220 / 220 / 220 / 0
    4000 8 4 0.050 / 17.175 / 216.800 / 17.734 1.351 / 1.421 / 19.692 / 0.620 221 / 221 / 221 / 0
    4000 8 8 0.000 / 4.325 / 24.925 / 3.817 1.382 / 1.475 / 19.092 / 0.560 408 / 418 / 424 / 2
    4000 12 4 0.025 / 17.538 / 175.650 / 18.066 1.352 / 1.437 / 19.980 / 0.590 221 / 221 / 221 / 0
    4000 12 8 0.000 / 4.400 / 29.450 / 3.863 1.378 / 1.477 / 22.190 / 0.643 410 / 418 / 424 / 2
    4000 12 12 0.025 / 0.900 / 5.775 / 0.799 1.648 / 1.764 / 19.034 / 0.720 8718 / 8981 / 9265 / 70
    4000 16 4 0.050 / 17.575 / 176.200 / 17.005 1.350 / 1.429 / 18.900 / 0.549 222 / 222 / 222 / 0
    4000 16 8 0.000 / 4.250 / 26.400 / 3.828 1.376 / 1.451 / 18.224 / 0.601 410 / 419 / 425 / 2
    4000 16 12 0.275 / 0.950 / 4.275 / 0.615 1.697 / 1.867 / 21.027 / 0.759 2813 / 2882 / 2951 / 17
    4000 16 16 0.000 / 0.200 / 1.075 / 0.168 1.660 / 1.801 / 17.255 / 0.650 16124 / 17130 / 17352 / 55
    4000 20 4 0.050 / 18.325 / 148.475 / 17.187 1.351 / 1.479 / 18.402 / 0.524 223 / 223 / 223 / 0
    4000 20 8 0.000 / 4.350 / 25.750 / 3.871 1.375 / 1.446 / 24.560 / 0.671 410 / 420 / 426 / 2
    4000 20 12 0.275 / 0.975 / 4.400 / 0.635 1.680 / 1.805 / 23.306 / 0.729 2821 / 2883 / 2951 / 17
    4000 20 16 0.000 / 0.050 / 0.325 / 0.042 1.684 / 1.783 / 20.501 / 0.699 15888 / 16038 / 16188 / 39
    4000 20 20 0.000 / 0.050 / 0.325 / 0.042 1.658 / 1.759 / 19.013 / 0.689 18077 / 18134 / 18240 / 14
    4000 24 4 0.000 / 17.625 / 164.300 / 17.292 1.351 / 1.427 / 19.917 / 0.579 223 / 223 / 223 / 0
    4000 24 8 0.000 / 4.125 / 26.750 / 3.905 1.375 / 1.442 / 18.641 / 0.557 410 / 420 / 426 / 2
    4000 24 12 0.275 / 0.975 / 4.275 / 0.610 1.703 / 1.810 / 22.554 / 0.826 2825 / 2883 / 2942 / 16
    4000 24 16 0.000 / 0.000 / 0.100 / 0.017 1.659 / 1.752 / 17.914 / 0.612 18021 / 18073 / 18152 / 14
    4000 24 20 0.000 / 0.000 / 0.125 / 0.017 1.681 / 1.789 / 20.884 / 0.743 18241 / 18331 / 18404 / 22
    4000 24 24 0.000 / 0.000 / 0.150 / 0.017 1.653 / 1.725 / 16.967 / 0.604 22355 / 22426 / 22594 / 19
    4000 28 4 0.050 / 18.125 / 167.050 / 17.329 1.348 / 1.501 / 23.889 / 0.758 224 / 224 / 224 / 0
    4000 28 8 0.000 / 4.475 / 23.700 / 3.835 1.374 / 1.588 / 21.053 / 0.732 411 / 421 / 427 / 2
    4000 28 12 67.225 / 75.800 / 76.550 / 0.261 1.691 / 1.936 / 17.278 / 0.667 1620 / 1704 / 2001 / 23
    4000 28 16 0.000 / 0.000 / 0.100 / 0.012 1.707 / 1.932 / 16.598 / 0.577 18470 / 18520 / 18569 / 13
    4000 28 20 0.000 / 0.000 / 0.075 / 0.012 1.732 / 1.984 / 20.429 / 0.752 18482 / 18536 / 18582 / 14
    4000 28 24 0.000 / 0.000 / 0.075 / 0.012 1.739 / 1.993 / 21.507 / 0.670 18690 / 18766 / 18838 / 20
    4000 28 28 0.000 / 0.000 / 0.100 / 0.012 1.658 / 1.939 / 14.211 / 0.594 22364 / 22431 / 22489 / 18
    4000 32 4 0.000 / 17.950 / 206.150 / 18.020 1.386 / 1.567 / 14.368 / 0.550 224 / 224 / 224 / 0
    4000 32 8 0.000 / 5.925 / 22.650 / 4.366 1.395 / 1.594 / 16.171 / 0.515 412 / 421 / 427 / 2
    4000 32 12 88.250 / 88.675 / 89.125 / 0.127 1.732 / 1.985 / 23.129 / 0.774 1408 / 1486 / 1563 / 22
    4000 32 16 0.000 / 0.000 / 0.100 / 0.012 1.709 / 1.935 / 28.713 / 0.675 18577 / 18616 / 18647 / 10
    4000 32 20 0.000 / 0.000 / 0.100 / 0.012 1.711 / 1.925 / 20.065 / 0.653 18583 / 18618 / 18653 / 10
    4000 32 24 0.000 / 0.000 / 0.100 / 0.013 1.699 / 1.917 / 20.723 / 0.617 18589 / 18633 / 18664 / 10
    4000 32 28 0.000 / 0.000 / 0.075 / 0.012 1.734 / 1.977 / 27.269 / 0.753 18792 / 18858 / 18921 / 18
    4000 32 32 0.000 / 0.000 / 0.100 / 0.012 1.704 / 1.921 / 14.253 / 0.553 22343 / 22431 / 22575 / 19
    4500 4 4 0.044 / 17.911 / 173.911 / 18.150 1.550 / 1.758 / 15.086 / 0.501 220 / 220 / 220 / 0
    4500 8 4 0.044 / 17.800 / 206.000 / 17.391 1.551 / 1.768 / 13.653 / 0.545 221 / 221 / 221 / 0
    4500 8 8 0.000 / 4.222 / 26.378 / 3.844 1.595 / 1.838 / 20.724 / 0.697 411 / 419 / 424 / 2
    4500 12 4 0.000 / 17.689 / 172.667 / 17.123 1.561 / 1.751 / 15.085 / 0.578 221 / 221 / 221 / 0
    4500 12 8 0.000 / 4.300 / 24.644 / 3.826 1.588 / 1.791 / 20.054 / 0.593 410 / 419 / 424 / 2
    4500 12 12 0.022 / 0.911 / 4.956 / 0.805 1.915 / 2.172 / 19.644 / 0.615 9234 / 9507 / 9768 / 70
    4500 16 4 0.000 / 18.244 / 258.444 / 17.967 1.526 / 1.758 / 15.643 / 0.552 222 / 222 / 222 / 0
    4500 16 8 0.000 / 4.200 / 26.978 / 3.931 1.563 / 1.786 / 15.151 / 0.572 413 / 420 / 425 / 2
    4500 16 12 0.133 / 0.933 / 5.044 / 0.687 1.972 / 2.210 / 22.173 / 0.741 2864 / 2927 / 2980 / 15
    4500 16 16 0.000 / 0.200 / 0.978 / 0.166 1.947 / 2.221 / 21.386 / 0.766 17912 / 18092 / 18533 / 55
    4500 20 4 0.044 / 17.478 / 185.133 / 17.498 1.561 / 1.765 / 13.399 / 0.524 223 / 223 / 223 / 0
    4500 20 8 0.000 / 4.333 / 29.822 / 3.854 1.590 / 1.787 / 17.447 / 0.612 412 / 421 / 426 / 2
    4500 20 12 0.133 / 0.911 / 4.778 / 0.683 1.953 / 2.210 / 24.534 / 0.768 2875 / 2928 / 2982 / 15
    4500 20 16 0.000 / 0.044 / 0.311 / 0.042 1.987 / 2.216 / 14.466 / 0.611 16982 / 17116 / 17239 / 36
    4500 20 20 0.000 / 0.044 / 0.244 / 0.042 1.944 / 2.176 / 20.109 / 0.655 19151 / 19206 / 19254 / 15
    4500 24 4 0.044 / 17.644 / 191.756 / 18.124 1.562 / 1.747 / 15.134 / 0.531 223 / 223 / 223 / 0
    4500 24 8 0.000 / 4.178 / 28.111 / 3.838 1.553 / 1.804 / 23.164 / 0.670 413 / 421 / 426 / 2
    4500 24 12 0.133 / 0.933 / 4.156 / 0.663 1.951 / 2.182 / 18.935 / 0.663 2869 / 2928 / 2982 / 16
    4500 24 16 0.000 / 0.022 / 0.067 / 0.012 1.943 / 2.170 / 17.937 / 0.713 19107 / 19153 / 19196 / 13
    4500 24 20 0.000 / 0.022 / 0.089 / 0.011 1.977 / 2.262 / 24.969 / 0.761 19338 / 19410 / 19500 / 20
    4500 24 24 0.000 / 0.022 / 0.089 / 0.012 1.929 / 2.189 / 18.456 / 0.712 23435 / 23497 / 23550 / 17
    4500 28 4 0.044 / 17.133 / 288.400 / 17.897 1.563 / 1.759 / 19.175 / 0.641 224 / 224 / 224 / 0
    4500 28 8 0.000 / 4.378 / 24.867 / 3.803 1.572 / 1.769 / 21.643 / 0.634 415 / 422 / 427 / 2
    4500 28 12 66.089 / 67.400 / 68.667 / 0.359 1.930 / 2.183 / 28.176 / 0.759 2026 / 2113 / 2214 / 27
    4500 28 16 0.000 / 0.000 / 0.089 / 0.012 1.954 / 2.170 / 20.834 / 0.751 19176 / 19211 / 19240 / 9
    4500 28 20 0.000 / 0.000 / 0.089 / 0.012 1.942 / 2.170 / 21.282 / 0.708 19191 / 19228 / 19261 / 10
    4500 28 24 0.000 / 0.000 / 0.067 / 0.012 1.982 / 2.234 / 29.563 / 0.905 19410 / 19480 / 19557 / 18
    4500 28 28 0.000 / 0.000 / 0.089 / 0.012 1.944 / 2.180 / 21.368 / 0.749 23437 / 23501 / 23562 / 17
    4500 32 4 0.044 / 17.778 / 204.511 / 18.488 1.564 / 1.801 / 23.871 / 0.680 224 / 224 / 224 / 0
    4500 32 8 0.000 / 5.489 / 22.289 / 4.225 1.588 / 1.786 / 19.144 / 0.592 413 / 422 / 427 / 2
    4500 32 12 77.822 / 78.800 / 79.689 / 0.242 1.926 / 2.172 / 21.370 / 0.726 1838 / 1948 / 2039 / 26
    4500 32 16 0.000 / 0.000 / 0.089 / 0.012 1.955 / 2.213 / 24.360 / 0.725 19171 / 19210 / 19238 / 9
    4500 32 20 0.000 / 0.000 / 0.089 / 0.012 1.949 / 2.186 / 17.274 / 0.660 19179 / 19212 / 19241 / 9
    4500 32 24 0.000 / 0.000 / 0.089 / 0.012 1.889 / 2.182 / 28.660 / 0.825 19192 / 19228 / 19262 / 10
    4500 32 28 0.000 / 0.000 / 0.089 / 0.012 1.903 / 2.039 / 21.219 / 0.700 19423 / 19482 / 19549 / 18
    4500 32 32 0.000 / 0.000 / 0.089 / 0.012 1.870 / 2.004 / 20.273 / 0.742 23437 / 23501 / 23566 / 17
    5000 4 4 0.000 / 17.720 / 192.140 / 17.740 1.684 / 1.829 / 14.606 / 0.612 220 / 220 / 220 / 0
    5000 8 4 0.060 / 17.700 / 186.580 / 17.279 1.683 / 1.818 / 15.426 / 0.599 221 / 221 / 221 / 0
    5000 8 8 0.000 / 4.300 / 27.780 / 3.783 1.715 / 1.913 / 20.698 / 0.741 412 / 420 / 424 / 2
    5000 12 4 0.000 / 17.040 / 206.400 / 18.593 1.683 / 1.809 / 17.501 / 0.622 221 / 221 / 221 / 0
    5000 12 8 0.000 / 4.300 / 25.740 / 3.805 1.710 / 1.811 / 19.765 / 0.670 413 / 421 / 424 / 2
    5000 12 12 0.020 / 0.920 / 5.200 / 0.842 2.066 / 2.203 / 25.912 / 0.840 9696 / 9977 / 10220 / 71
    5000 16 4 0.000 / 17.700 / 190.640 / 16.754 1.682 / 1.765 / 21.803 / 0.664 222 / 222 / 222 / 0
    5000 16 8 0.000 / 4.300 / 30.580 / 3.861 1.709 / 1.813 / 20.311 / 0.618 414 / 422 / 425 / 2
    5000 16 12 0.000 / 0.880 / 5.140 / 0.747 2.037 / 2.178 / 23.255 / 0.740 2911 / 2962 / 3013 / 14
    5000 16 16 0.000 / 0.200 / 1.120 / 0.171 2.094 / 2.204 / 20.890 / 0.784 20566 / 21208 / 21872 / 88
    5000 20 4 0.000 / 17.620 / 127.520 / 17.257 1.687 / 1.927 / 26.894 / 0.816 223 / 223 / 223 / 0
    5000 20 8 0.000 / 4.330 / 28.580 / 3.861 1.710 / 1.909 / 18.186 / 0.643 415 / 423 / 426 / 2
    5000 20 12 0.000 / 0.900 / 5.340 / 0.743 2.055 / 2.302 / 22.473 / 0.763 2905 / 2963 / 3013 / 14
    5000 20 16 0.000 / 0.040 / 0.320 / 0.043 2.137 / 2.410 / 24.675 / 0.864 19509 / 19910 / 20058 / 42
    5000 20 20 0.000 / 0.040 / 0.280 / 0.042 2.097 / 2.369 / 25.517 / 0.830 21768 / 22416 / 22538 / 26
    5000 24 4 0.040 / 17.450 / 201.900 / 17.504 1.686 / 1.861 / 18.820 / 0.618 223 / 223 / 223 / 0
    5000 24 8 0.000 / 4.200 / 28.260 / 3.839 1.713 / 1.923 / 19.929 / 0.679 415 / 422 / 426 / 2
    5000 24 12 0.000 / 0.900 / 4.780 / 0.766 2.047 / 2.287 / 15.684 / 0.699 2912 / 2963 / 3016 / 14
    5000 24 16 0.000 / 0.020 / 0.100 / 0.012 2.102 / 2.375 / 21.730 / 0.818 22296 / 22351 / 22415 / 15
    5000 24 20 0.000 / 0.020 / 0.080 / 0.012 2.128 / 2.397 / 24.851 / 0.845 22577 / 22658 / 22745 / 23
    5000 24 24 0.000 / 0.020 / 0.080 / 0.012 2.092 / 2.377 / 22.543 / 0.800 27480 / 27560 / 27624 / 20
    5000 28 4 0.000 / 17.860 / 158.380 / 17.534 1.686 / 1.875 / 17.770 / 0.647 224 / 224 / 224 / 0
    5000 28 8 0.000 / 4.380 / 22.440 / 3.886 1.712 / 1.969 / 22.211 / 0.772 416 / 423 / 427 / 2
    5000 28 12 59.020 / 60.660 / 62.740 / 0.463 2.037 / 2.288 / 20.272 / 0.652 2300 / 2388 / 2487 / 26
    5000 28 16 0.000 / 0.000 / 0.100 / 0.012 2.099 / 2.378 / 23.672 / 0.868 22667 / 22723 / 22765 / 13
    5000 28 20 0.000 / 0.000 / 0.080 / 0.012 2.100 / 2.389 / 21.719 / 0.838 22687 / 22742 / 22788 / 14
    5000 28 24 0.000 / 0.000 / 0.080 / 0.012 2.132 / 2.393 / 23.989 / 0.763 22950 / 23027 / 23106 / 21
    5000 28 28 0.000 / 0.000 / 0.080 / 0.012 2.094 / 2.386 / 24.741 / 0.892 27502 / 27565 / 27637 / 20
    5000 32 4 0.000 / 18.060 / 189.520 / 18.378 1.686 / 1.919 / 26.851 / 0.838 224 / 224 / 224 / 0
    5000 32 8 0.000 / 5.280 / 26.500 / 4.157 1.714 / 1.930 / 21.178 / 0.750 416 / 423 / 427 / 2
    5000 32 12 69.800 / 70.920 / 72.440 / 0.341 2.034 / 2.293 / 21.420 / 0.754 2160 / 2261 / 2356 / 27
    5000 32 16 0.000 / 0.000 / 0.080 / 0.012 2.099 / 2.387 / 25.364 / 0.794 21966 / 22798 / 22832 / 16
    5000 32 20 0.000 / 0.000 / 0.080 / 0.012 2.095 / 2.410 / 41.338 / 1.022 22759 / 22800 / 22839 / 11
    5000 32 24 0.000 / 0.000 / 0.100 / 0.012 2.100 / 2.277 / 23.671 / 0.742 22773 / 22818 / 22856 / 11
    5000 32 28 0.000 / 0.000 / 0.100 / 0.012 2.125 / 2.435 / 20.889 / 0.961 22274 / 23099 / 23169 / 23
    5000 32 32 0.000 / 0.000 / 0.060 / 0.012 2.088 / 2.280 / 16.157 / 0.705 27494 / 27565 / 27640 / 19
    -

    Higher Cardinalities - sp=25, p=12,14,16

    - +

    Higher Cardinalities - sp=25, p=12,14,16

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    card sp p err l/m/h/std (% of actual) time l/m/h/std (ms) size l/m/h/std (b)
    55000 25 12 0.000 / 1.031 / 5.431 / 0.928 19.336 / 22.410 / 83.150 / 3.282 3467 / 3501 / 3538 / 10
    55000 25 14 0.000 / 0.470 / 2.525 / 0.428 21.031 / 24.079 / 58.355 / 3.192 11981 / 12073 / 12166 / 25
    55000 25 16 0.000 / 0.140 / 0.751 / 0.124 25.372 / 29.282 / 99.309 / 3.888 41546 / 41834 / 42083 / 74
    60000 25 12 0.002 / 1.080 / 5.500 / 0.936 21.866 / 25.060 / 83.602 / 3.563 3486 / 3519 / 3552 / 9
    60000 25 14 0.002 / 0.483 / 2.762 / 0.432 23.089 / 26.556 / 56.951 / 3.455 12056 / 12141 / 12233 / 25
    60000 25 16 0.000 / 0.145 / 1.552 / 0.135 27.680 / 31.433 / 99.324 / 3.967 42217 / 42469 / 42714 / 70
    65000 25 12 0.000 / 1.053 / 5.968 / 0.927 23.661 / 26.901 / 59.004 / 3.475 3499 / 3534 / 3565 / 9
    65000 25 14 0.000 / 0.483 / 2.517 / 0.431 24.753 / 28.293 / 60.108 / 3.483 12120 / 12206 / 12299 / 25
    65000 25 16 0.000 / 0.158 / 1.455 / 0.158 29.270 / 33.727 / 75.299 / 4.108 42757 / 43002 / 43219 / 66
    100000 25 14 0.001 / 0.520 / 2.814 / 0.451 35.787 / 41.099 / 197.958 / 7.919 12510 / 12598 / 12685 / 26
    card sp p err l/m/h/std (% of actual) time l/m/h/std (ms) size l/m/h/std (b)
    55000 25 12 0.000 / 1.031 / 5.431 / 0.928 19.336 / 22.410 / 83.150 / 3.282 3467 / 3501 / 3538 / 10
    55000 25 14 0.000 / 0.470 / 2.525 / 0.428 21.031 / 24.079 / 58.355 / 3.192 11981 / 12073 / 12166 / 25
    55000 25 16 0.000 / 0.140 / 0.751 / 0.124 25.372 / 29.282 / 99.309 / 3.888 41546 / 41834 / 42083 / 74
    60000 25 12 0.002 / 1.080 / 5.500 / 0.936 21.866 / 25.060 / 83.602 / 3.563 3486 / 3519 / 3552 / 9
    60000 25 14 0.002 / 0.483 / 2.762 / 0.432 23.089 / 26.556 / 56.951 / 3.455 12056 / 12141 / 12233 / 25
    60000 25 16 0.000 / 0.145 / 1.552 / 0.135 27.680 / 31.433 / 99.324 / 3.967 42217 / 42469 / 42714 / 70
    65000 25 12 0.000 / 1.053 / 5.968 / 0.927 23.661 / 26.901 / 59.004 / 3.475 3499 / 3534 / 3565 / 9
    65000 25 14 0.000 / 0.483 / 2.517 / 0.431 24.753 / 28.293 / 60.108 / 3.483 12120 / 12206 / 12299 / 25
    65000 25 16 0.000 / 0.158 / 1.455 / 0.158 29.270 / 33.727 / 75.299 / 4.108 42757 / 43002 / 43219 / 66
    100000 25 14 0.001 / 0.520 / 2.814 / 0.451 35.787 / 41.099 / 197.958 / 7.919 12510 / 12598 / 12685 / 26

    HLLPMeasurement tool usage

    -
    -
    -
    usage: HLLPMeasurement
    +
    +
    +
    usage: HLLPMeasurement
      -cd,--chart_delim <CHART_DELIM>                    Column delimiter for
                                                         the chart. Default is
                                                         pipe '|'
    @@ -7605,23 +3633,17 @@ 

    Higher Cardinalities - sp= Default is the median (50th percentile)

    -
    -
    -
    - +
    +
    +
    -
    -
    -
    Copyright © 2018 - The Apache Software Foundation. - All Rights Reserved. - +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    - - - -
    diff --git a/site/current-book/metron-analytics/metron-statistics/index.html b/site/current-book/metron-analytics/metron-statistics/index.html index 29084e8141..0c3515d920 100644 --- a/site/current-book/metron-analytics/metron-statistics/index.html +++ b/site/current-book/metron-analytics/metron-statistics/index.html @@ -1,756 +1,599 @@ - + Metron – Statistics and Mathematical Functions - + - - - - - - - - - - - - - - -
    -

    Storm Authorization

    -
      - +
    1. +

      Switch to the metron user and acquire a Kerberos ticket for the metron principal.

      - -
      -
      -
      su metron
      +
      +
      +
      +
      su metron
       kinit -kt /etc/security/keytabs/metron.headless.keytab metron@EXAMPLE.COM
      -
    2. - +
    +
  • +

    Create the directory /home/metron/.storm and switch to that directory.

    - -
    -
    -
    mkdir /home/metron/.storm
    +
    +
    +
    +
    mkdir /home/metron/.storm
     cd /home/metron/.storm
    -
  • - + +
  • -

    Ensure the Metron keytab is renewable. See Verify KDC above.

  • - + +

    Ensure the Metron keytab is renewable. See Verify KDC above.

    +
  • -

    Create a client JAAS file at /home/metron/.storm/client_jaas.conf. This should look identical to the Storm client JAAS file located at /etc/storm/conf/client_jaas.conf except for the addition of a Client stanza. The Client stanza is used for Zookeeper. All quotes and semicolons are necessary.

    - -
    -
    -
    cat << EOF > client_jaas.conf
    +
    +

    Create a client JAAS file at /home/metron/.storm/client_jaas.conf. This should look identical to the Storm client JAAS file located at /etc/storm/conf/client_jaas.conf except for the addition of a Client stanza. The Client stanza is used for Zookeeper. All quotes and semicolons are necessary.

    + +
    +
    +
    cat << EOF > client_jaas.conf
     StormClient {
         com.sun.security.auth.module.Krb5LoginModule required
         useTicketCache=true
    @@ -649,127 +515,132 @@ 

    Storm Authorization

    principal="metron@EXAMPLE.COM"; }; EOF -
  • - -
  • -

    Create a YAML file at /home/metron/.storm/storm.yaml. This should point to the client JAAS file. Set the array of nimbus hosts accordingly.

    - -
    -
    -
    cat << EOF > /home/metron/.storm/storm.yaml
    +
    +
  • +
  • + +

    Create a YAML file at /home/metron/.storm/storm.yaml. This should point to the client JAAS file. Set the array of nimbus hosts accordingly.

    + +
    +
    +
    cat << EOF > /home/metron/.storm/storm.yaml
     nimbus.seeds : ['node1']
     java.security.auth.login.config : '/home/metron/.storm/client_jaas.conf'
     storm.thrift.transport : 'org.apache.storm.security.auth.kerberos.KerberosSaslTransportPlugin'
     EOF
    -
  • - + +
  • +

    Create an auxiliary storm configuration file at /home/metron/storm-config.json. Note the login config option in the file points to the client JAAS file.

    - -
    -
    -
    cat << EOF > /home/metron/storm-config.json
    +
    +
    +
    +
    cat << EOF > /home/metron/storm-config.json
     {
         "topology.worker.childopts" : "-Djava.security.auth.login.config=/home/metron/.storm/client_jaas.conf"
     }
     EOF
    -
  • - + +
  • -

    Configure the Enrichment, Indexing and Profiler topologies to use the client JAAS file. To do this, the following key-value pairs:

    - + +

    Configure the Enrichment, Indexing and Profiler topologies to use the client JAAS file. To do this, the following key-value pairs:

      - +
    • kafka.security.protocol=PLAINTEXTSASL
    • -
    • topology.worker.childopts=-Djava.security.auth.login.config=/home/metron/.storm/client_jaas.conf
    • -
    +

    must be added to each of the topology properties files:

    -
      - +
    • ${METRON_HOME}/config/enrichment.properties
    • -
    • ${METRON_HOME}/config/elasticsearch.properties
    • -
    • ${METRON_HOME}/config/profiler.properties
    • -
    +

    You may use the following command to automate this step:

    - -
    -
    -
    for file in enrichment.properties elasticsearch.properties profiler.properties; do
    +
    +
    +
    +
    for file in enrichment.properties elasticsearch.properties profiler.properties; do
       echo ${file}
       sed -i "s/^kafka.security.protocol=.*/kafka.security.protocol=PLAINTEXTSASL/" "${METRON_HOME}/config/${file}"
       sed -i "s/^topology.worker.childopts=.*/topology.worker.childopts=-Djava.security.auth.login.config=\/home\/metron\/.storm\/client_jaas.conf/" "${METRON_HOME}/config/${file}"
     done
    -
  • + +

    Start Metron

    -
      - +
    1. +

      Switch to the metron user and acquire a Kerberos ticket for the metron principal.

      - -
      -
      -
      su metron
      +
      +
      +
      +
      su metron
       kinit -kt /etc/security/keytabs/metron.headless.keytab metron@EXAMPLE.COM
      -
    2. - -
    3. -

      Restart the parser topologies. Be sure to pass in the new parameter, -ksp or --kafka_security_protocol. The following command will start only the Bro and Snort topologies. Execute the same command for any other Parsers that you may need, for example yaf.

      - -
      -
      -
      for parser in bro snort; do
      +
      +
    4. +
    5. + +

      Restart the parser topologies. Be sure to pass in the new parameter, -ksp or --kafka_security_protocol. The following command will start only the Bro and Snort topologies. Execute the same command for any other Parsers that you may need, for example yaf.

      + +
      +
      +
      for parser in bro snort; do
          ${METRON_HOME}/bin/start_parser_topology.sh \
                  -z ${ZOOKEEPER} \
                  -s ${parser} \
                  -ksp SASL_PLAINTEXT \
                  -e /home/metron/storm-config.json;
       done
      -
    6. - +
    +
  • +

    Restart the Enrichment and Indexing topologies.

    - -
    -
    -
    ${METRON_HOME}/bin/start_enrichment_topology.sh
    +
    +
    +
    +
    ${METRON_HOME}/bin/start_enrichment_topology.sh
     ${METRON_HOME}/bin/start_elasticsearch_topology.sh
    -
  • + +

    Metron should be ready to receive data.

    Push Data

    -
      - +
    1. +

      Push some sample data to one of the parser topics. E.g for Bro we took raw data from metron/metron-platform/metron-integration-test/src/main/sample/data/bro/raw/BroExampleOutput

      - -
      -
      -
      cat sample-bro.txt | ${KAFKA_HOME}/kafka-broker/bin/kafka-console-producer.sh \
      +
      +
      +
      +
      cat sample-bro.txt | ${KAFKA_HOME}/kafka-broker/bin/kafka-console-producer.sh \
               --broker-list ${BROKERLIST} \
               --security-protocol SASL_PLAINTEXT \
               --topic bro
      -
    2. - +
    +
  • +

    Wait a few moments for data to flow through the system and then check for data in the Elasticsearch indices. Replace yaf with whichever parser type you’ve chosen.

    - -
    -
    -
    curl -XGET "${ELASTICSEARCH}/bro*/_search"
    +
    +
    +
    +
    curl -XGET "${ELASTICSEARCH}/bro*/_search"
     curl -XGET "${ELASTICSEARCH}/bro*/_count"
    -
  • - + +
  • -

    You should have data flowing from the parsers all the way through to the indexes. This completes the Kerberization instructions

  • + +

    You should have data flowing from the parsers all the way through to the indexes. This completes the Kerberization instructions

    +

    More Information

    @@ -777,15 +648,16 @@

    More Information

    Kerberos

    Unsure of your Kerberos principal associated with a keytab? There are a couple ways to get this. One is via the list of principals that Ambari provides via downloadable csv. If you didn’t download this list, you can also check the principal manually by running the following against the keytab.

    -
    -
    -
    klist -kt /etc/security/keytabs/<keytab-file-name>
    +
    +
    +
    klist -kt /etc/security/keytabs/<keytab-file-name>
     
    +

    E.g.

    -
    -
    -
    klist -kt /etc/security/keytabs/hbase.headless.keytab
    +
    +
    +
    klist -kt /etc/security/keytabs/hbase.headless.keytab
     Keytab name: FILE:/etc/security/keytabs/hbase.headless.keytab
     KVNO Timestamp         Principal
     ---- ----------------- --------------------------------------------------------
    @@ -794,16 +666,17 @@ 

    Kerberos

    1 03/28/17 19:29:36 hbase-metron_cluster@EXAMPLE.COM 1 03/28/17 19:29:36 hbase-metron_cluster@EXAMPLE.COM 1 03/28/17 19:29:36 hbase-metron_cluster@EXAMPLE.COM -
    +
    +

    Kafka with Kerberos enabled

    Running Sensors

    A couple steps are required to produce data to a Kerberized Kafka topic. On the host you’ll be setting up your sensor(s), switch to the metron user and create a client_jaas.conf file in the metron home directory if one doesn’t already exist. It should be owned by metron:metron and contain at least the following stanza that tells the Kafka client how to interact with Kerberos:

    -
    -
    -
    su - metron
    +
    +
    +
    su - metron
     cat ${METRON_HOME}/client_jaas.conf
     ...
     KafkaClient {
    @@ -816,91 +689,296 @@ 

    Running Sensors

    principal="metron@EXAMPLE.COM"; };
    +

    You’ll also need to set KAFKA_OPTS to tell the Kafka client how to interact with Kerberos.

    -
    -
    -
    export KAFKA_OPTS="-Djava.security.auth.login.config=${METRON_HOME}/client_jaas.conf"
    +
    +
    +
    export KAFKA_OPTS="-Djava.security.auth.login.config=${METRON_HOME}/client_jaas.conf"
     
    +

    For sensors that leverage the Kafka console producer to pipe data into Metron, e.g. Snort and Yaf, you will need to modify the corresponding sensor shell scripts or config to append the SASL security protocol property. --security-protocol SASL_PLAINTEXT. Be sure to kinit with the metron user’s keytab before executing the script that starts the sensor.

    More notes can be found in metron/metron-sensors/README.md

    Write data to a topic with SASL

    -
    -
    -
    cat sample-yaf.txt | ${KAFKA_HOME}/bin/kafka-console-producer.sh \
    +
    +
    +
    cat sample-yaf.txt | ${KAFKA_HOME}/bin/kafka-console-producer.sh \
             --broker-list ${BROKERLIST} \
             --security-protocol PLAINTEXTSASL \
             --topic yaf
    -
    +
    +

    View topic data from latest offset with SASL

    -
    -
    -
    ${KAFKA_HOME}/bin/kafka-console-consumer.sh \
    +
    +
    +
    ${KAFKA_HOME}/bin/kafka-console-consumer.sh \
             --zookeeper ${ZOOKEEPER} \
             --security-protocol PLAINTEXTSASL \
             --topic yaf
    -
    +
    +

    Modify the sensor-stubs to send logs via SASL

    -
    -
    -
    sed -i 's/node1:6667 --topic/node1:6667 --security-protocol PLAINTEXTSASL --topic/' /opt/sensor-stubs/bin/start-*-stub
    +
    +
    +
    sed -i 's/node1:6667 --topic/node1:6667 --security-protocol PLAINTEXTSASL --topic/' /opt/sensor-stubs/bin/start-*-stub
     for sensorstub in bro snort; do
         service sensor-stubs stop ${sensorstub};
         service sensor-stubs start ${sensorstub};
     done
    -
    +
    +

    Model as a Service on Kerberos

    -

    MaaS works with kerberos, you have to remember to kinit with the metron user. There is one small issue out of the box (particularly on vagrant), you get an error like so when running $METRON_HOME/bin/maas_service.sh:

    +

    MaaS works with kerberos, you have to remember to kinit with the metron user. There is one small issue out of the box (particularly on vagrant), you get an error like so when running $METRON_HOME/bin/maas_service.sh:

    -
    -
    -
    Requested user metron is not whitelisted and has id 501,which is below the minimum allowed 1000.
    +
    +
    +
    Requested user metron is not whitelisted and has id 501,which is below the minimum allowed 1000.
     
    -

    In order to correct this, you should:

    +

    In order to correct this, you should:

      - +
    • Navigate to the Yarn configuration in Ambari
    • -
    • Click on “Advanced”
    • -
    • Scroll to “Advanced yarn-env”
    • -
    • Adjust the “Minimum user ID for submitting job” config to 500 from 1000
    • -
    • You should then restart Yarn to have the change take effect.
    - - - +
    +

    X-Pack

    +

    First, stop the random_access_indexing topology through the Storm UI or from the CLI, e.g.

    -
    +
    +
    +
    storm kill random_access_indexing
    +
    + +

    Here are instructions for enabling X-Pack with Elasticsearch and Kibana: https://www.elastic.co/guide/en/x-pack/5.6/installing-xpack.html

    +

    You need to be sure to add the appropriate username and password for Elasticsearch and Kibana to enable external connections from Metron components. e.g. the following will create a user “transport_client_user” with password “changeme” and “superuser” credentials.

    + +
    +
    +
    sudo /usr/share/elasticsearch/bin/x-pack/users useradd transport_client_user -p changeme -r superuser
    +
    +

    Once you’ve picked a password to connect to ES, you need to upload a 1-line file to HDFS with that password in it. Metron will use this file to securely read the password in order to connect to ES securely.

    +

    Here is an example using “changeme” as the password

    + +
    +
    +
    echo changeme > /tmp/xpack-password
    +sudo -u hdfs hdfs dfs -mkdir /apps/metron/elasticsearch/
    +sudo -u hdfs hdfs dfs -put /tmp/xpack-password /apps/metron/elasticsearch/
    +sudo -u hdfs hdfs dfs -chown metron:metron /apps/metron/elasticsearch/xpack-password
    +
    + +

    New settings have been added to configure the Elasticsearch client. By default the client will run as the normal ES prebuilt transport client. If you enable X-Pack you should set the es.client.class as shown below.

    +

    Add the es settings to global.json

    + +
    +
    +
    /usr/metron/0.5.0/config/zookeeper/global.json ->
    +
    +  "es.client.settings" : {
    +      "es.client.class" : "org.elasticsearch.xpack.client.PreBuiltXPackTransportClient",
    +      "es.xpack.username" : "transport_client_user",
    +      "es.xpack.password.file" : "/apps/metron/elasticsearch/xpack-password"
    +  }
    +
    + +

    Submit the update to Zookeeper

    + +
    +
    +
    $METRON_HOME/bin/zk_load_configs.sh -m PUSH -i METRON_HOME/config/zookeeper/ -z $ZOOKEEPER
    +
    + +

    The last step before restarting the topology is to create a custom X-Pack shaded and relocated jar. This is up to you because of licensing restrictions, but here is a sample Maven pom file that should help.

    + +
    +
    +
    <?xml version="1.0" encoding="UTF-8"?>
    +<!--
    +  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.
    +  -->
    +<project xmlns="http://maven.apache.org/POM/4.0.0"
    +         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    +    <modelVersion>4.0.0</modelVersion>
    +    <groupId>org.elasticsearch</groupId>
    +    <artifactId>elasticsearch-xpack-shaded</artifactId>
    +    <name>elasticsearch-xpack-shaded</name>
    +    <packaging>jar</packaging>
    +    <version>5.6.2</version>
    +    <repositories>
    +        <repository>
    +            <id>elasticsearch-releases</id>
    +            <url>https://artifacts.elastic.co/maven</url>
    +            <releases>
    +                <enabled>true</enabled>
    +            </releases>
    +            <snapshots>
    +                <enabled>false</enabled>
    +            </snapshots>
    +        </repository>
    +    </repositories>
    +    <dependencies>
    +        <dependency>
    +            <groupId>org.elasticsearch.client</groupId>
    +            <artifactId>x-pack-transport</artifactId>
    +            <version>5.6.2</version>
    +            <exclusions>
    +              <exclusion>
    +                <groupId>com.fasterxml.jackson.dataformat</groupId>
    +                <artifactId>jackson-dataformat-smile</artifactId>
    +              </exclusion>
    +              <exclusion>
    +                <groupId>com.fasterxml.jackson.dataformat</groupId>
    +                <artifactId>jackson-dataformat-yaml</artifactId>
    +              </exclusion>
    +              <exclusion>
    +                <groupId>com.fasterxml.jackson.dataformat</groupId>
    +                <artifactId>jackson-dataformat-cbor</artifactId>
    +              </exclusion>
    +              <exclusion>
    +                <groupId>com.fasterxml.jackson.core</groupId>
    +                <artifactId>jackson-core</artifactId>
    +              </exclusion>
    +              <exclusion>
    +                <groupId>org.slf4j</groupId>
    +                <artifactId>slf4j-api</artifactId>
    +              </exclusion>
    +              <exclusion>
    +                <groupId>org.slf4j</groupId>
    +                <artifactId>slf4j-log4j12</artifactId>
    +              </exclusion>
    +              <exclusion>
    +                <groupId>log4j</groupId>
    +                <artifactId>log4j</artifactId>
    +              </exclusion>
    +              <exclusion> <!-- this is causing a weird build error if not excluded - Error creating shaded jar: null: IllegalArgumentException -->
    +                    <groupId>org.apache.logging.log4j</groupId>
    +                    <artifactId>log4j-api</artifactId>
    +                </exclusion>
    +            </exclusions>
    +          </dependency>
    +    </dependencies>
    +    <build>
    +        <plugins>
    +            <plugin>
    +                <groupId>org.apache.maven.plugins</groupId>
    +                <artifactId>maven-shade-plugin</artifactId>
    +                <version>2.4.3</version>
    +                <configuration>
    +                    <createDependencyReducedPom>true</createDependencyReducedPom>
    +                </configuration>
    +                <executions>
    +                    <execution>
    +                        <phase>package</phase>
    +                        <goals>
    +                            <goal>shade</goal>
    +                        </goals>
    +                        <configuration>
    +                          <filters>
    +                            <filter>
    +                              <artifact>*:*</artifact>
    +                              <excludes>
    +                                <exclude>META-INF/*.SF</exclude>
    +                                <exclude>META-INF/*.DSA</exclude>
    +                                <exclude>META-INF/*.RSA</exclude>
    +                              </excludes>
    +                            </filter>
    +                          </filters>
    +                          <relocations>
    +				<relocation>
    +                                    <pattern>io.netty</pattern>
    +                                    <shadedPattern>org.apache.metron.io.netty</shadedPattern>
    +                                </relocation>
    +                                <relocation>
    +                                    <pattern>org.apache.logging.log4j</pattern>
    +                                    <shadedPattern>org.apache.metron.logging.log4j</shadedPattern>
    +                                </relocation>
    +                            </relocations>
    +                            <artifactSet>
    +                                <excludes>
    +                                    <exclude>org.slf4j.impl*</exclude>
    +                                    <exclude>org.slf4j:slf4j-log4j*</exclude>
    +                                </excludes>
    +                            </artifactSet>
    +                            <transformers>
    +                                <transformer
    +                                  implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
    +                                     <resources>
    +                                        <resource>.yaml</resource>
    +                                        <resource>LICENSE.txt</resource>
    +                                        <resource>ASL2.0</resource>
    +                                        <resource>NOTICE.txt</resource>
    +                                      </resources>
    +                                </transformer>
    +                                <transformer
    +                                        implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
    +                                <transformer
    +                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
    +                                    <mainClass></mainClass>
    +                                </transformer>
    +                            </transformers>
    +                        </configuration>
    +                    </execution>
    +                </executions>
    +            </plugin>
    +        </plugins>
    +    </build>
    +</project>
    +
    + +

    Once you’ve built the elasticsearch-xpack-shaded-5.6.2.jar, it needs to be made available to Storm when you submit the topology. Create a contrib directory for indexing and put the jar file in this directory.

    + +
    +
    +
    /usr/metron/0.5.0/indexing_contrib/elasticsearch-xpack-shaded-5.6.2.jar
    +
    + +

    Now you can restart the Elasticsearch topology. Note, you should perform this step manually, as follows.

    + +
    +
    +
    $METRON_HOME/bin/start_elasticsearch_topology.sh
    +
    + +

    Once you’ve performed these steps, you shoud be able to start seeing data in your ES indexes.

    + + + +
    -
    -
    Copyright © 2018 - The Apache Software Foundation. - All Rights Reserved. - +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    - - - -
    diff --git a/site/current-book/metron-deployment/amazon-ec2/index.html b/site/current-book/metron-deployment/amazon-ec2/index.html index 4e7e771f1f..8bf69a8cd5 100644 --- a/site/current-book/metron-deployment/amazon-ec2/index.html +++ b/site/current-book/metron-deployment/amazon-ec2/index.html @@ -1,536 +1,428 @@ - + Metron – Apache Metron on Amazon EC2 - + - - - - - - - - - - - - - - -
    -
    -

    Error: ‘No handler was ready to authenticate…Check your credentials’

    +

    Error: ‘No handler was ready to authenticate…Check your credentials’

    -
    -
    -
    TASK [Define keypair] **********************************************************
    +
    +
    +
    TASK [Define keypair] **********************************************************
     failed: [localhost] => (item=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXbcb1AlWsEPP
       r9jEFrn0yun3PYNidJ/...david@hasselhoff.com) => {"failed": true, "item": "ssh-r
       sa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXbcb1AlWsEPPr9jEFr... david@hasselhoff.com",
       "msg": "No handler was ready to authenticate. 1 handlers were checked.
       ['HmacAuthV4Handler'] Check your credentials"}
     
    +

    Solution 1

    -

    This occurs when Ansible does not have the correct AWS access keys. The following commands must return a valid access key that is defined within Amazon’s Identity and Access Management console.

    +

    This occurs when Ansible does not have the correct AWS access keys. The following commands must return a valid access key that is defined within Amazon’s Identity and Access Management console.

    -
    -
    -
    $ echo $AWS_ACCESS_KEY_ID
    +
    +
    +
    $ echo $AWS_ACCESS_KEY_ID
     AKIAI6NRFEO27E5FFELQ
     
     $ echo $AWS_SECRET_ACCESS_KEY
     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
    -
    +
    +

    Solution 2

    -

    This error can occur if you have exported the correct AWS access key, but you are using sudo to run the Ansible playbook. Do not use the sudo command when running the Ansible playbook.

    +

    This error can occur if you have exported the correct AWS access key, but you are using sudo to run the Ansible playbook. Do not use the sudo command when running the Ansible playbook.

    -

    Error: ‘OptInRequired: … you need to accept terms and subscribe’

    +

    Error: ‘OptInRequired: … you need to accept terms and subscribe’

    -
    -
    -
    TASK [metron-test: Instantiate 1 host(s) as sensors,ambari_master,metron,ec2] **
    +
    +
    +
    TASK [metron-test: Instantiate 1 host(s) as sensors,ambari_master,metron,ec2] **
     fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg":
     "Instance creation failed => OptInRequired: In order to use this AWS Marketplace
     product you need to accept terms and subscribe. To do so please visit
     http://aws.amazon.com/marketplace/pp?sku=6x5jmcajty9edm3f211pqjfn2"}
     to retry, use: --limit @playbook.retry
     
    +

    Solution

    -

    Apache Metron uses the official CentOS 6 Amazon Machine Image when provisioning hosts. Amazon requires that you accept certain terms and conditions when using any Amazon Machine Image (AMI). Follow the link provided in the error message to accept the terms and conditions then re-run the playbook.

    +

    Apache Metron uses the official CentOS 6 Amazon Machine Image when provisioning hosts. Amazon requires that you accept certain terms and conditions when using any Amazon Machine Image (AMI). Follow the link provided in the error message to accept the terms and conditions then re-run the playbook.

    -

    Error: ‘PendingVerification: Your account is currently being verified’

    +

    Error: ‘PendingVerification: Your account is currently being verified’

    -
    -
    -
    TASK [metron-test: Instantiate 1 host(s) as sensors,ambari_master,metron,ec2] **
    +
    +
    +
    TASK [metron-test: Instantiate 1 host(s) as sensors,ambari_master,metron,ec2] **
     fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg":
     "Instance creation failed => PendingVerification: Your account is currently
     being verified. Verification normally takes less than 2 hours. Until your
    @@ -540,19 +432,20 @@ 

    Solution

    -

    This will occur if you are attempting to deploy Apache Metron using a newly created Amazon Web Services account. Follow the advice of the message and wait until Amazon’s verification process is complete. Amazon has some additional advice for dealing with this error and more.

    - +

    This will occur if you are attempting to deploy Apache Metron using a newly created Amazon Web Services account. Follow the advice of the message and wait until Amazon’s verification process is complete. Amazon has some additional advice for dealing with this error and more.

    +

    Your account is pending verification. Until the verification process is complete, you may not be able to carry out requests with this account. If you have questions, contact AWS Support.

    -

    Error: ‘Instance creation failed => InstanceLimitExceeded’

    +

    Error: ‘Instance creation failed => InstanceLimitExceeded’

    -
    -
    -
    TASK [metron-test: Instantiate 3 host(s) as search,metron,ec2] *****************
    +
    +
    +
    TASK [metron-test: Instantiate 3 host(s) as search,metron,ec2] *****************
     fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg":
     "Instance creation failed => InstanceLimitExceeded: You have requested more
     instances (11) than your current instance limit of 10 allows for the specified
    @@ -560,44 +453,40 @@ 

    Error: request an adjustment to this limit."} to retry, use: --limit @playbook.retry

    +

    Solution

    -

    This will occur if Apache Metron attempts to deploy more host instances than allowed by your account. The total number of instances required for Apache Metron can be reduced by editing deployment/amazon-ec/playbook.yml. Perhaps a better alternative is to request of Amazon that this limit be increased. Amazon has some additional advice for dealing with this error and more.

    - +

    This will occur if Apache Metron attempts to deploy more host instances than allowed by your account. The total number of instances required for Apache Metron can be reduced by editing deployment/amazon-ec/playbook.yml. Perhaps a better alternative is to request of Amazon that this limit be increased. Amazon has some additional advice for dealing with this error and more.

    +

    You’ve reached the limit on the number of instances you can run concurrently. The limit depends on the instance type. For more information, see How many instances can I run in Amazon EC2. If you need additional instances, complete the Amazon EC2 Instance Request Form.

    -

    Error: ‘SSH encountered an unknown error during the connection’

    +

    Error: ‘SSH encountered an unknown error during the connection’

    -
    -
    -
    TASK [setup] *******************************************************************
    +
    +
    +
    TASK [setup] *******************************************************************
     fatal: [ec2-52-26-113-221.us-west-2.compute.amazonaws.com]: UNREACHABLE! => {
       "changed": false, "msg": "SSH encountered an unknown error during the
       connection. We recommend you re-run the command using -vvvv, which will enable
       SSH debugging output to help diagnose the issue", "unreachable": true}
     
    +

    Solution

    -

    This most often indicates that Ansible cannot connect to the host with the SSH key that it has access to. This could occur if hosts are provisioned with one SSH key, but the playbook is executed subsequently with a different SSH key. The issue can be addressed by either altering the key_file variable to point to the key that was used to provision the hosts or by simply terminating all hosts and re-running the playbook.

    -
    -
    -
    - +

    This most often indicates that Ansible cannot connect to the host with the SSH key that it has access to. This could occur if hosts are provisioned with one SSH key, but the playbook is executed subsequently with a different SSH key. The issue can be addressed by either altering the key_file variable to point to the key that was used to provision the hosts or by simply terminating all hosts and re-running the playbook.

    + + +
    -
    -
    -
    Copyright © 2018 - The Apache Software Foundation. - All Rights Reserved. - +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    - - - -
    diff --git a/site/current-book/metron-deployment/ansible/index.html b/site/current-book/metron-deployment/ansible/index.html new file mode 100644 index 0000000000..383898a796 --- /dev/null +++ b/site/current-book/metron-deployment/ansible/index.html @@ -0,0 +1,128 @@ + + + + + + + + + Metron – Ansible Assets + + + + + + + +
    + + + +
    + +
    + +

    Ansible Assets

    +

    +

    This directory contains all of the shared Ansible assets used to deploy Metron in a development environment. The scope of what Ansible is used for is intentionally limited. The recommended means of deploying Metron is to use the Metron MPack for Apache Ambari.

    +

    Ansible is only used primarily to prepare the development environment for Ambari and for deploying a suite of test sensors to drive telemetry through Metron. The Ansible assets contained here are of limited use outside of this scenario.

    +

    Warning It is not recommended that you use these assets for deploying Metron in your environment for either production or testing. Support for this use case cannot be provided.

    +
    +
    +
    +
    +
    +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    +
    +
    + + diff --git a/site/current-book/metron-deployment/ansible/roles/index.html b/site/current-book/metron-deployment/ansible/roles/index.html new file mode 100644 index 0000000000..62cc9112ff --- /dev/null +++ b/site/current-book/metron-deployment/ansible/roles/index.html @@ -0,0 +1,140 @@ + + + + + + + + + Metron – Ansible Roles + + + + + + + +
    + + + +
    + +
    + +

    Ansible Roles

    +

    +
      + +
    • Monit
    • +
    • OpenTaxii
    • +
    • Pcap Replay
    • +
    • Sensor Stubs
    • +
    • Sensor Test Mode
    • +
    +
    +
    +
    +
    +
    +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    +
    +
    + + diff --git a/site/current-book/metron-deployment/ansible/roles/opentaxii/index.html b/site/current-book/metron-deployment/ansible/roles/opentaxii/index.html new file mode 100644 index 0000000000..c3c8fdd9d9 --- /dev/null +++ b/site/current-book/metron-deployment/ansible/roles/opentaxii/index.html @@ -0,0 +1,301 @@ + + + + + + + + + Metron – OpenTAXII + + + + + + + +
    + + + +
    + +
    + +

    OpenTAXII

    +

    +

    Installs OpenTAXII as a deamon that can be launched via a SysV service script. The complementary client implementation, Cabby is also installed.

    +

    OpenTAXII is a robust Python implementation of TAXII Services that delivers a rich feature set and friendly pythonic API. TAXII (Trusted Automated eXchange of Indicator Information) is a collection of specifications defining a set of services and message exchanges used for sharing cyber threat intelligence information between parties.

    +
    +

    Getting Started

    +

    After deployment completes the OpenTAXII service is installed and running. A set of Hail a TAXII threat intel collections have been defined and configured. Use the status option to view the collections that have been defined.

    + +
    +
    +
    $ service opentaxii status
    +Checking opentaxii...                             Running
    +guest.phishtank_com                                0
    +guest.Abuse_ch                                     0
    +guest.CyberCrime_Tracker                           0
    +guest.EmergingThreats_rules                        0
    +guest.Lehigh_edu                                   0
    +guest.MalwareDomainList_Hostlist                   0
    +guest.blutmagie_de_torExits                        0
    +guest.dataForLast_7daysOnly                        0
    +guest.dshield_BlockList                            0
    +
    + +

    Notice that each collections contain zero records. None of the data is automatically synced during deployment. To sync the data manually use the sync option as defined below. The following example does not provide a begin and end time so the data will be fetched for the current day only.

    + +
    +
    +
    # service opentaxii sync guest.blutmagie_de_torExits
    +2016-04-21 20:34:42,511 INFO: Starting new HTTP connection (1): localhost
    +2016-04-21 20:34:42,540 INFO: Response received for Inbox_Message from http://localhost:9000/services/inbox
    +2016-04-21 20:34:42,542 INFO: Sending Inbox_Message to http://localhost:9000/services/inbox
    +...
    +2016-04-21 20:34:42,719 INFO: Response received for Poll_Request from http://localhost:9000/services/poll
    +2016-04-21 20:34:42,719 INFO: Content blocks count: 1618, is partial: False
    +
    + +

    The OpenTAXII service now contains 1,618 threat intel records indicating Tor Exit nodes.

    + +
    +
    +
    [root@source ~]# service opentaxii status
    +Checking opentaxii...                             Running
    +guest.phishtank_com                                0
    +guest.Abuse_ch                                     0
    +guest.CyberCrime_Tracker                           0
    +guest.EmergingThreats_rules                        0
    +guest.Lehigh_edu                                   0
    +guest.MalwareDomainList_Hostlist                   0
    +guest.blutmagie_de_torExits                        1618
    +guest.dataForLast_7daysOnly                        0
    +guest.dshield_BlockList                            0
    +
    +
    +
    +

    Usage

    +

    A standard SysV script has been installed to manage OpenTAXII. The following functions are available.

    +

    start stop restart the OpenTAXII service

    +

    status of the OpenTAXII service. The command displays the collections that have been defined and the number of records in each.

    + +
    +
    +
    $ service opentaxii status
    +Checking opentaxii...                             Running
    +guest.phishtank_com                                984
    +guest.Abuse_ch                                     45
    +guest.CyberCrime_Tracker                           482
    +guest.EmergingThreats_rules                        0
    +guest.Lehigh_edu                                   1030
    +guest.MalwareDomainList_Hostlist                   84
    +guest.blutmagie_de_torExits                        3236
    +guest.dataForLast_7daysOnly                        3377
    +guest.dshield_BlockList                            0
    +
    + +

    setup Initializes the services and collections required to operate the OpenTAXII service. This will destroy all existing data. The user is prompted to continue before any data is destroyed.

    + +
    +
    +
    # service opentaxii setup
    +WARNING: force reset and destroy all opentaxii data? [Ny]: y
    +Stopping opentaxii                                ..Ok
    +2016-04-21T19:56:01.886157Z [opentaxii.server] info: api.persistence.loaded {timestamp=2016-04-21T19:56:01.886157Z, logger=opentaxii.server, api_class=SQLDatabaseAPI, event=api.persistence.loaded, level=info}
    +2016-04-21T19:56:01.896503Z [opentaxii.server] info: api.auth.loaded {timestamp=2016-04-21T19:56:01.896503Z, logger=opentaxii.server, api_class=SQLDatabaseAPI, event=api.auth.loaded, level=info}
    +2016-04-21T19:56:01.896655Z [opentaxii.server] info: taxiiserver.configured {timestamp=2016-04-21T19:56:01.896655Z, logger=opentaxii.server, event=taxiiserver.configured, level=info}
    +...
    +Ok
    +
    + +

    sync [collection] [begin-at] [end-at] Syncs the threat intel data available at Hail a TAXII. If no begin and end date is provided then data is synced over the current day only.

    +
      + +
    • collection Name of the collection to sync.
    • +
    • begin-at Exclusive begin of time window; ISO8601
    • +
    • end-at Inclusive end of time window; ISO8601
    • +
    + +
    +
    +
    $ service opentaxii sync guest.phishtank_com
    ++ /usr/local/opentaxii/opentaxii-venv/bin/taxii-proxy --poll-path http://hailataxii.com/taxii-data --poll-collection guest.phishtank_com --inbox-path http://localhost:9000/services/guest.phishtank_com-inbox --inbox-collection guest.phishtank_com --binding urn:stix.mitre.org:xml:1.1.1 --begin 2016-04-21 --end 2016-04-22
    +2016-04-21 17:36:23,778 INFO: Sending Poll_Request to http://hailataxii.com/taxii-data
    +2016-04-21 17:36:23,784 INFO: Starting new HTTP connection (1): hailataxii.com
    +2016-04-21 17:36:24,175 INFO: Response received for Poll_Request from http://hailataxii.com/taxii-data
    +2016-04-21 17:36:24,274 INFO: Sending Inbox_Message to http://localhost:9000/services/guest.phishtank_com-inbox
    +...
    +2016-04-21 17:36:34,867 INFO: Response received for Poll_Request from http://localhost:9000/services/guest.phishtank_com-poll
    +2016-04-21 17:36:34,868 INFO: Content blocks count: 6993, is partial: False
    +
    + +
    +

    Troubleshooting

    +

    Should you need to explore the installation, here are instructions on doing so.

    +

    OpenTAXII is installed in a virtual environment. Before exploring the environment run the following commands to perform the necessary setup. The specific paths may change depending on your Ansible settings.

    + +
    +
    +
    export LD_LIBRARY_PATH=/opt/rh/python27/root/usr/lib64
    +export OPENTAXII_CONFIG=/usr/local/opentaxii/etc/opentaxii-conf.yml
    +cd /usr/local/opentaxii
    +. opentaxii-venv/bin/activate
    +
    + +

    Discover available services.

    + +
    +
    +
    taxii-discovery --discovery http://localhost:9000/services/discovery
    +taxii-discovery --discovery http://hailataxii.com/taxii-data
    +
    + +

    Explore available collections.

    + +
    +
    +
    taxii-collections --discovery http://localhost:9000/services/discovery
    +taxii-collections --discovery http://hailataxii.com/taxii-data
    +
    + +

    Read data from a collection.

    + +
    +
    +
    taxii-poll --discovery http://localhost:9000/services/discovery -c guest.phishtank_com
    +taxii-poll --discovery http://hailataxii.com/taxii-data -c guest.phishtank_com --begin 2016-04-20
    +
    + +

    Manually load data into a collection.

    + +
    +
    +
    taxii-push \
    +  --discovery http://localhost:9000/services/discovery \
    +  --dest phishtank \
    +  --content-file data.xml \
    +  --username guest \
    +  --password guest
    +
    + +

    Fetch data from a remote service and mirror it locally.

    + +
    +
    +
    taxii-proxy --poll-path http://hailataxii.com/taxii-data \
    +            --poll-collection guest.phishtank_com \
    +            --inbox-path http://localhost:9000/services/guest.phishtank_com-inbox \
    +            --inbox-collection guest.phishtank_com \
    +            --binding urn:stix.mitre.org:xml:1.1.1 \
    +            --inbox-username guest \
    +            --inbox-password guest \
    +            --begin 2016-04-20
    +
    +
    +
    +
    +
    +
    +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    +
    +
    + + diff --git a/site/current-book/metron-deployment/ansible/roles/pcap_replay/index.html b/site/current-book/metron-deployment/ansible/roles/pcap_replay/index.html new file mode 100644 index 0000000000..d97a97d1f8 --- /dev/null +++ b/site/current-book/metron-deployment/ansible/roles/pcap_replay/index.html @@ -0,0 +1,172 @@ + + + + + + + + + Metron – Pcap Replay + + + + + + + +
    + + + +
    + +
    + +

    Pcap Replay

    +

    This project enables packet capture data to be replayed through a network interface to simulate live network traffic. This can be used to support functional, performance, and load testing of Apache Metron.

    +
    +

    Getting Started

    +

    To replay packet capture data, simply start the pcap-replay SysV service. To do this run the following command.

    + +
    +
    +
    service pcap-replay start
    +
    + +

    All additional options accepted by tcpreplay can be passed to the service script to modify how the network data is replayed. For example, this makes it simple to control the amount and rate of data replayed during functional, performance and load testing.

    +

    Example: Replay data at a rate of 10 mbps.

    + +
    +
    +
    service pcap-replay start --mbps 10
    +
    + +

    Example: Replay data at a rate of 10 packets per second.

    + +
    +
    +
    service pcap-replay start --pps 10
    +
    + +

    All nodes on the same subnet with their network interface set to promiscuous mode will then be able to capture the network traffic being replayed. To validate, simply run something like the following.

    + +
    +
    +
    tcpdump -i eth1
    +
    +
    +
    +

    Data

    +

    An example packet capture file has been installed at /opt/pcap-replay/example.pcap. By default, the network traffic contained within this file is continually replayed.

    +

    To replay your own packet capture data, simply add any number of files containing libpcap formatted packet capture data to /opt/pcap-replay. The files must end with the .pcap extension. To pick up newly installed files, simply restart the service.

    + +
    +
    +
    service pcap-replay restart
    +
    +
    +
    +
    +
    +
    +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    +
    +
    + + diff --git a/site/current-book/metron-deployment/ansible/roles/sensor-stubs/index.html b/site/current-book/metron-deployment/ansible/roles/sensor-stubs/index.html new file mode 100644 index 0000000000..650fc89851 --- /dev/null +++ b/site/current-book/metron-deployment/ansible/roles/sensor-stubs/index.html @@ -0,0 +1,221 @@ + + + + + + + + + Metron – Sensor Stubs + + + + + + + +
    + + + +
    + +
    + +

    Sensor Stubs

    +

    +

    A service has been created to simulate the behavior of a sensor by sending canned telemetry data to a Kafka topic. These “Sensor Stubs” consume fewer resources than the actual sensor that they replace.

    +
    +
    +

    (Q) How do the sensor stubs work?

    +

    The stubs are installed with a set of canned data for each sensor type; Bro, Snort and YAF. A subset of this canned data is randomly selected and sent to the Kafka topic in batches. The timestamp of each message is updated to match current system time.

    +
    +

    (Q) How do I configure the message rate?

    +

    The number of telemetry messages sent in each batch, along with the time delay between batches is configurable. Before installation, these values can be configured by redefining sensor_stubs_delay and sensor_stubs_count. The values can also be configured by altering the deployed system service script at /etc/init.d/sensor-stubs.

    +
    +

    (Q) How do I install the sensor stubs?

    +

    Using the default playbooks, this role can be installed by using the Ansible tag sensor-stubs. This service is installed on the same hosts where the sensors would be; defined by the sensors host group.

    +

    The defaults for the “Full Dev” environment have been changed so that the Sensor Stubs are installed by default, rather than the sensors themselves. The Amazon EC2 environment continues to install the original sensors by default.

    +
    +

    (Q) How do I use the sensor stubs?

    +

    Start all sensor stubs. The output includes the PID for each running sensor stub.

    + +
    +
    +
    $ service sensor-stubs start
    +Starting sensor-stubs...
    +       bro: Ok [26505]
    +       yaf: Ok [26507]
    +     snort: Ok [26509]
    +
    + +

    Check the status of each sensor stub.

    + +
    +
    +
    $ service sensor-stubs status
    +Checking sensor-stubs...
    +       bro: Running [26505]
    +       yaf: Running [26507]
    +     snort: Running [26509]
    +
    + +

    Stop all sensor stubs.

    + +
    +
    +
    $ service sensor-stubs stop
    +Stopping sensor-stubs...
    +..       bro: Ok [26505]
    +..       yaf: Ok [26507]
    +..     snort: Ok [26509]
    +
    + +

    Check the status. All sensor stubs should be stopped.

    + +
    +
    +
    $ service sensor-stubs status
    +Checking sensor-stubs...
    +       bro: Not running
    +       yaf: Not running
    +     snort: Not running
    +
    + +

    Start only the Bro sensor stub.

    + +
    +
    +
    $ service sensor-stubs start bro
    +Starting sensor-stubs...
    +       bro: OK [11616]
    +
    + +

    Stop the Bro sensor stub.

    + +
    +
    +
    $ service sensor-stubs stop bro
    +Stopping sensor-stubs...
    +..       bro: Ok [11616]
    +
    +
    +
    +

    (Q) How do I install the original sensors?

    +

    The default behavior can be changed by skipping the sensor-stubs flag and including the sensors flag. For example, to deploy “Full Dev” with the original sensors run the following command.

    + +
    +
    +
    cd metron-deployment/development/centos6
    +vagrant --ansible-skip-tags="sensor-stubs,solr" up
    +
    +
    +
    +

    (Q) Where does the mock data come from?

    +

    The data produced by the sensor stubs was generated by running the sensors against the example pcap file that is distributed with Metron. This ensures that the data produced by the sensor stubs is similar to the data produced when using the actual sensors.

    +
    +
    +
    +
    +
    +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    +
    +
    + + diff --git a/site/current-book/metron-deployment/ansible/roles/sensor-test-mode/index.html b/site/current-book/metron-deployment/ansible/roles/sensor-test-mode/index.html new file mode 100644 index 0000000000..b989235bc3 --- /dev/null +++ b/site/current-book/metron-deployment/ansible/roles/sensor-test-mode/index.html @@ -0,0 +1,156 @@ + + + + + + + + + Metron – Sensor Test Mode + + + + + + + +
    + + + +
    + +
    + +

    Sensor Test Mode

    +

    A role that configures each of the sensors to produce the maximum amount of telemetry data. This role is useful only for testing. It can be useful to support functional, performance, and load testing of Apache Metron.

    +

    The role does the following to maximize the amount of telemetry data produced by each Metron sensor.

    +
      + +
    • Plays a packet capture file through a network interface to simulate live network traffic.
    • +
    • Configures YAF with idle-timeout=0. This causes a flow record to be produced for every network packet received.
    • +
    • Configures Snort to produce an alert for every network packet received.
    • +
    +
    +

    Getting Started

    +

    To enable the sensor-test-mode role apply the role to the sensors host group in your Ansible playbook.

    + +
    +
    +
    - hosts: sensors
    +  roles:
    +    - role: sensor-test-mode
    +
    + +

    The role has also been added to the default metron_install.yml playbook so that it can be turned on/off with a property in both the local Virtualbox and the remote EC2 deployments.

    + +
    +
    +
    sensor_test_mode: True
    +
    +
    +
    +
    +
    +
    +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    +
    +
    + + diff --git a/site/current-book/metron-deployment/development/centos6/index.html b/site/current-book/metron-deployment/development/centos6/index.html new file mode 100644 index 0000000000..b036e3759c --- /dev/null +++ b/site/current-book/metron-deployment/development/centos6/index.html @@ -0,0 +1,233 @@ + + + + + + + + + Metron – Metron on CentOS 6 + + + + + + + +
    + + + +
    + +
    + +

    Metron on CentOS 6

    +

    This project fully automates the provisioning and deployment of Apache Metron and all necessary prerequisites on a single, virtualized host running CentOS 6.

    +

    Metron is composed of many components and installing all of these on a single host, especially a virtualized one, will greatly stress the resources of the host. The host will require at least 8 GB of RAM and a fair amount of patience. It is highly recommended that you shut down all unnecessary services.

    +
    +

    Getting Started

    +
    +

    Prerequisites

    +

    The computer used to deploy Apache Metron will need to have the following components installed.

    + +

    Running the following script can help validate whether you have all the prerequisites installed and running correctly.

    + +
    +
    +
      metron-deployment/scripts/platform-info.sh
    +
    + +
    +

    How do I install these on MacOS?

    +

    Any platform that supports these tools is suitable, but the following instructions cover installation on macOS. The easiest means of installing these tools on a Mac is to use the excellent Homebrew project.

    +
      + +
    1. + +

      Install Homebrew by following the instructions at Homebrew.

      +
    2. +
    3. + +

      Run the following command in a terminal to install all of the required tools.

      + +
      +
      +
      brew cask install vagrant virtualbox docker
      +brew cask install caskroom/versions/java8
      +brew install maven@3.3 git
      +pip install ansible==2.2.2.0
      +vagrant plugin install vagrant-hostmanager
      +open /Applications/Docker.app
      +
      +
    4. +
    +
    +

    Deploy Metron

    +
      + +
    1. + +

      Ensure that the Docker service is running.

      +
    2. +
    3. + +

      Deploy Metron

      + +
      +
      +
      cd metron-deployment/development/centos6
      +vagrant up
      +
      + +

      Should the process fail before completing the deployment, the following command will continue the deployment process without re-instantiating the host.

      + +
      +
      +
      vagrant provision
      +
      +
    4. +
    +
    +

    Explore Metron

    +

    Navigate to the following resources to explore your newly minted Apache Metron environment.

    + +

    Connecting to the host through SSH is as simple as running the following command.

    + +
    +
    +
    vagrant ssh
    +
    +
    +
    +

    Working with Metron

    +

    In addition to re-running the entire provisioning play book, you may now re-run an individual Ansible tag or a collection of tags in the following ways. The following commands will re-run the sensor-stubs role on the Vagrant image. This will install and start the sensor stub components.

    + +
    +
    +
    vagrant --ansible-tags="sensor-stubs" provision
    +
    + +

    Tags are listed in the playbooks, some frequently used tags:

    +
      + +
    • hdp-install - Install HDP
    • +
    • hdp-deploy - Deploy and Start HDP Services (will start all Hadoop Services)
    • +
    • sensors - Deploy and start the sensors.
    • +
    • sensor-stubs - Deploy and start the sensor stubs.
    • +
    +
    +
    +
    +
    +
    +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    +
    +
    + + diff --git a/site/current-book/metron-deployment/development/fastcapa/index.html b/site/current-book/metron-deployment/development/fastcapa/index.html new file mode 100644 index 0000000000..d4715768fa --- /dev/null +++ b/site/current-book/metron-deployment/development/fastcapa/index.html @@ -0,0 +1,249 @@ + + + + + + + + + Metron – Fastcapa Test Environment + + + + + + + +
    + + + +
    + +
    + +

    Fastcapa Test Environment

    +

    Provides a test environment for the development and testing of Fastcapa. The environment is automatically validated after it is created to ensure that Fastcapa is behaving correctly.

    +

    Two virtualized nodes are launched with Vagrant that can communicate with one another over a private network.

    +
      + +
    • The source node uses Metron’s pcap_replay functionality to transmit raw network packet data over a private network.
    • +
    • The sink node is running fastcapa and is capturing these network packets.
    • +
    • Fastcapa then transforms and bundles the packets into a message.
    • +
    • The message is sent to a Kafka broker running on the source node.
    • +
    +
    +

    Getting Started

    +

    The Fastcapa test environment can be executed on different operating systems. There is a sub-directory for each operating system that Fastcapa can be tested on.

    +

    To run, simply execute vagrant up within the appropriate directory. For example, to run the tests on CentOS 7.1 then execute the following commands.

    + +
    +
    +
    cd centos-7.1
    +vagrant up
    +
    + +

    Automated tests are executed after provisioning completes to ensure that Fastcapa and the rest of the environment is functioning properly. If you see something like the following, then the tests have passed.

    + +
    +
    +
    $ vagrant up
    +==> source: Running provisioner: ansible...
    +    source: Running ansible-playbook...
    +...
    +TASK [debug] *******************************************************************
    +ok: [source] => {
    +    "msg": "Successfully received packets sent from pcap-replay!"
    +}
    +...
    +TASK [debug] *******************************************************************
    +ok: [source] => {
    +    "msg": "Successfully received a Kafka message from fastcapa!"
    +}
    +
    + +

    If the deployment process fails mid-course, running vagrant provision will continue the process from where it left off. This can sometimes occur when the VM reboots as part of the deployment process. The error might look like the following.

    + +
    +
    +
    TASK [fastcapa : Restart for modified kernel params] ***************************
    +fatal: [sink]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Shared connection to 127.0.0.1 closed.\r\n", "unreachable": true}
    +	to retry, use: --limit @/Users/nallen/Development/metron/metron-deployment/vagrant/fastcapa-test-platform/playbook.retry
    +
    +PLAY RECAP *********************************************************************
    +sink                       : ok=11   changed=9    unreachable=1    failed=0
    +source                     : ok=29   changed=25   unreachable=0    failed=0
    +
    +Ansible failed to complete successfully. Any error output should be
    +visible above. Please fix these errors and try again.
    +
    +
    +
    +

    Going Deeper

    +

    This section will outline in more detail the environment and how to interact with it.

    +
    +

    source

    +

    To validate that the source node is functioning properly, run the following commands.

    +

    First, ensure that the pcap-replay service is running.

    + +
    +
    +
    vagrant ssh source
    +sudo service pcap-replay status
    +
    + +

    Use tcpdump to ensure that the raw packet data is being sent over the private network. Enter ‘CTRL-C’ to kill the tcpdump process once you are able to see that packets are being sent.

    + +
    +
    +
    sudo yum -y install tcpdump
    +sudo tcpdump -i enp0s8
    +
    +
    +
    +

    sink

    +

    Next validate that the sink is functioning properly. Run the following commands starting from the host operating system.

    +

    First, ensure that the fastcapa service is running.

    + +
    +
    +
    vagrant ssh sink
    +service fastcapa status
    +
    + +

    Ensure that the raw network packet data is being received by Kafka.

    + +
    +
    +
    /usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic pcap
    +
    + +

    Enter ‘CTRL-C’ to kill the kafka-console-consumer process once you are able to see that packets are being sent. These packets will appear to be gibberish in the console. This is the raw binary network packet data after all.

    +
    +

    FAQ

    +
    +

    Error Message: Timed out while waiting for the machine to boot

    + +
    +
    +
    Timed out while waiting for the machine to boot. This means that
    +Vagrant was unable to communicate with the guest machine within
    +the configured ("config.vm.boot_timeout" value) time period.
    +If you look above, you should be able to see the error(s) that
    +Vagrant had when attempting to connect to the machine. These errors
    +are usually good hints as to what may be wrong.
    +If you're using a custom box, make sure that networking is properly
    +working and you're able to connect to the machine. It is a common
    +problem that networking isn't setup properly in these boxes.
    +Verify that authentication configurations are also setup properly,
    +as well.
    +If the box appears to be booting properly, you may want to increase
    +the timeout ("config.vm.boot_timeout") value.
    +➜  centos-7.4 git:(master) ✗ vagrant status
    +Current machine states:
    +source                    running (virtualbox)
    +sink                      not created (virtualbox)
    +
    + +

    If you are unable to launch any of the Fastcapa test environments, which results in a message like the one above, then you may need to upgrade your version of Virtualbox. Success has been reported with versions of VirtualBox 5.1.22+.

    +
    +
    +
    +
    +
    +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    +
    +
    + + diff --git a/site/current-book/metron-deployment/development/index.html b/site/current-book/metron-deployment/development/index.html new file mode 100644 index 0000000000..ea99fdf76c --- /dev/null +++ b/site/current-book/metron-deployment/development/index.html @@ -0,0 +1,137 @@ + + + + + + + + + Metron – Metron Development Environments + + + + + + + +
    + + + +
    + +
    + +

    Metron Development Environments

    +

    +

    This directory contains environments useful for Metron developers. These environments are not intended for proof-of-concept, testing, or production use. These are extremely resource constrained and cannot support anything beyond the most basic work loads.

    +
      + +
    • Metron running on CentOS 6
    • +
    • Metron running on Ubuntu 14
    • +
    • Fastcapa
    • +
    +
    +

    Vagrant Cachier recommendations

    +

    The development boxes are designed to be spun up and destroyed on a regular basis as part of the development cycle. In order to avoid the overhead of re-downloading many of the heavy platform dependencies, Vagrant can use the vagrant-cachier plugin to store package caches between builds. If the plugin has been installed to your vagrant it will be used, and packages will be cached in ~/.vagrant/cache.

    +
    +
    +
    +
    +
    +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    +
    +
    + + diff --git a/site/current-book/metron-deployment/development/ubuntu14/index.html b/site/current-book/metron-deployment/development/ubuntu14/index.html new file mode 100644 index 0000000000..16b2d811bd --- /dev/null +++ b/site/current-book/metron-deployment/development/ubuntu14/index.html @@ -0,0 +1,233 @@ + + + + + + + + + Metron – Metron on Ubuntu 14 + + + + + + + +
    + + + +
    + +
    + +

    Metron on Ubuntu 14

    +

    This project fully automates the provisioning and deployment of Apache Metron and all necessary prerequisites on a single, virtualized host running Ubuntu 14.

    +

    Metron is composed of many components and installing all of these on a single host, especially a virtualized one, will greatly stress the resources of the host. The host will require at least 8 GB of RAM and a fair amount of patience. It is highly recommended that you shut down all unnecessary services.

    +
    +

    Getting Started

    +
    +

    Prerequisites

    +

    The computer used to deploy Apache Metron will need to have the following components installed.

    + +

    Running the following script can help validate whether you have all the prerequisites installed and running correctly.

    + +
    +
    +
      metron-deployment/scripts/platform-info.sh
    +
    + +
    +

    How do I install these on MacOS?

    +

    Any platform that supports these tools is suitable, but the following instructions cover installation on macOS. The easiest means of installing these tools on a Mac is to use the excellent Homebrew project.

    +
      + +
    1. + +

      Install Homebrew by following the instructions at Homebrew.

      +
    2. +
    3. + +

      Run the following command in a terminal to install all of the required tools.

      + +
      +
      +
      brew cask install vagrant virtualbox docker
      +brew cask install caskroom/versions/java8
      +brew install maven@3.3 git
      +pip install ansible==2.2.2.0
      +vagrant plugin install vagrant-hostmanager
      +open /Applications/Docker.app
      +
      +
    4. +
    +
    +

    Deploy Metron

    +
      + +
    1. + +

      Ensure that the Docker service is running.

      +
    2. +
    3. + +

      Deploy Metron

      + +
      +
      +
      cd metron-deployment/development/ubuntu14
      +vagrant up
      +
      + +

      Should the process fail before completing the deployment, the following command will continue the deployment process without re-instantiating the host.

      + +
      +
      +
      vagrant provision
      +
      +
    4. +
    +
    +

    Explore Metron

    +

    Navigate to the following resources to explore your newly minted Apache Metron environment.

    + +

    Connecting to the host through SSH is as simple as running the following command.

    + +
    +
    +
    vagrant ssh
    +
    +
    +
    +

    Working with Metron

    +

    In addition to re-running the entire provisioning play book, you may now re-run an individual Ansible tag or a collection of tags in the following ways. The following commands will re-run the sensor-stubs role on the Vagrant image. This will install and start the sensor stub components.

    + +
    +
    +
    vagrant --ansible-tags="sensor-stubs" provision
    +
    + +

    Tags are listed in the playbooks, some frequently used tags:

    +
      + +
    • hdp-install - Install HDP
    • +
    • hdp-deploy - Deploy and Start HDP Services (will start all Hadoop Services)
    • +
    • sensors - Deploy and start the sensors.
    • +
    • sensor-stubs - Deploy and start the sensor stubs.
    • +
    +
    +
    +
    +
    +
    +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    +
    +
    + + diff --git a/site/current-book/metron-deployment/index.html b/site/current-book/metron-deployment/index.html index 72723a6071..a3ffcbdc19 100644 --- a/site/current-book/metron-deployment/index.html +++ b/site/current-book/metron-deployment/index.html @@ -1,540 +1,285 @@ - + - Metron – Overview - + Metron – + - - - - - - - - - - - - - - -
    -
    -

    Kerberos

    -

    The MPack can allow Metron to be installed and then Kerberized, or installed on top of an already Kerberized cluster. This is done through Ambari’s standard Kerberization setup.

    +

    How?

    +

    To build the DEB packages, follow the instructions at packaging/docker/deb-docker.

    -

    Caveats

    - +

    How do I deploy Metron within AWS?

    +

    This deploys Apache Metron on an automatically provisioned 10-node cluster running in Amazon Web Service’s EC2 platform.

    +

    This installs real sources of telemetry like Bro, Snort, and YAF, but feeds those sensors with canned pcap data.

    +
    +
    +

    What is this good for?

      - -
    • For nodes using a Metron client and a local repo, the repo must exist on all nodes (e.g via createrepo). This repo can be empty; only the main Metron services need the RPMs.
    • - -
    • A Metron client must be installed on each supervisor node in a secured cluster. This is to ensure that the Metron keytab and client_jaas.conf get distributed in order to allow reading and writing from Kafka. - + +
    • If you are a Metron developer wanting to test at-scale on a multi-node cluster, then this is the right option for you.
    • +
    +
    +

    What is this not good for?

      - -
    • When Metron is already installed on the cluster, this should be done before Kerberizing.
    • - -
    • When addding Metron to an already Kerberized cluster, ensure that all supervisor nodes receive a Metron client.
    • -
    - -
  • Storm (and Metron) must be restarted after Metron is installed on an already Kerberized cluster. Several Storm configs get updated, and Metron will be unable to write to Kafka without a restart. - + +
  • + +

    If you want to run Metron in AWS with real data for either testing or production, then this is NOT the right option for you.

    +
  • +
  • + +

    WARNING This is only intended for creating an ephemeral cluster for brief periods of testing. This deployment method has the following severe limitations.

      - -
    • Kerberizing a cluster with an existing Metron already has restarts of all services during Kerberization, so it’s unneeded.
    • -
  • + +
  • The cluster is not secured in any way. It is up to you to manually secure it.
  • +
  • The cluster will not survive a reboot.
  • -

    Instructions for setup on Full Dev can be found at Kerberos-ambari-setup.md. These instructions reference the manual install instructions.

    + +
    -

    Kerberos Without an MPack

    -

    Using the MPack is preferred, but instructions for Kerberizing manually can be found at Kerberos-manual-setup.md. These instructions are reference by the Ambari Kerberos install instructions and include commands for setting up a KDC.

    +

    How?

    +

    Follow the instructions available at amazon-ec2.

    -

    TODO

    - +

    How do I build Metron with Docker?

    +

    This provides a Docker containing all of the prerequisites required to build Metron. This allows you to easily build Metron without installing all of the build dependencies manually.

    +
    +
    +

    What is this good for?

      - -
    • Support Ubuntu deployments
    • -
    -
    -
    - +
  • If you want to build Metron, but do not want to manually install all of the build dependencies, then this is a good option.
  • + +
    +

    How?

    +

    Follow the instructions available at packaging/docker/ansible-docker.

    + + +
    -
    -
    -
    Copyright © 2018 - The Apache Software Foundation. - All Rights Reserved. - +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    - - - -
    diff --git a/site/current-book/metron-deployment/other-examples/index.html b/site/current-book/metron-deployment/other-examples/index.html index 3cf67e26f6..3a89cb0d30 100644 --- a/site/current-book/metron-deployment/other-examples/index.html +++ b/site/current-book/metron-deployment/other-examples/index.html @@ -1,297 +1,130 @@ - + Metron – Other Example Deployments - + - - - - - - - - - - - - - - -
    -
    -
    -
    -
    Copyright © 2018 - The Apache Software Foundation. - All Rights Reserved. - +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    - - - -
    diff --git a/site/current-book/metron-deployment/other-examples/manual-install/Manual_Install_CentOS6.html b/site/current-book/metron-deployment/other-examples/manual-install/Manual_Install_CentOS6.html index eeadfe6e6f..5cf9775263 100644 --- a/site/current-book/metron-deployment/other-examples/manual-install/Manual_Install_CentOS6.html +++ b/site/current-book/metron-deployment/other-examples/manual-install/Manual_Install_CentOS6.html @@ -1,387 +1,230 @@ - + Metron – - + - - - - - - - - - - - - - - -
    - +
  • -

    Validate Librdkafka does indeed support SASL. Run the following command and ensure that sasl is returned as a built-in feature.

    - -
    -
    -
    $ examples/rdkafka_example -X builtin.features
    +
    +

    Validate Librdkafka does indeed support SASL. Run the following command and ensure that sasl is returned as a built-in feature.

    + +
    +
    +
    $ examples/rdkafka_example -X builtin.features
     builtin.features = gzip,snappy,ssl,sasl,regex
     
    -

    If it is not, ensure that you have libsasl or libsasl2 installed. On CentOS, this can be installed with the following command.

    - -
    -
    -
    yum install -y cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi
    -
  • - + +

    If it is not, ensure that you have libsasl or libsasl2 installed. On CentOS, this can be installed with the following command.

    + +
    +
    +
    yum install -y cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi
    +
    +
  • -

    Grant access to your Kafka topic. In this example the topic is simply named pcap.

    - -
    -
    -
    ${KAFKA_HOME}/bin/kafka-acls.sh \
    +
    +

    Grant access to your Kafka topic. In this example the topic is simply named pcap.

    + +
    +
    +
    ${KAFKA_HOME}/bin/kafka-acls.sh \
       --authorizer kafka.security.auth.SimpleAclAuthorizer \
       --authorizer-properties zookeeper.connect=zookeeper1:2181 \
       --add \
    @@ -510,65 +400,60 @@ 

    Kerberos

    --add \ --allow-principal User:metron \ --group pycapa -
  • - +
    +
  • +

    Use Pycapa as you normally would, but append the following three additional parameters

    -
      - +
    • security.protocol
    • -
    • sasl.kerberos.keytab
    • - -
    • sasl.kerberos.principal
    • -
    - -
    -
    -
      $ pycapa --producer \
    -  --interface eth0 \
    -  --kafka-broker kafka1:6667 \
    -  --kafka-topic pcap --max-packets 10 \
    -  -X security.protocol=SASL_PLAINTEXT \
    -  -X sasl.kerberos.keytab=/etc/security/keytabs/metron.headless.keytab \
    -  -X sasl.kerberos.principal=metron-metron@METRONEXAMPLE.COM
    -  INFO:root:Connecting to Kafka; {'sasl.kerberos.principal': 'metron-metron@METRONEXAMPLE.COM', 'group.id': 'ORNLVWJZZUAA', 'security.protocol': 'SASL_PLAINTEXT', 'sasl.kerberos.keytab': '/etc/security/keytabs/metron.headless.keytab', 'bootstrap.servers': 'kafka1:6667'}
    -  INFO:root:Starting packet capture
    -  INFO:root:Waiting for '1' message(s) to flush
    -  INFO:root:'10' packet(s) in, '10' packet(s) out
    -
  • +
  • sasl.kerberos.principal + +
    +
    +
    $ pycapa --producer \
    +    --interface eth0 \
    +    --kafka-broker kafka1:6667 \
    +    --kafka-topic pcap --max-packets 10 \
    +    -X security.protocol=SASL_PLAINTEXT \
    +    -X sasl.kerberos.keytab=/etc/security/keytabs/metron.headless  .keytab \
    +    -X sasl.kerberos.principal=metron-metron@METRONEXAMPLE.COM
    +INFO:root:Connecting to Kafka; {'sasl.kerberos.principal':   'metron-metron@METRONEXAMPLE.COM', 'group.id': 'ORNLVWJZZUAA',   'security.protocol': 'SASL_PLAINTEXT', 'sasl.kerberos.keytab':   '/etc/security/keytabs/metron.headless.keytab', 'bootstrap.servers': 'kafka1:6667'}
    +INFO:root:Starting packet capture
    +INFO:root:Waiting for '1' message(s) to flush
    +INFO:root:'10' packet(s) in, '10' packet(s) out
    +
    +
  • + +

    FAQs

    -

    How do I get more logs?

    +

    How do I get more logs?

    Use the following two command-line arguments to get detailed logging.

    -
    -
    -
    -X debug=all --log-level DEBUG
    -
    +
    +
    +
    -X debug=all --log-level DEBUG
    +
    +
    -

    When I run Pycapa against a Kafka broker with Kerberos enabled, why do I get an error like “No such configuration property: ‘sasl.kerberos.principal’”?

    -

    This can be a confusing error message because sasl.kerberos.principal is indeed a valid property for librdkafka as defined here. This is most likely because Pycapa is running against a version of Librdkafka without SASL support enabled. This might happen if you have accidentally installed multiple versions of Librdkafka and Pycapa is unexpectedly using the version without SASL support enabled.

    +

    When I run Pycapa against a Kafka broker with Kerberos enabled, why do I get an error like “No such configuration property: ‘sasl.kerberos.principal’”?

    +

    This can be a confusing error message because sasl.kerberos.principal is indeed a valid property for librdkafka as defined here. This is most likely because Pycapa is running against a version of Librdkafka without SASL support enabled. This might happen if you have accidentally installed multiple versions of Librdkafka and Pycapa is unexpectedly using the version without SASL support enabled.

    Bottom Line: Make sure that Pycapa is running against a version of Librdkafka with SASL support enabled.

    - - - - + + +
    -
    -
    -
    Copyright © 2018 - The Apache Software Foundation. - All Rights Reserved. - +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    - - - -
    diff --git a/site/current-book/metron-stellar/stellar-3rd-party-example/index.html b/site/current-book/metron-stellar/stellar-3rd-party-example/index.html index d60a1284b8..4e19e16796 100644 --- a/site/current-book/metron-stellar/stellar-3rd-party-example/index.html +++ b/site/current-book/metron-stellar/stellar-3rd-party-example/index.html @@ -1,211 +1,108 @@ - + Metron – Introduction - + - - - - - - - - - - - - - - -
    - +
    -
    -
    Copyright © 2018 - The Apache Software Foundation. - All Rights Reserved. - +
    +
    +© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo, + and the Apache Metron project logo are trademarks of The Apache Software Foundation. +
    - - - -
    diff --git a/site/current-book/metron-stellar/stellar-common/3rdPartyStellar.html b/site/current-book/metron-stellar/stellar-common/3rdPartyStellar.html index eb9e054529..88d7ac6455 100644 --- a/site/current-book/metron-stellar/stellar-common/3rdPartyStellar.html +++ b/site/current-book/metron-stellar/stellar-common/3rdPartyStellar.html @@ -1,216 +1,114 @@ - + Metron – Custom Stellar Functions - + - - - - - - - - - - - - - - -
    -