]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1656] 1.9.4 release: spelling check
authorAndrei Pavel <andrei@isc.org>
Thu, 21 Jan 2021 23:36:41 +0000 (01:36 +0200)
committerAndrei Pavel <andrei@isc.org>
Mon, 25 Jan 2021 11:52:09 +0000 (13:52 +0200)
235 files changed:
ChangeLog
Makefile.am
configure.ac
doc/devel/congestion-handling.dox
doc/examples/kea4/advanced.json
doc/examples/kea4/all-keys-netconf.json
doc/examples/kea4/all-keys.json
doc/examples/kea4/all-options.json
doc/examples/kea4/ha-load-balancing-primary.json
doc/examples/kea4/several-subnets.json
doc/examples/kea6/all-options.json
doc/examples/kea6/ha-hot-standby.json
doc/sphinx/arm/admin.rst
doc/sphinx/arm/hooks-ha.rst
doc/sphinx/uml/packet4.svg
doc/sphinx/uml/packet4.uml
doc/sphinx/uml/request4-lease.svg
doc/sphinx/uml/request4-lease.uml
doc/sphinx/uml/requestLease4.svg
doc/sphinx/uml/requestLease4.uml
doc/sphinx/uml/select4.svg
doc/sphinx/uml/select4.uml
hammer.py
src/bin/admin/tests/cql_tests.sh.in
src/bin/admin/tests/mysql_tests.sh.in
src/bin/admin/tests/pgsql_tests.sh.in
src/bin/agent/ca_response_creator.h
src/bin/agent/tests/ca_cfg_mgr_unittests.cc
src/bin/agent/tests/ca_command_mgr_unittests.cc
src/bin/agent/tests/parser_unittests.cc
src/bin/d2/d2_queue_mgr.h
src/bin/d2/tests/d2_command_unittest.cc
src/bin/dhcp4/ctrl_dhcp4_srv.cc
src/bin/dhcp4/ctrl_dhcp4_srv.h
src/bin/dhcp4/dhcp4_srv.h
src/bin/dhcp4/json_config_parser.cc
src/bin/dhcp4/tests/client_handler_unittest.cc
src/bin/dhcp4/tests/config_backend_unittest.cc
src/bin/dhcp4/tests/config_parser_unittest.cc
src/bin/dhcp4/tests/ctrl_dhcp4_srv_unittest.cc
src/bin/dhcp4/tests/dhcp4_srv_unittest.cc
src/bin/dhcp4/tests/dhcp4_test_utils.cc
src/bin/dhcp4/tests/kea_controller_unittest.cc
src/bin/dhcp4/tests/shared_network_unittest.cc
src/bin/dhcp4/tests/vendor_opts_unittest.cc
src/bin/dhcp6/ctrl_dhcp6_srv.cc
src/bin/dhcp6/ctrl_dhcp6_srv.h
src/bin/dhcp6/dhcp6_srv.h
src/bin/dhcp6/json_config_parser.cc
src/bin/dhcp6/tests/client_handler_unittest.cc
src/bin/dhcp6/tests/config_backend_unittest.cc
src/bin/dhcp6/tests/config_parser_unittest.cc
src/bin/dhcp6/tests/ctrl_dhcp6_srv_unittest.cc
src/bin/dhcp6/tests/dhcp6_message_test.h
src/bin/dhcp6/tests/dhcp6_srv_unittest.cc
src/bin/dhcp6/tests/hooks_unittest.cc
src/bin/dhcp6/tests/kea_controller_unittest.cc
src/bin/dhcp6/tests/shared_network_unittest.cc
src/bin/dhcp6/tests/tee_times_unittest.cc
src/bin/keactrl/keactrl.in
src/bin/keactrl/tests/keactrl_tests.sh.in
src/bin/netconf/netconf_config.h
src/bin/netconf/tests/parser_unittests.cc
src/bin/perfdhcp/abstract_scen.h
src/bin/perfdhcp/avalanche_scen.cc
src/bin/perfdhcp/avalanche_scen.h
src/bin/perfdhcp/command_options.h
src/bin/perfdhcp/receiver.cc
src/bin/perfdhcp/receiver.h
src/bin/perfdhcp/tests/avalanche_scen_unittest.cc
src/bin/perfdhcp/tests/test_control_unittest.cc
src/bin/shell/kea-shell.in
src/hooks/dhcp/flex_option/flex_option.h
src/hooks/dhcp/high_availability/communication_state.h
src/hooks/dhcp/high_availability/ha.dox
src/hooks/dhcp/high_availability/ha_callouts.cc
src/hooks/dhcp/high_availability/ha_config.cc
src/hooks/dhcp/high_availability/ha_config.h
src/hooks/dhcp/high_availability/ha_impl.h
src/hooks/dhcp/high_availability/ha_messages.mes
src/hooks/dhcp/high_availability/ha_service.cc
src/hooks/dhcp/high_availability/ha_service.h
src/hooks/dhcp/high_availability/lease_update_backlog.h
src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc
src/hooks/dhcp/high_availability/tests/ha_test.h
src/hooks/dhcp/lease_cmds/lease_cmds.cc
src/hooks/dhcp/lease_cmds/tests/lease_cmds_unittest.cc
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.cc
src/hooks/dhcp/mysql_cb/mysql_cb_impl.h
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc
src/hooks/dhcp/stat_cmds/stat_cmds.cc
src/hooks/dhcp/stat_cmds/tests/stat_cmds_unittest.cc
src/lib/asiolink/addr_utilities.cc
src/lib/asiolink/tests/addr_utilities_unittest.cc
src/lib/asiolink/udp_socket.h
src/lib/cc/base_stamped_element.h
src/lib/config/cmds_impl.h
src/lib/config/timeouts.h
src/lib/cql/cql_connection.cc
src/lib/cql/cql_exchange.h
src/lib/cql/testutils/cql_schema.cc
src/lib/database/db_exceptions.h
src/lib/database/db_messages.mes
src/lib/database/server_selector.h
src/lib/dhcp/classify.h
src/lib/dhcp/duid_factory.cc
src/lib/dhcp/iface_mgr.cc
src/lib/dhcp/iface_mgr.h
src/lib/dhcp/iface_mgr_linux.cc
src/lib/dhcp/libdhcp++.h
src/lib/dhcp/option.h
src/lib/dhcp/option6_auth.cc
src/lib/dhcp/option6_auth.h
src/lib/dhcp/packet_queue_mgr.h
src/lib/dhcp/packet_queue_ring.h
src/lib/dhcp/pkt_filter6.h
src/lib/dhcp/std_option_defs.h
src/lib/dhcp/tests/iface_mgr_unittest.cc
src/lib/dhcp/tests/libdhcp++_unittest.cc
src/lib/dhcp/tests/option_string_unittest.cc
src/lib/dhcp/tests/packet_queue4_unittest.cc
src/lib/dhcp/tests/packet_queue6_unittest.cc
src/lib/dhcp/tests/packet_queue_mgr4_unittest.cc
src/lib/dhcp/tests/packet_queue_mgr6_unittest.cc
src/lib/dhcp/tests/pkt4_unittest.cc
src/lib/dhcp/tests/pkt_captures.h
src/lib/dhcp_ddns/ncr_msg.h
src/lib/dhcpsrv/alloc_engine.h
src/lib/dhcpsrv/benchmarks/parameters.h
src/lib/dhcpsrv/callout_handle_store.h
src/lib/dhcpsrv/cfg_iface.cc
src/lib/dhcpsrv/config_backend_dhcp6.h
src/lib/dhcpsrv/cql_host_data_source.cc
src/lib/dhcpsrv/cql_host_data_source.h
src/lib/dhcpsrv/cql_lease_mgr.cc
src/lib/dhcpsrv/csv_lease_file4.h
src/lib/dhcpsrv/csv_lease_file6.h
src/lib/dhcpsrv/d2_client_mgr.h
src/lib/dhcpsrv/free_lease_queue.cc
src/lib/dhcpsrv/free_lease_queue.h
src/lib/dhcpsrv/host.h
src/lib/dhcpsrv/host_mgr.h
src/lib/dhcpsrv/ip_range_permutation.h
src/lib/dhcpsrv/lease.h
src/lib/dhcpsrv/lease_mgr.h
src/lib/dhcpsrv/mysql_host_data_source.cc
src/lib/dhcpsrv/mysql_lease_mgr.cc
src/lib/dhcpsrv/mysql_lease_mgr.h
src/lib/dhcpsrv/network.h
src/lib/dhcpsrv/parsers/base_network_parser.cc
src/lib/dhcpsrv/parsers/client_class_def_parser.cc
src/lib/dhcpsrv/parsers/option_data_parser.h
src/lib/dhcpsrv/pgsql_host_data_source.cc
src/lib/dhcpsrv/pgsql_lease_mgr.cc
src/lib/dhcpsrv/pgsql_lease_mgr.h
src/lib/dhcpsrv/srv_config.h
src/lib/dhcpsrv/tests/alloc_engine4_unittest.cc
src/lib/dhcpsrv/tests/alloc_engine6_unittest.cc
src/lib/dhcpsrv/tests/cfg_iface_unittest.cc
src/lib/dhcpsrv/tests/cfg_subnets4_unittest.cc
src/lib/dhcpsrv/tests/cfg_subnets6_unittest.cc
src/lib/dhcpsrv/tests/cfgmgr_unittest.cc
src/lib/dhcpsrv/tests/client_class_def_parser_unittest.cc
src/lib/dhcpsrv/tests/cql_host_data_source_unittest.cc
src/lib/dhcpsrv/tests/cql_lease_mgr_unittest.cc
src/lib/dhcpsrv/tests/d2_client_unittest.cc
src/lib/dhcpsrv/tests/d2_udp_unittest.cc
src/lib/dhcpsrv/tests/dhcp_queue_control_parser_unittest.cc
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h
src/lib/dhcpsrv/tests/host_reservation_parser_unittest.cc
src/lib/dhcpsrv/tests/host_reservations_list_parser_unittest.cc
src/lib/dhcpsrv/tests/host_unittest.cc
src/lib/dhcpsrv/tests/lease_mgr_unittest.cc
src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc
src/lib/dhcpsrv/tests/shared_network_unittest.cc
src/lib/dhcpsrv/testutils/generic_backend_unittest.h
src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.h
src/lib/dhcpsrv/testutils/memory_host_data_source.cc
src/lib/dhcpsrv/testutils/test_config_backend_dhcp4.h
src/lib/dhcpsrv/testutils/test_config_backend_dhcp6.h
src/lib/dns/gen-rdatacode.py.in
src/lib/dns/master_lexer.cc
src/lib/dns/rdata/generic/detail/txt_like.h
src/lib/dns/tests/rdata_naptr_unittest.cc
src/lib/eval/tests/context_unittest.cc
src/lib/eval/tests/dependency_unittest.cc
src/lib/eval/tests/evaluate_unittest.cc
src/lib/eval/tests/token_unittest.cc
src/lib/eval/token.h
src/lib/hooks/callout_manager.h
src/lib/http/client.cc
src/lib/http/client.h
src/lib/http/connection.cc
src/lib/http/connection.h
src/lib/http/listener_impl.h
src/lib/http/request_parser.h
src/lib/http/response_parser.h
src/lib/http/tests/connection_pool_unittests.cc
src/lib/http/tests/server_client_unittests.cc
src/lib/log/logger_manager.cc
src/lib/mysql/mysql_binding.h
src/lib/mysql/testutils/mysql_schema.cc
src/lib/process/config_ctl_info.cc
src/lib/process/d_controller.cc
src/lib/process/daemon.h
src/lib/process/tests/config_ctl_info_unittests.cc
src/lib/process/tests/log_parser_unittests.cc
src/lib/process/tests/logging_info_unittests.cc
src/lib/process/testutils/d_test_stubs.h
src/lib/stats/tests/observation_unittest.cc
src/lib/testutils/sandbox.h
src/lib/testutils/threaded_test.h
src/lib/testutils/xml_reporting_test_lib.sh.in
src/lib/util/optional.h
src/lib/util/tests/doubles_unittest.cc
src/lib/util/tests/stopwatch_unittest.cc
src/lib/util/tests/unlock_guard_unittests.cc
src/lib/yang/adaptor_option.h
src/lib/yang/testutils/translator_test.cc
src/lib/yang/translator.cc
src/lib/yang/translator_class.h
src/lib/yang/translator_database.h
src/lib/yang/translator_logger.h
src/lib/yang/translator_subnet.h
src/share/database/scripts/cql/upgrade_2.0_to_3.0.sh.in
src/share/database/scripts/mysql/dhcpdb_create.mysql
src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh.in
src/share/database/scripts/pgsql/upgrade_6.1_to_6.2.sh.in
tools/add-config-h.sh
tools/print-generated-files.sh

index 03d82dc43df25650a46fb6cae0f2f7c65e2ea1e1..5a90f430175135947c96d9c528d6e1935b0e2a44 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1674,7 +1674,7 @@ Kea 1.6.0-beta2 (development) released on July 24, 2019
 
 1593.  [bug]           marcin
        Fixed a bug in the Kea Control Agent which caused a sporadic crash
-       after a tiemout while sending the HTTP response to the controlling
+       after a timeout while sending the HTTP response to the controlling
        client.
        (Gitlab #491,!363, git ff204dfe4dd80702f8bb2edf83f8486e019a7e04)
 
index 1a047e4bcdf5a6f7fd40228839782b9f5b81f662..02dab72214b4fc04e157808eff773c382e68f903 100644 (file)
@@ -146,7 +146,7 @@ cppcheck:
                --template '{file}:{line}: check_fail: {message} ({severity},{id})' \
                src
 
-# this is a shortcut that builds only documentation dependecies and documentation itself
+# this is a shortcut that builds only documentation dependencies and documentation itself
 docs:
        $(MAKE) -C doc/sphinx
 
index 428c43cd5071c517dd5afde99ee29a6a6e702d4a..64a9065ed5c5702d5568ee73e6d2ecb855a52339 100755 (executable)
@@ -579,7 +579,7 @@ AC_TRY_COMPILE([
         AC_MSG_RESULT(no))
 
 usable_regex=
-AC_MSG_CHECKING(for usuable C++11 regex)
+AC_MSG_CHECKING(for usable C++11 regex)
 AC_TRY_RUN([
 #include <regex>
 #include <iostream>
@@ -1036,7 +1036,7 @@ LIBS=$LIBS_SAVED
 # Older log4cplus versions (1.2.0) don't have the initializer.h header that
 # would allow explicit initialization. Newer versions (2.0.4 for sure, possibly
 # older as well) have it and it's recommended to use it. We detect whether
-# it's present or not and do explicit initalization if possible.
+# it's present or not and do explicit initialization if possible.
 CPPFLAGS_SAVED=$CPPFLAGS
 CPPFLAGS="$LOG4CPLUS_INCLUDES $CPPFLAGS"
 LIBS_SAVED="$LIBS"
index c964edb487a88f97848f89170b81f1091f2b1801..92938305146787424e03a889e70cc2b34c85dac2 100644 (file)
@@ -346,7 +346,7 @@ public:
 };
 @endcode
 
-DHCPv6 Factory implemenation:
+DHCPv6 Factory implementation:
 
 @code
 const std::string QUEUE_TYPE = "Your-Q6";
index 2fa0da8ce4cf92e2272ec0659fa61857b99cc82d..4cd8d4320f5e8e5e108ae9048e2f0d71cf09858d 100644 (file)
     // By default, Kea ignores requests by clients for unknown IP addresses,
     // because other non-cooperating DHCP servers could reside on the same
     // network (RFC 2131). This parameter is defined globally, but can be
-    // overriden on a subnet level
+    // overridden on a subnet level
     "authoritative": false,
 
     // The following list defines subnets. Each subnet consists of at
index bc2d743ed7214373fc8b7a1b197030f4a83e68c5..48d38449ba8ae7f1be047bca311148eeb19fd758 100644 (file)
         "match-client-id": false,
 
         // Global value of the next server address set in 'siaddr' field.
-        // The global value may be overriden in lower level configuration
+        // The global value may be overridden in lower level configuration
         // scopes.
         "next-server": "192.0.2.123",
 
index 4d5ec907274a93828465fb46203c2690cdcfb8d6..92595caab342afab6dcee334129819e75276a491 100644 (file)
         "match-client-id": false,
 
         // Global value of the next server address set in 'siaddr' field.
-        // The global value may be overriden in lower level configuration
+        // The global value may be overridden in lower level configuration
         // scopes.
         "next-server": "192.0.2.123",
 
index 724e64f207a38d92c1e956071586a3fb01225285..e0ec867b8561a6f818610732a653eb9eaf54ae39 100644 (file)
       },
 
       // A single encapsulating space can be used. An option containing any
-      // option from said space will now be unpacked succesfully by Kea.
+      // option from said space will now be unpacked successfully by Kea.
       {
         "array": false,
         "code": 232,
index 24a9faade58693228d568a82a12b2ffdbe3e33ac..88435a22f24d166eea57f0323c05fa5ae929b895 100644 (file)
@@ -1,6 +1,6 @@
 // This is an example configuration of the Kea DHCPv4 server. It uses High
 // Availability hooks library and Lease Commands hooks library to enable
-// High Availibility function for the DHCP server. Note that almost exactly
+// High Availability function for the DHCP server. Note that almost exactly
 // the same configuration must be used on the second server (partner).
 // The only difference is that "this-server-name" must be set to "server2"
 // on this other server. Also, the interface configuration depends on the
index b291c5975e2955b9aaeb7bbef3b3c5528baa956c..1151daff196cff230ca070b67e661bbe8b0dd1f6 100644 (file)
@@ -43,7 +43,7 @@
   // By default, Kea ignores requests by clients for unknown IP addresses,
   // because other non-cooperating DHCP servers could reside on the same
   // network (RFC 2131). This parameter is defined globally, but can be
-  // overriden on a subnet level
+  // overridden on a subnet level
   "authoritative": false,
 
 // The following list defines subnets. Each subnet consists of at
index fbaf5979d45f9bdd877a9a0fc1ae73c46f3c88f5..be2d17e8c1678b2b86aaf5841c898973ac6b5931 100644 (file)
       },
 
       // A single encapsulating space can be used. An option containing any
-      // option from said space will now be unpacked succesfully by Kea.
+      // option from said space will now be unpacked successfully by Kea.
       {
         "array": false,
         "code": 12321,
index e9aff1f5658ce183e00dca675ed6c0b1eea4585a..a0eb6a167793a6eb204568f503074f3c54e2418c 100644 (file)
@@ -1,6 +1,6 @@
 // This is an example configuration of the Kea DHCPv6 server. It uses High
 // Availability hooks library and Lease Commands hooks library to enable
-// High Availibility function for the DHCP server. Note that almost exactly
+// High Availability function for the DHCP server. Note that almost exactly
 // the same configuration must be used on the second server (partner).
 // The only difference is that "this-server-name" must be set to "server1"
 // on this other server. Also, the interface configuration depends on the
index f782f7d1f77e5f5fa3178a7b6f5baf6c01ab5299..d8a0d10c9dd34f63695d2c825da845ecb65fb680 100644 (file)
@@ -569,7 +569,7 @@ To create the database:
 
    ::
 
-      cqslh -k keyspace-name -f path-to-kea/share/kea/scripts/cql/dhcpdb_create.cql
+      cqlsh -k keyspace-name -f path-to-kea/share/kea/scripts/cql/dhcpdb_create.cql
 
    (path-to-kea is the location where Kea is installed.)
 
index 691d51846af88a01208e4aa41feb7b3046d6d4ca..7aaae223b497712b06bd3781ccd0dfeca4049126 100644 (file)
@@ -205,7 +205,7 @@ The following is the list of all possible server states:
 -  ``backup`` - normal operation of the backup server. In this state it
    receives lease updates from the active servers.
 
--  ``comunication-recovery`` - an active server running in load-balancing
+-  ``communication-recovery`` - an active server running in load-balancing
    mode may transition to this state when it experiences communication
    issues with a partner server over the control channel. This is an
    intermediate state between the ``load-balancing`` and ``partner-down``
@@ -1917,7 +1917,7 @@ state to a previous state. See the :ref:`ha-maintenance` for the details.
 The ha-reset Command
 --------------------
 
-This command causes the server to reset its High Availibility state machine
+This command causes the server to reset its High Availability state machine
 by transitioning it to the waiting state. A partner in the
 ``communication-recovery`` state may send this command to cause the server
 to synchronize its lease database. The database synchronization is required
index f6710c945b4b408aa63c56875ed154625fc16761..d488c704da059760b2a401b41fd77f63f30bcb70 100644 (file)
@@ -12,7 +12,7 @@ entity unpack--><rect fill="#FEFECE" filter="url(#f1u1c8b25aigi3)" height="36.48
 entity classify--><rect fill="#FEFECE" filter="url(#f1u1c8b25aigi3)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="639.5" y="448.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="95" x="649.5" y="471.7344">Classify query</text><!--MD5=[92aee3b8b080bbd52e01e7cb395370c4]
 entity pkt4_receive--><rect fill="#FEFECE" filter="url(#f1u1c8b25aigi3)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="454.5" y="545.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="139" x="464.5" y="568.7344">Callout pkt4_receive</text><path d="M648.5,550.6992 L648.5,559.1992 L613.59,563.1992 L648.5,567.1992 L648.5,576.0098 A0,0 0 0 0 648.5,576.0098 L701.5,576.0098 A0,0 0 0 0 701.5,576.0098 L701.5,560.6992 L691.5,550.6992 L648.5,550.6992 A0,0 0 0 0 648.5,550.6992 " fill="#FBFB77" filter="url(#f1u1c8b25aigi3)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M691.5,550.6992 L691.5,560.6992 L701.5,560.6992 L691.5,550.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="654.5" y="568.2676">hook</text><!--MD5=[7aeeef4718a003ce2e7ad9bcbdf71ad9]
 entity drop_class--><rect fill="#FEFECE" filter="url(#f1u1c8b25aigi3)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="141" x="243.5" y="658.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="121" x="253.5" y="681.7344">Check DROP class</text><!--MD5=[a52533196b9ad0f42d77bd2c5acf5304]
-entity same_client--><rect fill="#FEFECE" filter="url(#f1u1c8b25aigi3)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="333" x="147.5" y="755.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="313" x="157.5" y="778.7344">Avoid same client race in multi-threade mode</text><path d="M587.5,760.6992 L587.5,769.1992 L480.63,773.1992 L587.5,777.1992 L587.5,786.0098 A0,0 0 0 0 587.5,786.0098 L790.5,786.0098 A0,0 0 0 0 790.5,786.0098 L790.5,770.6992 L780.5,760.6992 L587.5,760.6992 A0,0 0 0 0 587.5,760.6992 " fill="#FBFB77" filter="url(#f1u1c8b25aigi3)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M780.5,760.6992 L780.5,770.6992 L790.5,770.6992 L780.5,760.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="182" x="593.5" y="778.2676">postpone processing or drop</text><!--MD5=[a8af8e48f2cc558a0fee70431885f908]
+entity same_client--><rect fill="#FEFECE" filter="url(#f1u1c8b25aigi3)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="333" x="147.5" y="755.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="313" x="157.5" y="778.7344">Avoid same client race in multi-threaded mode</text><path d="M587.5,760.6992 L587.5,769.1992 L480.63,773.1992 L587.5,777.1992 L587.5,786.0098 A0,0 0 0 0 587.5,786.0098 L790.5,786.0098 A0,0 0 0 0 790.5,786.0098 L790.5,770.6992 L780.5,760.6992 L587.5,760.6992 A0,0 0 0 0 587.5,760.6992 " fill="#FBFB77" filter="url(#f1u1c8b25aigi3)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M780.5,760.6992 L780.5,770.6992 L790.5,770.6992 L780.5,760.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="182" x="593.5" y="778.2676">postpone processing or drop</text><!--MD5=[a8af8e48f2cc558a0fee70431885f908]
 entity lease4_committed--><rect fill="#FEFECE" filter="url(#f1u1c8b25aigi3)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="197" x="1045.5" y="1098.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="177" x="1055.5" y="1121.7344">Callout lease4_committed</text><path d="M1277.5,1103.6992 L1277.5,1112.1992 L1242.75,1116.1992 L1277.5,1120.1992 L1277.5,1129.0098 A0,0 0 0 0 1277.5,1129.0098 L1330.5,1129.0098 A0,0 0 0 0 1330.5,1129.0098 L1330.5,1113.6992 L1320.5,1103.6992 L1277.5,1103.6992 A0,0 0 0 0 1277.5,1103.6992 " fill="#FBFB77" filter="url(#f1u1c8b25aigi3)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1320.5,1103.6992 L1320.5,1113.6992 L1330.5,1113.6992 L1320.5,1103.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1283.5" y="1121.2676">hook</text><!--MD5=[8e18f13991ca58e5a79e0b81ed56b9db]
 entity park--><rect fill="#FEFECE" filter="url(#f1u1c8b25aigi3)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="50" x="1119" y="1211.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="1129" y="1234.7344">Park</text><!--MD5=[145fde1089ff11319f35031b66a8b2bf]
 entity pkt4_send--><rect fill="#FEFECE" filter="url(#f1u1c8b25aigi3)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="943" y="1324.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="124" x="953" y="1347.7344">Callout pkt4_send</text><!--MD5=[62d5b04920c444814fafa1dbf06b35cd]
@@ -78,7 +78,7 @@ note right : hook
 
 agent "Check DROP class" as drop_class
 
-agent "Avoid same client race in multi-threade mode" as same_client
+agent "Avoid same client race in multi-threaded mode" as same_client
 note right : postpone processing or drop
 
 rectangle "Process Query on its Message Type" as process {
index bb9581933b1daaa6b0f04131c839b8475e76f2f7..ad73c430e3a4d97a41d9f989c710d6d9b413a13d 100644 (file)
@@ -19,7 +19,7 @@ note right : hook
 
 agent "Check DROP class" as drop_class
 
-agent "Avoid same client race in multi-threade mode" as same_client
+agent "Avoid same client race in multi-threaded mode" as same_client
 note right : postpone processing or drop
 
 rectangle "Process Query on its Message Type" as process {
index 8cc180e7c845076ea9b03e494849183ffbbd6792..28b47de99971234d0f33466030119c41d5373c5a 100644 (file)
@@ -32,7 +32,7 @@ entity return--><rect fill="#FEFECE" filter="url(#f5oag86dlpmno)" height="36.488
 link findClientLease to addressReserved--><path d="M1490.37,64.2992 C1540.43,84.5092 1623.49,118.0392 1675.64,139.0792 " fill="none" id="findClientLease-&gt;addressReserved" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1680.59,141.0792,1673.7456,133.9973,1675.9546,139.205,1670.7468,141.414,1680.59,141.0792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="178" x="1602" y="107.7676">has requested address (hint)</text><!--MD5=[3ed98210a29f20764b03cb44cfd671eb]
 link findClientLease to hasAddressReservation--><path d="M1405.79,64.2992 C1355.91,84.5092 1273.15,118.0392 1221.19,139.0792 " fill="none" id="findClientLease-&gt;hasAddressReservation" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1216.26,141.0792,1226.1032,141.414,1220.8954,139.205,1223.1044,133.9973,1216.26,141.0792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="172" x="1328" y="107.7676">no requested address (hint)</text><!--MD5=[0f8169b991248aaf1e86d3e126ee7fc7]
 link addressReserved to check_hint--><path d="M1706.14,177.5692 C1690.855,193.3142 1667.81,217.0567 1648.3475,237.1092 C1645.9147,239.6158 1643.5379,242.0647 1641.2391,244.4331 C1640.0898,245.6173 1638.96,246.7814 1637.8525,247.9225 " fill="none" id="addressReserved-&gt;check_hint" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1637.8525,247.9225,1646.991,244.2501,1641.3348,244.3346,1641.2503,238.6783,1637.8525,247.9225" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="162" x="1675" y="220.7676">no conflicting reservation</text><!--MD5=[afeb447a9f6636bece5d73dd5d09cefa]
-link addressReserved to no_lease--><path d="M1831.12,176.2492 C1928.35,193.8192 2056,226.1192 2056,274.5592 C2056,274.5592 2056,274.5592 2056,2110.8592 C2056,2245.5392 1894.72,2159.4592 1764,2191.8592 C1729.14,2200.4992 1639.9,2219.7792 1576.62,2233.2992 " fill="none" id="addressReserved-&gt;no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1571.73,2234.3392,1581.3655,2236.3781,1576.6205,2233.2984,1579.7002,2228.5534,1571.73,2234.3392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="225" x="2057" y="1213.0676">revervation owned by another client</text><!--MD5=[961d5a31619e7d456669487d013a1899]
+link addressReserved to no_lease--><path d="M1831.12,176.2492 C1928.35,193.8192 2056,226.1192 2056,274.5592 C2056,274.5592 2056,274.5592 2056,2110.8592 C2056,2245.5392 1894.72,2159.4592 1764,2191.8592 C1729.14,2200.4992 1639.9,2219.7792 1576.62,2233.2992 " fill="none" id="addressReserved-&gt;no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1571.73,2234.3392,1581.3655,2236.3781,1576.6205,2233.2984,1579.7002,2228.5534,1571.73,2234.3392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="225" x="2057" y="1213.0676">reservation owned by another client</text><!--MD5=[961d5a31619e7d456669487d013a1899]
 link hasAddressReservation to update_hint--><path d="M1236.29,159.1992 C1276.08,159.1992 1328.68,159.1992 1374.83,159.1992 " fill="none" id="hasAddressReservation-&gt;update_hint" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1379.85,159.1992,1370.85,155.1992,1374.85,159.1992,1370.85,163.1992,1379.85,159.1992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="107" x="1254.5" y="152.7676">has a reservation</text><!--MD5=[05586e2e35799af932c772159165fde5]
 link update_hint to check_hint--><path d="M1480.56,177.2992 C1481.87,191.3892 1485.77,211.1092 1497,224.1992 C1501.4688,229.4105 1506.5789,234.1017 1512.105,238.322 C1514.868,240.4322 1517.735,242.4246 1520.6778,244.3054 C1522.1492,245.2458 1523.6395,246.1583 1525.1453,247.0437 C1525.5217,247.2651 1525.8991,247.4847 1526.2774,247.7027 C1526.4666,247.8117 1526.656,247.9202 1526.8456,248.0284 " fill="none" id="update_hint-&gt;check_hint" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1526.8456,248.0284,1521.0095,240.0949,1522.5024,245.5512,1517.046,247.044,1526.8456,248.0284" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="157" x="1498" y="220.7676">request reserved address</text><!--MD5=[f5740591afdec92972eb12364704fbda]
 link hasAddressReservation to check_done--><path d="M1111.78,160.2292 C968.42,161.9792 627,176.4492 627,274.5592 C627,274.5592 627,274.5592 627,585.9192 C627,614.8842 626.03,647.4017 625.045,672.958 C624.7987,679.347 624.5516,685.301 624.3184,690.6556 C624.3038,690.9903 624.2893,691.3226 624.2748,691.6526 " fill="none" id="hasAddressReservation-&gt;check_done" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="624.2748,691.6526,628.6651,682.8364,624.4938,686.6574,620.6728,682.486,624.2748,691.6526" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="90" x="628" y="418.4876">no reservation</text><!--MD5=[05b1cca34cf1798b13fb9b06f5ca5f3a]
@@ -148,7 +148,7 @@ note right : exit point
 findClientLease - -> addressReserved : has requested address (hint)
 findClientLease - -> hasAddressReservation : no requested address (hint)
 addressReserved - -> check_hint : no conflicting reservation
-addressReserved - -> no_lease : revervation owned by another client
+addressReserved - -> no_lease : reservation owned by another client
 hasAddressReservation -> update_hint : has a reservation
 update_hint - -> check_hint : request reserved address
 hasAddressReservation - -> check_done : no reservation
index 8ffed9311d883c5371489fcd7d25e95a13577f47..54f0c81209e00f0d854ad45b289654a97512b16e 100644 (file)
@@ -72,7 +72,7 @@ note right : exit point
 findClientLease --> addressReserved : has requested address (hint)
 findClientLease --> hasAddressReservation : no requested address (hint)
 addressReserved --> check_hint : no conflicting reservation
-addressReserved --> no_lease : revervation owned by another client
+addressReserved --> no_lease : reservation owned by another client
 hasAddressReservation -> update_hint : has a reservation
 update_hint --> check_hint : request reserved address
 hasAddressReservation --> check_done : no reservation
index ef1a81d684203215bf3511ec2bbe51e0850e4b22..800e77d6eb32753d5e064a4372aa7f24918a332a 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="2560px" preserveAspectRatio="none" style="width:1579px;height:2560px;" version="1.1" viewBox="0 0 1579 2560" width="1579px" zoomAndPan="magnify"><defs><filter height="300%" id="f1aicqcofdeklm" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="316" x="630.5" y="27.4023">requestLease4 algorithm (Kea 1.8.0)</text><ellipse cx="631.3125" cy="41.1992" fill="#000000" filter="url(#f1aicqcofdeklm)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="557.3125" y="71.1992"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="128" x="567.3125" y="92.8008">get lease for the client</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="584.8125,125.332,677.8125,125.332,689.8125,137.332,677.8125,149.332,584.8125,149.332,572.8125,137.332,584.8125,125.332" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="584.8125" y="141.4893">reserved address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="554.8125" y="135.0117">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="689.8125" y="135.0117">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="229,159.332,329,159.332,341,171.332,329,183.332,229,183.332,217,171.332,229,159.332" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="100" x="229" y="175.4893">requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="203" y="169.0117">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="341" y="169.0117">yes</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="250" x="11" y="193.332"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="230" x="21" y="214.9336">requested address = reserved address</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="368.5" y="241.8096"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="378.5" y="263.4111">return no lease</text><ellipse cx="422" cy="321.9424" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="422" cy="321.9424" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="293,193.332,551,193.332,563,205.332,551,217.332,293,217.332,281,205.332,293,193.332" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="426" y="227.9668">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="293" y="209.4893">requested address is reserved for another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="563" y="203.0117">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="279,363.4199,291,375.4199,279,387.4199,267,375.4199,279,363.4199" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="225.5" y="519.375"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="235.5" y="540.9766">return no lease</text><ellipse cx="279" cy="599.5078" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="279" cy="599.5078" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="186.5,470.8975,371.5,470.8975,383.5,482.8975,371.5,494.8975,186.5,494.8975,174.5,482.8975,186.5,470.8975" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="505.5322">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="186.5" y="487.0547">active and owned by another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="383.5" y="480.5771">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="204.5,422.4199,353.5,422.4199,365.5,434.4199,353.5,446.4199,204.5,446.4199,192.5,434.4199,204.5,422.4199" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="457.0547">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="204.5" y="438.5771">lease for requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="365.5" y="432.0996">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="279,665.4629,291,677.4629,279,689.4629,267,677.4629,279,665.4629" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="225.5" y="869.8955"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="235.5" y="891.4971">return no lease</text><ellipse cx="279" cy="950.0283" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="279" cy="950.0283" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="263.5,821.418,294.5,821.418,306.5,833.418,294.5,845.418,263.5,845.418,251.5,833.418,263.5,821.418" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="856.0527">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="31" x="263.5" y="837.5752">active</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="306.5" y="831.0977">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="204.5,772.9404,353.5,772.9404,365.5,784.9404,353.5,796.9404,204.5,796.9404,192.5,784.9404,204.5,772.9404" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="807.5752">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="204.5" y="789.0977">lease for requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="365.5" y="782.6201">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="279,1015.9834,291,1027.9834,279,1039.9834,267,1027.9834,279,1015.9834" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="225.5" y="1123.4609"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="235.5" y="1145.0625">return no lease</text><ellipse cx="279" cy="1197.6045" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="279" cy="1197.6045" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="187.5,1074.9834,370.5,1074.9834,382.5,1086.9834,370.5,1098.9834,187.5,1098.9834,175.5,1086.9834,187.5,1074.9834" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="283" y="1109.6182">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="187.5" y="1091.1406">requested address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="382.5" y="1084.6631">yes</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="170.5,724.4629,387.5,724.4629,399.5,736.4629,387.5,748.4629,170.5,748.4629,158.5,736.4629,170.5,724.4629" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="283" y="759.0977">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="170.5" y="740.6201">requested address == reserved address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="399.5" y="734.1426">yes</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="279,1259.082,291,1271.082,279,1283.082,267,1271.082,279,1259.082" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="933.625,159.332,1033.625,159.332,1045.625,171.332,1033.625,183.332,933.625,183.332,921.625,171.332,933.625,159.332" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="100" x="933.625" y="175.4893">requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="903.625" y="169.0117">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1045.625" y="169.0117">no</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="702.5" y="241.8096"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="712.5" y="263.4111">return no lease</text><ellipse cx="756" cy="321.9424" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="756" cy="321.9424" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="627,193.332,885,193.332,897,205.332,885,217.332,627,217.332,615,205.332,627,193.332" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="760" y="227.9668">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="627" y="209.4893">requested address is reserved for another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="897" y="203.0117">no</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="702.5" y="489.375"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="712.5" y="510.9766">return no lease</text><ellipse cx="756" cy="569.5078" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="756" cy="569.5078" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="663.5,440.8975,848.5,440.8975,860.5,452.8975,848.5,464.8975,663.5,464.8975,651.5,452.8975,663.5,440.8975" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="760" y="475.5322">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="663.5" y="457.0547">active and owned by another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="860.5" y="450.5771">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="681.5,392.4199,830.5,392.4199,842.5,404.4199,830.5,416.4199,681.5,416.4199,669.5,404.4199,681.5,392.4199" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="760" y="427.0547">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="681.5" y="408.5771">lease for requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="842.5" y="402.0996">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="756,635.4629,768,647.4629,756,659.4629,744,647.4629,756,635.4629" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="702.5" y="742.9404"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="712.5" y="764.542">return no lease</text><ellipse cx="756" cy="823.0732" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="756" cy="823.0732" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="664.5,694.4629,847.5,694.4629,859.5,706.4629,847.5,718.4629,664.5,718.4629,652.5,706.4629,664.5,694.4629" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="760" y="729.0977">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="664.5" y="710.6201">requested address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="859.5" y="704.1426">yes</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="1133.25" y="289.8096"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="1143.25" y="311.4111">pick candidate address</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1160.75,449.8975,1261.75,449.8975,1273.75,461.8975,1261.75,473.8975,1160.75,473.8975,1148.75,461.8975,1160.75,449.8975" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="1160.75" y="466.0547">lease for candidate</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1134.75" y="459.5771">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1273.75" y="459.5771">yes</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="182" x="993" y="483.8975"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="162" x="1003" y="505.499">create and return new lease</text><ellipse cx="1084" cy="564.0303" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1084" cy="564.0303" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="1266" y="532.375"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="1276" y="553.9766">reclaim expired lease</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="1256.5" y="601.5078"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="1266.5" y="623.1094">update lease information</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="1269.5" y="670.6406"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1279.5" y="692.2422">callout lease4_select</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1302,739.7734,1375,739.7734,1387,751.7734,1375,763.7734,1302,763.7734,1290,751.7734,1302,739.7734" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="1302" y="755.9307">callout return</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="1268" y="749.4531">SKIP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="1387" y="749.4531">CONTINUE</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="1215" y="773.7734"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="1225" y="795.375">return no lease</text><ellipse cx="1268.5" cy="853.9063" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1268.5" cy="853.9063" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="1361" y="773.7734"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="1371" y="795.375">update lease</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="133" x="1342" y="842.9063"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="113" x="1352" y="864.5078">return reused lease</text><ellipse cx="1408.5" cy="923.0391" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1408.5" cy="923.0391" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1318,483.8975,1359,483.8975,1371,495.8975,1359,507.8975,1318,507.8975,1306,495.8975,1318,483.8975" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1342.5" y="518.5322">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="41" x="1318" y="500.0547">expired</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1371" y="493.5771">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1115.25,401.4199,1307.25,401.4199,1319.25,413.4199,1307.25,425.4199,1115.25,425.4199,1103.25,413.4199,1115.25,401.4199" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1215.25" y="436.0547">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="1115.25" y="417.5771">candidate is used by another thread</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1319.25" y="411.0996">yes</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1211.25,1000.9941,1223.25,1012.9941,1211.25,1024.9941,1199.25,1012.9941,1211.25,1000.9941" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1106.25,352.9424,1316.25,352.9424,1328.25,364.9424,1316.25,376.9424,1106.25,376.9424,1094.25,364.9424,1106.25,352.9424" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1215.25" y="387.5771">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="1106.25" y="369.0996">candidate is reserved for another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1328.25" y="362.6221">yes</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1211.25,1049.4717,1223.25,1061.4717,1211.25,1073.4717,1199.25,1061.4717,1211.25,1049.4717" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1129.75,241.8096,1292.75,241.8096,1304.75,253.8096,1292.75,265.8096,1129.75,265.8096,1117.75,253.8096,1129.75,241.8096" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="163" x="1129.75" y="257.9668">iterate over pools and subnect</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="1145.25" y="1132.4717"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1155.25" y="1154.0732">maximum attempts</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="1157.75" y="1195.6152"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="1167.75" y="1217.2168">return no lease</text><ellipse cx="1211.25" cy="1271.2705" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1211.25" cy="1271.2705" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1090.75,193.332,1331.75,193.332,1343.75,205.332,1331.75,217.332,1090.75,217.332,1078.75,205.332,1090.75,193.332" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1215.25" y="227.9668">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="241" x="1090.75" y="209.4893">client lease and lease address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1343.75" y="203.0117">yes</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="983.625,1311.082,995.625,1323.082,983.625,1335.082,971.625,1323.082,983.625,1311.082" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="631.3125,1341.082,643.3125,1353.082,631.3125,1365.082,619.3125,1353.082,631.3125,1341.082" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="549.3125" y="1530.5146"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="559.3125" y="1552.1162">update lease information</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="558.8125" y="1633.125"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="568.8125" y="1654.7266">reclaim expired lease</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="585.8125,1584.6475,676.8125,1584.6475,688.8125,1596.6475,676.8125,1608.6475,585.8125,1608.6475,573.8125,1596.6475,585.8125,1584.6475" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="635.3125" y="1619.2822">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="585.8125" y="1600.8047">old lease expired</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="688.8125" y="1594.3271">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="631.3125,1687.2578,643.3125,1699.2578,631.3125,1711.2578,619.3125,1699.2578,631.3125,1687.2578" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="561.3125" y="1731.2578"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="571.3125" y="1752.8594">callout lease4_renew</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="594.8125,1785.3906,667.8125,1785.3906,679.8125,1797.3906,667.8125,1809.3906,594.8125,1809.3906,582.8125,1797.3906,594.8125,1785.3906" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="594.8125" y="1801.5479">callout return</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="560.8125" y="1795.0703">SKIP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="679.8125" y="1795.0703">CONTINUE</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="468.3125" y="1819.3906"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="478.3125" y="1840.9922">return old client lease</text><ellipse cx="540.8125" cy="1884.5234" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="540.8125" cy="1884.5234" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="674.3125" y="1819.3906"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="684.3125" y="1840.9922">update lease</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="633.3125" y="1873.5234"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="157" x="643.3125" y="1895.125">return renewed client lease</text><ellipse cx="721.8125" cy="1938.6563" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="721.8125" cy="1938.6563" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="470.8125,1482.0371,791.8125,1482.0371,803.8125,1494.0371,791.8125,1506.0371,470.8125,1506.0371,458.8125,1494.0371,470.8125,1482.0371" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="635.3125" y="1516.6719">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="321" x="470.8125" y="1498.1943">has reserved address or client lease address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="803.8125" y="1491.7168">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="449.3125,1433.5596,813.3125,1433.5596,825.3125,1445.5596,813.3125,1457.5596,449.3125,1457.5596,437.3125,1445.5596,449.3125,1433.5596" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="635.3125" y="1468.1943">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="364" x="449.3125" y="1449.7168">no requested address or requested address == client lease address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="825.3125" y="1443.2393">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="631.3125,1991.6563,643.3125,2003.6563,631.3125,2015.6563,619.3125,2003.6563,631.3125,1991.6563" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="601.8125,1385.082,660.8125,1385.082,672.8125,1397.082,660.8125,1409.082,601.8125,1409.082,589.8125,1397.082,601.8125,1385.082" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="635.3125" y="1419.7168">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="59" x="601.8125" y="1401.2393">client lease</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="672.8125" y="1394.7617">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="631.3125,2035.6563,643.3125,2047.6563,631.3125,2059.6563,619.3125,2047.6563,631.3125,2035.6563" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="206" x="528.3125" y="2079.6563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="186" x="538.3125" y="2101.2578">get lease for requested address</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="589.3125,2133.7891,673.3125,2133.7891,685.3125,2145.7891,673.3125,2157.7891,589.3125,2157.7891,577.3125,2145.7891,589.3125,2133.7891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="589.3125" y="2149.9463">requested lease</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="559.3125" y="2143.4688">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="685.3125" y="2143.4688">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="425.3125,2167.7891,466.3125,2167.7891,478.3125,2179.7891,466.3125,2191.7891,425.3125,2191.7891,413.3125,2179.7891,425.3125,2167.7891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="41" x="425.3125" y="2183.9463">expired</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="399.3125" y="2177.4688">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="478.3125" y="2177.4688">yes</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="288.8125" y="2201.7891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="298.8125" y="2223.3906">return no lease</text><ellipse cx="342.3125" cy="2281.9219" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="342.3125" cy="2281.9219" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="476.8125" y="2201.7891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="486.8125" y="2223.3906">reclaim expired lease</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="467.3125" y="2270.9219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="477.3125" y="2292.5234">update lease information</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="480.3125" y="2325.0547"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="490.3125" y="2346.6563">callout lease4_select</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="512.8125,2379.1875,585.8125,2379.1875,597.8125,2391.1875,585.8125,2403.1875,512.8125,2403.1875,500.8125,2391.1875,512.8125,2379.1875" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="512.8125" y="2395.3447">callout return</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="478.8125" y="2388.8672">SKIP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="597.8125" y="2388.8672">CONTINUE</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="425.8125" y="2413.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="435.8125" y="2434.7891">return no lease</text><ellipse cx="479.3125" cy="2478.3203" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="479.3125" cy="2478.3203" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="571.8125" y="2413.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="581.8125" y="2434.7891">update lease</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="133" x="552.8125" y="2467.3203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="113" x="562.8125" y="2488.9219">return reused lease</text><ellipse cx="619.3125" cy="2532.4531" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="619.3125" cy="2532.4531" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="182" x="725.8125" y="2167.7891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="162" x="735.8125" y="2189.3906">create and return new lease</text><ellipse cx="816.8125" cy="2247.9219" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="816.8125" cy="2247.9219" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="51.1992" y2="71.1992"/><polygon fill="#A80036" points="627.3125,61.1992,631.3125,71.1992,635.3125,61.1992,631.3125,65.1992" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="422" x2="422" y1="275.9424" y2="310.9424"/><polygon fill="#A80036" points="418,300.9424,422,310.9424,426,300.9424,422,304.9424" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="422" x2="422" y1="217.332" y2="241.8096"/><polygon fill="#A80036" points="418,231.8096,422,241.8096,426,231.8096,422,235.8096" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="563" x2="575" y1="205.332" y2="205.332"/><polygon fill="#A80036" points="571,283.376,575,293.376,579,283.376,575,287.376" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="575" x2="575" y1="205.332" y2="375.4199"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="575" x2="291" y1="375.4199" y2="375.4199"/><polygon fill="#A80036" points="301,371.4199,291,375.4199,301,379.4199,297,375.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="217" x2="136" y1="171.332" y2="171.332"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136" x2="136" y1="171.332" y2="193.332"/><polygon fill="#A80036" points="132,183.332,136,193.332,140,183.332,136,187.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="341" x2="422" y1="171.332" y2="171.332"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="422" x2="422" y1="171.332" y2="193.332"/><polygon fill="#A80036" points="418,183.332,422,193.332,426,183.332,422,187.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136" x2="136" y1="227.4648" y2="375.4199"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136" x2="267" y1="375.4199" y2="375.4199"/><polygon fill="#A80036" points="257,371.4199,267,375.4199,257,379.4199,261,375.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="553.5078" y2="588.5078"/><polygon fill="#A80036" points="275,578.5078,279,588.5078,283,578.5078,279,582.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="494.8975" y2="519.375"/><polygon fill="#A80036" points="275,509.375,279,519.375,283,509.375,279,513.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="383.5" x2="395.5" y1="482.8975" y2="482.8975"/><polygon fill="#A80036" points="391.5,551.9414,395.5,561.9414,399.5,551.9414,395.5,555.9414" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="395.5" x2="395.5" y1="482.8975" y2="640.9854"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="395.5" x2="279" y1="640.9854" y2="640.9854"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="640.9854" y2="665.4629"/><polygon fill="#A80036" points="275,655.4629,279,665.4629,283,655.4629,279,659.4629" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="446.4199" y2="470.8975"/><polygon fill="#A80036" points="275,460.8975,279,470.8975,283,460.8975,279,464.8975" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="405.5" y1="434.4199" y2="434.4199"/><polygon fill="#A80036" points="401.5,545.9414,405.5,555.9414,409.5,545.9414,405.5,549.9414" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405.5" x2="405.5" y1="434.4199" y2="677.4629"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405.5" x2="291" y1="677.4629" y2="677.4629"/><polygon fill="#A80036" points="301,673.4629,291,677.4629,301,681.4629,297,677.4629" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="387.4199" y2="422.4199"/><polygon fill="#A80036" points="275,412.4199,279,422.4199,283,412.4199,279,416.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="904.0283" y2="939.0283"/><polygon fill="#A80036" points="275,929.0283,279,939.0283,283,929.0283,279,933.0283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="845.418" y2="869.8955"/><polygon fill="#A80036" points="275,859.8955,279,869.8955,283,859.8955,279,863.8955" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="306.5" x2="342.5" y1="833.418" y2="833.418"/><polygon fill="#A80036" points="338.5,902.4619,342.5,912.4619,346.5,902.4619,342.5,906.4619" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.5" x2="342.5" y1="833.418" y2="991.5059"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.5" x2="279" y1="991.5059" y2="991.5059"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="991.5059" y2="1015.9834"/><polygon fill="#A80036" points="275,1005.9834,279,1015.9834,283,1005.9834,279,1009.9834" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="796.9404" y2="821.418"/><polygon fill="#A80036" points="275,811.418,279,821.418,283,811.418,279,815.418" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="377.5" y1="784.9404" y2="784.9404"/><polygon fill="#A80036" points="373.5,896.4619,377.5,906.4619,381.5,896.4619,377.5,900.4619" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="377.5" x2="377.5" y1="784.9404" y2="1027.9834"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="377.5" x2="291" y1="1027.9834" y2="1027.9834"/><polygon fill="#A80036" points="301,1023.9834,291,1027.9834,301,1031.9834,297,1027.9834" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1157.5938" y2="1186.6045"/><polygon fill="#A80036" points="275,1176.6045,279,1186.6045,283,1176.6045,279,1180.6045" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1098.9834" y2="1123.4609"/><polygon fill="#A80036" points="275,1113.4609,279,1123.4609,283,1113.4609,279,1117.4609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="382.5" x2="394.5" y1="1086.9834" y2="1086.9834"/><polygon fill="#A80036" points="390.5,1156.0273,394.5,1166.0273,398.5,1156.0273,394.5,1160.0273" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="394.5" x2="394.5" y1="1086.9834" y2="1239.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="394.5" x2="279" y1="1239.082" y2="1239.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1239.082" y2="1259.082"/><polygon fill="#A80036" points="275,1249.082,279,1259.082,283,1249.082,279,1253.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1039.9834" y2="1074.9834"/><polygon fill="#A80036" points="275,1064.9834,279,1074.9834,283,1064.9834,279,1068.9834" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="748.4629" y2="772.9404"/><polygon fill="#A80036" points="275,762.9404,279,772.9404,283,762.9404,279,766.9404" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399.5" x2="411.5" y1="736.4629" y2="736.4629"/><polygon fill="#A80036" points="407.5,999.0059,411.5,1009.0059,415.5,999.0059,411.5,1003.0059" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="411.5" x2="411.5" y1="736.4629" y2="1271.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="411.5" x2="291" y1="1271.082" y2="1271.082"/><polygon fill="#A80036" points="301,1267.082,291,1271.082,301,1275.082,297,1271.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="689.4629" y2="724.4629"/><polygon fill="#A80036" points="275,714.4629,279,724.4629,283,714.4629,279,718.4629" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="275.9424" y2="310.9424"/><polygon fill="#A80036" points="752,300.9424,756,310.9424,760,300.9424,756,304.9424" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="217.332" y2="241.8096"/><polygon fill="#A80036" points="752,231.8096,756,241.8096,760,231.8096,756,235.8096" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="897" x2="909" y1="205.332" y2="205.332"/><polygon fill="#A80036" points="905,274.376,909,284.376,913,274.376,909,278.376" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="909" x2="909" y1="205.332" y2="357.4199"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="909" x2="756" y1="357.4199" y2="357.4199"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="357.4199" y2="392.4199"/><polygon fill="#A80036" points="752,382.4199,756,392.4199,760,382.4199,756,386.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="523.5078" y2="558.5078"/><polygon fill="#A80036" points="752,548.5078,756,558.5078,760,548.5078,756,552.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="464.8975" y2="489.375"/><polygon fill="#A80036" points="752,479.375,756,489.375,760,479.375,756,483.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="860.5" x2="872.5" y1="452.8975" y2="452.8975"/><polygon fill="#A80036" points="868.5,521.9414,872.5,531.9414,876.5,521.9414,872.5,525.9414" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="872.5" x2="872.5" y1="452.8975" y2="610.9854"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="872.5" x2="756" y1="610.9854" y2="610.9854"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="610.9854" y2="635.4629"/><polygon fill="#A80036" points="752,625.4629,756,635.4629,760,625.4629,756,629.4629" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="416.4199" y2="440.8975"/><polygon fill="#A80036" points="752,430.8975,756,440.8975,760,430.8975,756,434.8975" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="842.5" x2="882.5" y1="404.4199" y2="404.4199"/><polygon fill="#A80036" points="878.5,515.9414,882.5,525.9414,886.5,515.9414,882.5,519.9414" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="882.5" x2="882.5" y1="404.4199" y2="647.4629"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="882.5" x2="768" y1="647.4629" y2="647.4629"/><polygon fill="#A80036" points="778,643.4629,768,647.4629,778,651.4629,774,647.4629" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="777.0732" y2="812.0732"/><polygon fill="#A80036" points="752,802.0732,756,812.0732,760,802.0732,756,806.0732" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="718.4629" y2="742.9404"/><polygon fill="#A80036" points="752,732.9404,756,742.9404,760,732.9404,756,736.9404" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="859.5" x2="871.5" y1="706.4629" y2="706.4629"/><polygon fill="#A80036" points="867.5,1013.8389,871.5,1023.8389,875.5,1013.8389,871.5,1017.8389" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="871.5" x2="871.5" y1="706.4629" y2="1323.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="871.5" x2="971.625" y1="1323.082" y2="1323.082"/><polygon fill="#A80036" points="961.625,1319.082,971.625,1323.082,961.625,1327.082,965.625,1323.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="659.4629" y2="694.4629"/><polygon fill="#A80036" points="752,684.4629,756,694.4629,760,684.4629,756,688.4629" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1084" x2="1084" y1="518.0303" y2="553.0303"/><polygon fill="#A80036" points="1080,543.0303,1084,553.0303,1088,543.0303,1084,547.0303" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="566.5078" y2="601.5078"/><polygon fill="#A80036" points="1334.5,591.5078,1338.5,601.5078,1342.5,591.5078,1338.5,595.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="635.6406" y2="670.6406"/><polygon fill="#A80036" points="1334.5,660.6406,1338.5,670.6406,1342.5,660.6406,1338.5,664.6406" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1268.5" x2="1268.5" y1="807.9063" y2="842.9063"/><polygon fill="#A80036" points="1264.5,832.9063,1268.5,842.9063,1272.5,832.9063,1268.5,836.9063" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1408.5" x2="1408.5" y1="807.9063" y2="842.9063"/><polygon fill="#A80036" points="1404.5,832.9063,1408.5,842.9063,1412.5,832.9063,1408.5,836.9063" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1408.5" x2="1408.5" y1="877.0391" y2="912.0391"/><polygon fill="#A80036" points="1404.5,902.0391,1408.5,912.0391,1412.5,902.0391,1408.5,906.0391" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1290" x2="1268.5" y1="751.7734" y2="751.7734"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1268.5" x2="1268.5" y1="751.7734" y2="773.7734"/><polygon fill="#A80036" points="1264.5,763.7734,1268.5,773.7734,1272.5,763.7734,1268.5,767.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1387" x2="1408.5" y1="751.7734" y2="751.7734"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1408.5" x2="1408.5" y1="751.7734" y2="773.7734"/><polygon fill="#A80036" points="1404.5,763.7734,1408.5,773.7734,1412.5,763.7734,1408.5,767.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="704.7734" y2="739.7734"/><polygon fill="#A80036" points="1334.5,729.7734,1338.5,739.7734,1342.5,729.7734,1338.5,733.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="507.8975" y2="532.375"/><polygon fill="#A80036" points="1334.5,522.375,1338.5,532.375,1342.5,522.375,1338.5,526.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1371" x2="1489" y1="495.8975" y2="495.8975"/><polygon fill="#A80036" points="1485,726.207,1489,736.207,1493,726.207,1489,730.207" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1489" x2="1489" y1="495.8975" y2="976.5166"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1489" x2="1211.25" y1="976.5166" y2="976.5166"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="976.5166" y2="1000.9941"/><polygon fill="#A80036" points="1207.25,990.9941,1211.25,1000.9941,1215.25,990.9941,1211.25,994.9941" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1148.75" x2="1084" y1="461.8975" y2="461.8975"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1084" x2="1084" y1="461.8975" y2="483.8975"/><polygon fill="#A80036" points="1080,473.8975,1084,483.8975,1088,473.8975,1084,477.8975" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1273.75" x2="1338.5" y1="461.8975" y2="461.8975"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="461.8975" y2="483.8975"/><polygon fill="#A80036" points="1334.5,473.8975,1338.5,483.8975,1342.5,473.8975,1338.5,477.8975" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="425.4199" y2="449.8975"/><polygon fill="#A80036" points="1207.25,439.8975,1211.25,449.8975,1215.25,439.8975,1211.25,443.8975" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1319.25" x2="1507" y1="413.4199" y2="413.4199"/><polygon fill="#A80036" points="1503,703.207,1507,713.207,1511,703.207,1507,707.207" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1507" x2="1507" y1="413.4199" y2="1012.9941"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1507" x2="1223.25" y1="1012.9941" y2="1012.9941"/><polygon fill="#A80036" points="1233.25,1008.9941,1223.25,1012.9941,1233.25,1016.9941,1229.25,1012.9941" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="376.9424" y2="401.4199"/><polygon fill="#A80036" points="1207.25,391.4199,1211.25,401.4199,1215.25,391.4199,1211.25,395.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1328.25" x2="1525" y1="364.9424" y2="364.9424"/><polygon fill="#A80036" points="1521,703.207,1525,713.207,1529,703.207,1525,707.207" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1525" x2="1525" y1="364.9424" y2="1061.4717"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1525" x2="1223.25" y1="1061.4717" y2="1061.4717"/><polygon fill="#A80036" points="1233.25,1057.4717,1223.25,1061.4717,1233.25,1065.4717,1229.25,1061.4717" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1024.9941" y2="1049.4717"/><polygon fill="#A80036" points="1207.25,1039.4717,1211.25,1049.4717,1215.25,1039.4717,1211.25,1043.4717" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="323.9424" y2="352.9424"/><polygon fill="#A80036" points="1207.25,342.9424,1211.25,352.9424,1215.25,342.9424,1211.25,346.9424" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="265.8096" y2="289.8096"/><polygon fill="#A80036" points="1207.25,279.8096,1211.25,289.8096,1215.25,279.8096,1211.25,283.8096" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1073.4717" y2="1085.4717"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1543" y1="1085.4717" y2="1085.4717"/><polygon fill="#A80036" points="1539,676.6406,1543,666.6406,1547,676.6406,1543,672.6406" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1543" x2="1543" y1="253.8096" y2="1085.4717"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1543" x2="1304.75" y1="253.8096" y2="253.8096"/><polygon fill="#A80036" points="1314.75,249.8096,1304.75,253.8096,1314.75,257.8096,1310.75,253.8096" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1117.75" x2="951" y1="253.8096" y2="253.8096"/><polygon fill="#A80036" points="947,662.6406,951,672.6406,955,662.6406,951,666.6406" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="951" x2="951" y1="253.8096" y2="1097.4717"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="951" x2="1211.25" y1="1097.4717" y2="1097.4717"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1097.4717" y2="1132.4717"/><polygon fill="#A80036" points="1207.25,1122.4717,1211.25,1132.4717,1215.25,1122.4717,1211.25,1126.4717" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1166.6045" y2="1195.6152"/><polygon fill="#A80036" points="1207.25,1185.6152,1211.25,1195.6152,1215.25,1185.6152,1211.25,1189.6152" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1229.748" y2="1260.2705"/><polygon fill="#A80036" points="1207.25,1250.2705,1211.25,1260.2705,1215.25,1250.2705,1211.25,1254.2705" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="217.332" y2="241.8096"/><polygon fill="#A80036" points="1207.25,231.8096,1211.25,241.8096,1215.25,231.8096,1211.25,235.8096" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343.75" x2="1553" y1="205.332" y2="205.332"/><polygon fill="#A80036" points="1549,760.2734,1553,770.2734,1557,760.2734,1553,764.2734" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1553" x2="1553" y1="205.332" y2="1323.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1553" x2="995.625" y1="1323.082" y2="1323.082"/><polygon fill="#A80036" points="1005.625,1319.082,995.625,1323.082,1005.625,1327.082,1001.625,1323.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="921.625" x2="756" y1="171.332" y2="171.332"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="171.332" y2="193.332"/><polygon fill="#A80036" points="752,183.332,756,193.332,760,183.332,756,187.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1045.625" x2="1211.25" y1="171.332" y2="171.332"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="171.332" y2="193.332"/><polygon fill="#A80036" points="1207.25,183.332,1211.25,193.332,1215.25,183.332,1211.25,187.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="572.8125" x2="279" y1="137.332" y2="137.332"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="137.332" y2="159.332"/><polygon fill="#A80036" points="275,149.332,279,159.332,283,149.332,279,153.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="689.8125" x2="983.625" y1="137.332" y2="137.332"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983.625" x2="983.625" y1="137.332" y2="159.332"/><polygon fill="#A80036" points="979.625,149.332,983.625,159.332,987.625,149.332,983.625,153.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1283.082" y2="1353.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="619.3125" y1="1353.082" y2="1353.082"/><polygon fill="#A80036" points="609.3125,1349.082,619.3125,1353.082,609.3125,1357.082,613.3125,1353.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983.625" x2="983.625" y1="1335.082" y2="1353.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983.625" x2="643.3125" y1="1353.082" y2="1353.082"/><polygon fill="#A80036" points="653.3125,1349.082,643.3125,1353.082,653.3125,1357.082,649.3125,1353.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="105.332" y2="125.332"/><polygon fill="#A80036" points="627.3125,115.332,631.3125,125.332,635.3125,115.332,631.3125,119.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1608.6475" y2="1633.125"/><polygon fill="#A80036" points="627.3125,1623.125,631.3125,1633.125,635.3125,1623.125,631.3125,1627.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="688.8125" x2="713.8125" y1="1596.6475" y2="1596.6475"/><polygon fill="#A80036" points="709.8125,1640.1914,713.8125,1650.1914,717.8125,1640.1914,713.8125,1644.1914" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713.8125" x2="713.8125" y1="1596.6475" y2="1699.2578"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713.8125" x2="643.3125" y1="1699.2578" y2="1699.2578"/><polygon fill="#A80036" points="653.3125,1695.2578,643.3125,1699.2578,653.3125,1703.2578,649.3125,1699.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1667.2578" y2="1687.2578"/><polygon fill="#A80036" points="627.3125,1677.2578,631.3125,1687.2578,635.3125,1677.2578,631.3125,1681.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1564.6475" y2="1584.6475"/><polygon fill="#A80036" points="627.3125,1574.6475,631.3125,1584.6475,635.3125,1574.6475,631.3125,1578.6475" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1711.2578" y2="1731.2578"/><polygon fill="#A80036" points="627.3125,1721.2578,631.3125,1731.2578,635.3125,1721.2578,631.3125,1725.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="540.8125" x2="540.8125" y1="1853.5234" y2="1873.5234"/><polygon fill="#A80036" points="536.8125,1863.5234,540.8125,1873.5234,544.8125,1863.5234,540.8125,1867.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="721.8125" x2="721.8125" y1="1853.5234" y2="1873.5234"/><polygon fill="#A80036" points="717.8125,1863.5234,721.8125,1873.5234,725.8125,1863.5234,721.8125,1867.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="721.8125" x2="721.8125" y1="1907.6563" y2="1927.6563"/><polygon fill="#A80036" points="717.8125,1917.6563,721.8125,1927.6563,725.8125,1917.6563,721.8125,1921.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="582.8125" x2="540.8125" y1="1797.3906" y2="1797.3906"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="540.8125" x2="540.8125" y1="1797.3906" y2="1819.3906"/><polygon fill="#A80036" points="536.8125,1809.3906,540.8125,1819.3906,544.8125,1809.3906,540.8125,1813.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="679.8125" x2="721.8125" y1="1797.3906" y2="1797.3906"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="721.8125" x2="721.8125" y1="1797.3906" y2="1819.3906"/><polygon fill="#A80036" points="717.8125,1809.3906,721.8125,1819.3906,725.8125,1809.3906,721.8125,1813.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1765.3906" y2="1785.3906"/><polygon fill="#A80036" points="627.3125,1775.3906,631.3125,1785.3906,635.3125,1775.3906,631.3125,1779.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1506.0371" y2="1530.5146"/><polygon fill="#A80036" points="627.3125,1520.5146,631.3125,1530.5146,635.3125,1520.5146,631.3125,1524.5146" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="803.8125" x2="830.3125" y1="1494.0371" y2="1494.0371"/><polygon fill="#A80036" points="826.3125,1735.3467,830.3125,1745.3467,834.3125,1735.3467,830.3125,1739.3467" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="830.3125" x2="830.3125" y1="1494.0371" y2="1971.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="830.3125" x2="631.3125" y1="1971.6563" y2="1971.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1971.6563" y2="1991.6563"/><polygon fill="#A80036" points="627.3125,1981.6563,631.3125,1991.6563,635.3125,1981.6563,631.3125,1985.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1457.5596" y2="1482.0371"/><polygon fill="#A80036" points="627.3125,1472.0371,631.3125,1482.0371,635.3125,1472.0371,631.3125,1476.0371" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="825.3125" x2="852.3125" y1="1445.5596" y2="1445.5596"/><polygon fill="#A80036" points="848.3125,1729.3467,852.3125,1739.3467,856.3125,1729.3467,852.3125,1733.3467" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852.3125" x2="852.3125" y1="1445.5596" y2="2003.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852.3125" x2="643.3125" y1="2003.6563" y2="2003.6563"/><polygon fill="#A80036" points="653.3125,1999.6563,643.3125,2003.6563,653.3125,2007.6563,649.3125,2003.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1409.082" y2="1433.5596"/><polygon fill="#A80036" points="627.3125,1423.5596,631.3125,1433.5596,635.3125,1423.5596,631.3125,1427.5596" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="672.8125" x2="874.3125" y1="1397.082" y2="1397.082"/><polygon fill="#A80036" points="870.3125,1729.3467,874.3125,1739.3467,878.3125,1729.3467,874.3125,1733.3467" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="874.3125" x2="874.3125" y1="1397.082" y2="2047.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="874.3125" x2="643.3125" y1="2047.6563" y2="2047.6563"/><polygon fill="#A80036" points="653.3125,2043.6563,643.3125,2047.6563,653.3125,2051.6563,649.3125,2047.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="2015.6563" y2="2035.6563"/><polygon fill="#A80036" points="627.3125,2025.6563,631.3125,2035.6563,635.3125,2025.6563,631.3125,2029.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1365.082" y2="1385.082"/><polygon fill="#A80036" points="627.3125,1375.082,631.3125,1385.082,635.3125,1375.082,631.3125,1379.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="2059.6563" y2="2079.6563"/><polygon fill="#A80036" points="627.3125,2069.6563,631.3125,2079.6563,635.3125,2069.6563,631.3125,2073.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.3125" x2="342.3125" y1="2235.9219" y2="2270.9219"/><polygon fill="#A80036" points="338.3125,2260.9219,342.3125,2270.9219,346.3125,2260.9219,342.3125,2264.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="549.3125" x2="549.3125" y1="2235.9219" y2="2270.9219"/><polygon fill="#A80036" points="545.3125,2260.9219,549.3125,2270.9219,553.3125,2260.9219,549.3125,2264.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="549.3125" x2="549.3125" y1="2305.0547" y2="2325.0547"/><polygon fill="#A80036" points="545.3125,2315.0547,549.3125,2325.0547,553.3125,2315.0547,549.3125,2319.0547" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="479.3125" x2="479.3125" y1="2447.3203" y2="2467.3203"/><polygon fill="#A80036" points="475.3125,2457.3203,479.3125,2467.3203,483.3125,2457.3203,479.3125,2461.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619.3125" x2="619.3125" y1="2447.3203" y2="2467.3203"/><polygon fill="#A80036" points="615.3125,2457.3203,619.3125,2467.3203,623.3125,2457.3203,619.3125,2461.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619.3125" x2="619.3125" y1="2501.4531" y2="2521.4531"/><polygon fill="#A80036" points="615.3125,2511.4531,619.3125,2521.4531,623.3125,2511.4531,619.3125,2515.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="500.8125" x2="479.3125" y1="2391.1875" y2="2391.1875"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="479.3125" x2="479.3125" y1="2391.1875" y2="2413.1875"/><polygon fill="#A80036" points="475.3125,2403.1875,479.3125,2413.1875,483.3125,2403.1875,479.3125,2407.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.8125" x2="619.3125" y1="2391.1875" y2="2391.1875"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619.3125" x2="619.3125" y1="2391.1875" y2="2413.1875"/><polygon fill="#A80036" points="615.3125,2403.1875,619.3125,2413.1875,623.3125,2403.1875,619.3125,2407.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="549.3125" x2="549.3125" y1="2359.1875" y2="2379.1875"/><polygon fill="#A80036" points="545.3125,2369.1875,549.3125,2379.1875,553.3125,2369.1875,549.3125,2373.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="413.3125" x2="342.3125" y1="2179.7891" y2="2179.7891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.3125" x2="342.3125" y1="2179.7891" y2="2201.7891"/><polygon fill="#A80036" points="338.3125,2191.7891,342.3125,2201.7891,346.3125,2191.7891,342.3125,2195.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="478.3125" x2="549.3125" y1="2179.7891" y2="2179.7891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="549.3125" x2="549.3125" y1="2179.7891" y2="2201.7891"/><polygon fill="#A80036" points="545.3125,2191.7891,549.3125,2201.7891,553.3125,2191.7891,549.3125,2195.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="816.8125" x2="816.8125" y1="2201.9219" y2="2236.9219"/><polygon fill="#A80036" points="812.8125,2226.9219,816.8125,2236.9219,820.8125,2226.9219,816.8125,2230.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="577.3125" x2="445.8125" y1="2145.7891" y2="2145.7891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="445.8125" x2="445.8125" y1="2145.7891" y2="2167.7891"/><polygon fill="#A80036" points="441.8125,2157.7891,445.8125,2167.7891,449.8125,2157.7891,445.8125,2161.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="685.3125" x2="816.8125" y1="2145.7891" y2="2145.7891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="816.8125" x2="816.8125" y1="2145.7891" y2="2167.7891"/><polygon fill="#A80036" points="812.8125,2157.7891,816.8125,2167.7891,820.8125,2157.7891,816.8125,2161.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="2113.7891" y2="2133.7891"/><polygon fill="#A80036" points="627.3125,2123.7891,631.3125,2133.7891,635.3125,2123.7891,631.3125,2127.7891" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[afafd38710d9a052946de087a4cad58a]
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="2560px" preserveAspectRatio="none" style="width:1579px;height:2560px;" version="1.1" viewBox="0 0 1579 2560" width="1579px" zoomAndPan="magnify"><defs><filter height="300%" id="f1aicqcofdeklm" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="316" x="630.5" y="27.4023">requestLease4 algorithm (Kea 1.8.0)</text><ellipse cx="631.3125" cy="41.1992" fill="#000000" filter="url(#f1aicqcofdeklm)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="557.3125" y="71.1992"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="128" x="567.3125" y="92.8008">get lease for the client</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="584.8125,125.332,677.8125,125.332,689.8125,137.332,677.8125,149.332,584.8125,149.332,572.8125,137.332,584.8125,125.332" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="584.8125" y="141.4893">reserved address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="554.8125" y="135.0117">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="689.8125" y="135.0117">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="229,159.332,329,159.332,341,171.332,329,183.332,229,183.332,217,171.332,229,159.332" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="100" x="229" y="175.4893">requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="203" y="169.0117">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="341" y="169.0117">yes</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="250" x="11" y="193.332"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="230" x="21" y="214.9336">requested address = reserved address</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="368.5" y="241.8096"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="378.5" y="263.4111">return no lease</text><ellipse cx="422" cy="321.9424" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="422" cy="321.9424" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="293,193.332,551,193.332,563,205.332,551,217.332,293,217.332,281,205.332,293,193.332" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="426" y="227.9668">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="293" y="209.4893">requested address is reserved for another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="563" y="203.0117">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="279,363.4199,291,375.4199,279,387.4199,267,375.4199,279,363.4199" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="225.5" y="519.375"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="235.5" y="540.9766">return no lease</text><ellipse cx="279" cy="599.5078" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="279" cy="599.5078" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="186.5,470.8975,371.5,470.8975,383.5,482.8975,371.5,494.8975,186.5,494.8975,174.5,482.8975,186.5,470.8975" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="505.5322">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="186.5" y="487.0547">active and owned by another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="383.5" y="480.5771">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="204.5,422.4199,353.5,422.4199,365.5,434.4199,353.5,446.4199,204.5,446.4199,192.5,434.4199,204.5,422.4199" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="457.0547">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="204.5" y="438.5771">lease for requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="365.5" y="432.0996">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="279,665.4629,291,677.4629,279,689.4629,267,677.4629,279,665.4629" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="225.5" y="869.8955"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="235.5" y="891.4971">return no lease</text><ellipse cx="279" cy="950.0283" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="279" cy="950.0283" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="263.5,821.418,294.5,821.418,306.5,833.418,294.5,845.418,263.5,845.418,251.5,833.418,263.5,821.418" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="856.0527">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="31" x="263.5" y="837.5752">active</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="306.5" y="831.0977">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="204.5,772.9404,353.5,772.9404,365.5,784.9404,353.5,796.9404,204.5,796.9404,192.5,784.9404,204.5,772.9404" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="807.5752">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="204.5" y="789.0977">lease for requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="365.5" y="782.6201">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="279,1015.9834,291,1027.9834,279,1039.9834,267,1027.9834,279,1015.9834" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="225.5" y="1123.4609"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="235.5" y="1145.0625">return no lease</text><ellipse cx="279" cy="1197.6045" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="279" cy="1197.6045" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="187.5,1074.9834,370.5,1074.9834,382.5,1086.9834,370.5,1098.9834,187.5,1098.9834,175.5,1086.9834,187.5,1074.9834" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="283" y="1109.6182">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="187.5" y="1091.1406">requested address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="382.5" y="1084.6631">yes</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="170.5,724.4629,387.5,724.4629,399.5,736.4629,387.5,748.4629,170.5,748.4629,158.5,736.4629,170.5,724.4629" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="283" y="759.0977">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="170.5" y="740.6201">requested address == reserved address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="399.5" y="734.1426">yes</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="279,1259.082,291,1271.082,279,1283.082,267,1271.082,279,1259.082" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="933.625,159.332,1033.625,159.332,1045.625,171.332,1033.625,183.332,933.625,183.332,921.625,171.332,933.625,159.332" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="100" x="933.625" y="175.4893">requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="903.625" y="169.0117">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1045.625" y="169.0117">no</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="702.5" y="241.8096"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="712.5" y="263.4111">return no lease</text><ellipse cx="756" cy="321.9424" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="756" cy="321.9424" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="627,193.332,885,193.332,897,205.332,885,217.332,627,217.332,615,205.332,627,193.332" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="760" y="227.9668">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="627" y="209.4893">requested address is reserved for another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="897" y="203.0117">no</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="702.5" y="489.375"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="712.5" y="510.9766">return no lease</text><ellipse cx="756" cy="569.5078" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="756" cy="569.5078" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="663.5,440.8975,848.5,440.8975,860.5,452.8975,848.5,464.8975,663.5,464.8975,651.5,452.8975,663.5,440.8975" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="760" y="475.5322">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="663.5" y="457.0547">active and owned by another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="860.5" y="450.5771">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="681.5,392.4199,830.5,392.4199,842.5,404.4199,830.5,416.4199,681.5,416.4199,669.5,404.4199,681.5,392.4199" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="760" y="427.0547">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="681.5" y="408.5771">lease for requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="842.5" y="402.0996">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="756,635.4629,768,647.4629,756,659.4629,744,647.4629,756,635.4629" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="702.5" y="742.9404"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="712.5" y="764.542">return no lease</text><ellipse cx="756" cy="823.0732" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="756" cy="823.0732" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="664.5,694.4629,847.5,694.4629,859.5,706.4629,847.5,718.4629,664.5,718.4629,652.5,706.4629,664.5,694.4629" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="760" y="729.0977">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="664.5" y="710.6201">requested address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="859.5" y="704.1426">yes</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="1133.25" y="289.8096"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="1143.25" y="311.4111">pick candidate address</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1160.75,449.8975,1261.75,449.8975,1273.75,461.8975,1261.75,473.8975,1160.75,473.8975,1148.75,461.8975,1160.75,449.8975" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="1160.75" y="466.0547">lease for candidate</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1134.75" y="459.5771">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1273.75" y="459.5771">yes</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="182" x="993" y="483.8975"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="162" x="1003" y="505.499">create and return new lease</text><ellipse cx="1084" cy="564.0303" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1084" cy="564.0303" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="1266" y="532.375"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="1276" y="553.9766">reclaim expired lease</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="1256.5" y="601.5078"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="1266.5" y="623.1094">update lease information</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="1269.5" y="670.6406"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1279.5" y="692.2422">callout lease4_select</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1302,739.7734,1375,739.7734,1387,751.7734,1375,763.7734,1302,763.7734,1290,751.7734,1302,739.7734" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="1302" y="755.9307">callout return</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="1268" y="749.4531">SKIP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="1387" y="749.4531">CONTINUE</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="1215" y="773.7734"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="1225" y="795.375">return no lease</text><ellipse cx="1268.5" cy="853.9063" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1268.5" cy="853.9063" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="1361" y="773.7734"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="1371" y="795.375">update lease</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="133" x="1342" y="842.9063"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="113" x="1352" y="864.5078">return reused lease</text><ellipse cx="1408.5" cy="923.0391" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1408.5" cy="923.0391" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1318,483.8975,1359,483.8975,1371,495.8975,1359,507.8975,1318,507.8975,1306,495.8975,1318,483.8975" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1342.5" y="518.5322">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="41" x="1318" y="500.0547">expired</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1371" y="493.5771">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1115.25,401.4199,1307.25,401.4199,1319.25,413.4199,1307.25,425.4199,1115.25,425.4199,1103.25,413.4199,1115.25,401.4199" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1215.25" y="436.0547">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="1115.25" y="417.5771">candidate is used by another thread</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1319.25" y="411.0996">yes</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1211.25,1000.9941,1223.25,1012.9941,1211.25,1024.9941,1199.25,1012.9941,1211.25,1000.9941" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1106.25,352.9424,1316.25,352.9424,1328.25,364.9424,1316.25,376.9424,1106.25,376.9424,1094.25,364.9424,1106.25,352.9424" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1215.25" y="387.5771">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="1106.25" y="369.0996">candidate is reserved for another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1328.25" y="362.6221">yes</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1211.25,1049.4717,1223.25,1061.4717,1211.25,1073.4717,1199.25,1061.4717,1211.25,1049.4717" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1129.75,241.8096,1292.75,241.8096,1304.75,253.8096,1292.75,265.8096,1129.75,265.8096,1117.75,253.8096,1129.75,241.8096" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="163" x="1129.75" y="257.9668">iterate over pools and subnets</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="1145.25" y="1132.4717"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1155.25" y="1154.0732">maximum attempts</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="1157.75" y="1195.6152"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="1167.75" y="1217.2168">return no lease</text><ellipse cx="1211.25" cy="1271.2705" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1211.25" cy="1271.2705" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="1090.75,193.332,1331.75,193.332,1343.75,205.332,1331.75,217.332,1090.75,217.332,1078.75,205.332,1090.75,193.332" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1215.25" y="227.9668">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="241" x="1090.75" y="209.4893">client lease and lease address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1343.75" y="203.0117">yes</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="983.625,1311.082,995.625,1323.082,983.625,1335.082,971.625,1323.082,983.625,1311.082" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="631.3125,1341.082,643.3125,1353.082,631.3125,1365.082,619.3125,1353.082,631.3125,1341.082" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="549.3125" y="1530.5146"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="559.3125" y="1552.1162">update lease information</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="558.8125" y="1633.125"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="568.8125" y="1654.7266">reclaim expired lease</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="585.8125,1584.6475,676.8125,1584.6475,688.8125,1596.6475,676.8125,1608.6475,585.8125,1608.6475,573.8125,1596.6475,585.8125,1584.6475" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="635.3125" y="1619.2822">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="585.8125" y="1600.8047">old lease expired</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="688.8125" y="1594.3271">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="631.3125,1687.2578,643.3125,1699.2578,631.3125,1711.2578,619.3125,1699.2578,631.3125,1687.2578" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="561.3125" y="1731.2578"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="571.3125" y="1752.8594">callout lease4_renew</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="594.8125,1785.3906,667.8125,1785.3906,679.8125,1797.3906,667.8125,1809.3906,594.8125,1809.3906,582.8125,1797.3906,594.8125,1785.3906" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="594.8125" y="1801.5479">callout return</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="560.8125" y="1795.0703">SKIP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="679.8125" y="1795.0703">CONTINUE</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="468.3125" y="1819.3906"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="478.3125" y="1840.9922">return old client lease</text><ellipse cx="540.8125" cy="1884.5234" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="540.8125" cy="1884.5234" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="674.3125" y="1819.3906"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="684.3125" y="1840.9922">update lease</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="633.3125" y="1873.5234"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="157" x="643.3125" y="1895.125">return renewed client lease</text><ellipse cx="721.8125" cy="1938.6563" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="721.8125" cy="1938.6563" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="470.8125,1482.0371,791.8125,1482.0371,803.8125,1494.0371,791.8125,1506.0371,470.8125,1506.0371,458.8125,1494.0371,470.8125,1482.0371" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="635.3125" y="1516.6719">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="321" x="470.8125" y="1498.1943">has reserved address or client lease address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="803.8125" y="1491.7168">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="449.3125,1433.5596,813.3125,1433.5596,825.3125,1445.5596,813.3125,1457.5596,449.3125,1457.5596,437.3125,1445.5596,449.3125,1433.5596" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="635.3125" y="1468.1943">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="364" x="449.3125" y="1449.7168">no requested address or requested address == client lease address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="825.3125" y="1443.2393">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="631.3125,1991.6563,643.3125,2003.6563,631.3125,2015.6563,619.3125,2003.6563,631.3125,1991.6563" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="601.8125,1385.082,660.8125,1385.082,672.8125,1397.082,660.8125,1409.082,601.8125,1409.082,589.8125,1397.082,601.8125,1385.082" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="635.3125" y="1419.7168">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="59" x="601.8125" y="1401.2393">client lease</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="672.8125" y="1394.7617">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="631.3125,2035.6563,643.3125,2047.6563,631.3125,2059.6563,619.3125,2047.6563,631.3125,2035.6563" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="206" x="528.3125" y="2079.6563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="186" x="538.3125" y="2101.2578">get lease for requested address</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="589.3125,2133.7891,673.3125,2133.7891,685.3125,2145.7891,673.3125,2157.7891,589.3125,2157.7891,577.3125,2145.7891,589.3125,2133.7891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="589.3125" y="2149.9463">requested lease</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="559.3125" y="2143.4688">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="685.3125" y="2143.4688">no</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="425.3125,2167.7891,466.3125,2167.7891,478.3125,2179.7891,466.3125,2191.7891,425.3125,2191.7891,413.3125,2179.7891,425.3125,2167.7891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="41" x="425.3125" y="2183.9463">expired</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="399.3125" y="2177.4688">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="478.3125" y="2177.4688">yes</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="288.8125" y="2201.7891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="298.8125" y="2223.3906">return no lease</text><ellipse cx="342.3125" cy="2281.9219" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="342.3125" cy="2281.9219" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="476.8125" y="2201.7891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="486.8125" y="2223.3906">reclaim expired lease</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="467.3125" y="2270.9219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="477.3125" y="2292.5234">update lease information</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="480.3125" y="2325.0547"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="490.3125" y="2346.6563">callout lease4_select</text><polygon fill="#FEFECE" filter="url(#f1aicqcofdeklm)" points="512.8125,2379.1875,585.8125,2379.1875,597.8125,2391.1875,585.8125,2403.1875,512.8125,2403.1875,500.8125,2391.1875,512.8125,2379.1875" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="512.8125" y="2395.3447">callout return</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="478.8125" y="2388.8672">SKIP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="597.8125" y="2388.8672">CONTINUE</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="425.8125" y="2413.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="435.8125" y="2434.7891">return no lease</text><ellipse cx="479.3125" cy="2478.3203" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="479.3125" cy="2478.3203" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="571.8125" y="2413.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="581.8125" y="2434.7891">update lease</text><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="133" x="552.8125" y="2467.3203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="113" x="562.8125" y="2488.9219">return reused lease</text><ellipse cx="619.3125" cy="2532.4531" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="619.3125" cy="2532.4531" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1aicqcofdeklm)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="182" x="725.8125" y="2167.7891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="162" x="735.8125" y="2189.3906">create and return new lease</text><ellipse cx="816.8125" cy="2247.9219" fill="#FFFFFF" filter="url(#f1aicqcofdeklm)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="816.8125" cy="2247.9219" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="51.1992" y2="71.1992"/><polygon fill="#A80036" points="627.3125,61.1992,631.3125,71.1992,635.3125,61.1992,631.3125,65.1992" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="422" x2="422" y1="275.9424" y2="310.9424"/><polygon fill="#A80036" points="418,300.9424,422,310.9424,426,300.9424,422,304.9424" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="422" x2="422" y1="217.332" y2="241.8096"/><polygon fill="#A80036" points="418,231.8096,422,241.8096,426,231.8096,422,235.8096" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="563" x2="575" y1="205.332" y2="205.332"/><polygon fill="#A80036" points="571,283.376,575,293.376,579,283.376,575,287.376" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="575" x2="575" y1="205.332" y2="375.4199"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="575" x2="291" y1="375.4199" y2="375.4199"/><polygon fill="#A80036" points="301,371.4199,291,375.4199,301,379.4199,297,375.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="217" x2="136" y1="171.332" y2="171.332"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136" x2="136" y1="171.332" y2="193.332"/><polygon fill="#A80036" points="132,183.332,136,193.332,140,183.332,136,187.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="341" x2="422" y1="171.332" y2="171.332"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="422" x2="422" y1="171.332" y2="193.332"/><polygon fill="#A80036" points="418,183.332,422,193.332,426,183.332,422,187.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136" x2="136" y1="227.4648" y2="375.4199"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136" x2="267" y1="375.4199" y2="375.4199"/><polygon fill="#A80036" points="257,371.4199,267,375.4199,257,379.4199,261,375.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="553.5078" y2="588.5078"/><polygon fill="#A80036" points="275,578.5078,279,588.5078,283,578.5078,279,582.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="494.8975" y2="519.375"/><polygon fill="#A80036" points="275,509.375,279,519.375,283,509.375,279,513.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="383.5" x2="395.5" y1="482.8975" y2="482.8975"/><polygon fill="#A80036" points="391.5,551.9414,395.5,561.9414,399.5,551.9414,395.5,555.9414" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="395.5" x2="395.5" y1="482.8975" y2="640.9854"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="395.5" x2="279" y1="640.9854" y2="640.9854"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="640.9854" y2="665.4629"/><polygon fill="#A80036" points="275,655.4629,279,665.4629,283,655.4629,279,659.4629" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="446.4199" y2="470.8975"/><polygon fill="#A80036" points="275,460.8975,279,470.8975,283,460.8975,279,464.8975" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="405.5" y1="434.4199" y2="434.4199"/><polygon fill="#A80036" points="401.5,545.9414,405.5,555.9414,409.5,545.9414,405.5,549.9414" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405.5" x2="405.5" y1="434.4199" y2="677.4629"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405.5" x2="291" y1="677.4629" y2="677.4629"/><polygon fill="#A80036" points="301,673.4629,291,677.4629,301,681.4629,297,677.4629" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="387.4199" y2="422.4199"/><polygon fill="#A80036" points="275,412.4199,279,422.4199,283,412.4199,279,416.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="904.0283" y2="939.0283"/><polygon fill="#A80036" points="275,929.0283,279,939.0283,283,929.0283,279,933.0283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="845.418" y2="869.8955"/><polygon fill="#A80036" points="275,859.8955,279,869.8955,283,859.8955,279,863.8955" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="306.5" x2="342.5" y1="833.418" y2="833.418"/><polygon fill="#A80036" points="338.5,902.4619,342.5,912.4619,346.5,902.4619,342.5,906.4619" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.5" x2="342.5" y1="833.418" y2="991.5059"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.5" x2="279" y1="991.5059" y2="991.5059"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="991.5059" y2="1015.9834"/><polygon fill="#A80036" points="275,1005.9834,279,1015.9834,283,1005.9834,279,1009.9834" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="796.9404" y2="821.418"/><polygon fill="#A80036" points="275,811.418,279,821.418,283,811.418,279,815.418" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="377.5" y1="784.9404" y2="784.9404"/><polygon fill="#A80036" points="373.5,896.4619,377.5,906.4619,381.5,896.4619,377.5,900.4619" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="377.5" x2="377.5" y1="784.9404" y2="1027.9834"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="377.5" x2="291" y1="1027.9834" y2="1027.9834"/><polygon fill="#A80036" points="301,1023.9834,291,1027.9834,301,1031.9834,297,1027.9834" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1157.5938" y2="1186.6045"/><polygon fill="#A80036" points="275,1176.6045,279,1186.6045,283,1176.6045,279,1180.6045" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1098.9834" y2="1123.4609"/><polygon fill="#A80036" points="275,1113.4609,279,1123.4609,283,1113.4609,279,1117.4609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="382.5" x2="394.5" y1="1086.9834" y2="1086.9834"/><polygon fill="#A80036" points="390.5,1156.0273,394.5,1166.0273,398.5,1156.0273,394.5,1160.0273" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="394.5" x2="394.5" y1="1086.9834" y2="1239.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="394.5" x2="279" y1="1239.082" y2="1239.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1239.082" y2="1259.082"/><polygon fill="#A80036" points="275,1249.082,279,1259.082,283,1249.082,279,1253.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1039.9834" y2="1074.9834"/><polygon fill="#A80036" points="275,1064.9834,279,1074.9834,283,1064.9834,279,1068.9834" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="748.4629" y2="772.9404"/><polygon fill="#A80036" points="275,762.9404,279,772.9404,283,762.9404,279,766.9404" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399.5" x2="411.5" y1="736.4629" y2="736.4629"/><polygon fill="#A80036" points="407.5,999.0059,411.5,1009.0059,415.5,999.0059,411.5,1003.0059" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="411.5" x2="411.5" y1="736.4629" y2="1271.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="411.5" x2="291" y1="1271.082" y2="1271.082"/><polygon fill="#A80036" points="301,1267.082,291,1271.082,301,1275.082,297,1271.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="689.4629" y2="724.4629"/><polygon fill="#A80036" points="275,714.4629,279,724.4629,283,714.4629,279,718.4629" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="275.9424" y2="310.9424"/><polygon fill="#A80036" points="752,300.9424,756,310.9424,760,300.9424,756,304.9424" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="217.332" y2="241.8096"/><polygon fill="#A80036" points="752,231.8096,756,241.8096,760,231.8096,756,235.8096" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="897" x2="909" y1="205.332" y2="205.332"/><polygon fill="#A80036" points="905,274.376,909,284.376,913,274.376,909,278.376" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="909" x2="909" y1="205.332" y2="357.4199"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="909" x2="756" y1="357.4199" y2="357.4199"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="357.4199" y2="392.4199"/><polygon fill="#A80036" points="752,382.4199,756,392.4199,760,382.4199,756,386.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="523.5078" y2="558.5078"/><polygon fill="#A80036" points="752,548.5078,756,558.5078,760,548.5078,756,552.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="464.8975" y2="489.375"/><polygon fill="#A80036" points="752,479.375,756,489.375,760,479.375,756,483.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="860.5" x2="872.5" y1="452.8975" y2="452.8975"/><polygon fill="#A80036" points="868.5,521.9414,872.5,531.9414,876.5,521.9414,872.5,525.9414" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="872.5" x2="872.5" y1="452.8975" y2="610.9854"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="872.5" x2="756" y1="610.9854" y2="610.9854"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="610.9854" y2="635.4629"/><polygon fill="#A80036" points="752,625.4629,756,635.4629,760,625.4629,756,629.4629" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="416.4199" y2="440.8975"/><polygon fill="#A80036" points="752,430.8975,756,440.8975,760,430.8975,756,434.8975" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="842.5" x2="882.5" y1="404.4199" y2="404.4199"/><polygon fill="#A80036" points="878.5,515.9414,882.5,525.9414,886.5,515.9414,882.5,519.9414" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="882.5" x2="882.5" y1="404.4199" y2="647.4629"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="882.5" x2="768" y1="647.4629" y2="647.4629"/><polygon fill="#A80036" points="778,643.4629,768,647.4629,778,651.4629,774,647.4629" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="777.0732" y2="812.0732"/><polygon fill="#A80036" points="752,802.0732,756,812.0732,760,802.0732,756,806.0732" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="718.4629" y2="742.9404"/><polygon fill="#A80036" points="752,732.9404,756,742.9404,760,732.9404,756,736.9404" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="859.5" x2="871.5" y1="706.4629" y2="706.4629"/><polygon fill="#A80036" points="867.5,1013.8389,871.5,1023.8389,875.5,1013.8389,871.5,1017.8389" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="871.5" x2="871.5" y1="706.4629" y2="1323.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="871.5" x2="971.625" y1="1323.082" y2="1323.082"/><polygon fill="#A80036" points="961.625,1319.082,971.625,1323.082,961.625,1327.082,965.625,1323.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="659.4629" y2="694.4629"/><polygon fill="#A80036" points="752,684.4629,756,694.4629,760,684.4629,756,688.4629" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1084" x2="1084" y1="518.0303" y2="553.0303"/><polygon fill="#A80036" points="1080,543.0303,1084,553.0303,1088,543.0303,1084,547.0303" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="566.5078" y2="601.5078"/><polygon fill="#A80036" points="1334.5,591.5078,1338.5,601.5078,1342.5,591.5078,1338.5,595.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="635.6406" y2="670.6406"/><polygon fill="#A80036" points="1334.5,660.6406,1338.5,670.6406,1342.5,660.6406,1338.5,664.6406" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1268.5" x2="1268.5" y1="807.9063" y2="842.9063"/><polygon fill="#A80036" points="1264.5,832.9063,1268.5,842.9063,1272.5,832.9063,1268.5,836.9063" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1408.5" x2="1408.5" y1="807.9063" y2="842.9063"/><polygon fill="#A80036" points="1404.5,832.9063,1408.5,842.9063,1412.5,832.9063,1408.5,836.9063" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1408.5" x2="1408.5" y1="877.0391" y2="912.0391"/><polygon fill="#A80036" points="1404.5,902.0391,1408.5,912.0391,1412.5,902.0391,1408.5,906.0391" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1290" x2="1268.5" y1="751.7734" y2="751.7734"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1268.5" x2="1268.5" y1="751.7734" y2="773.7734"/><polygon fill="#A80036" points="1264.5,763.7734,1268.5,773.7734,1272.5,763.7734,1268.5,767.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1387" x2="1408.5" y1="751.7734" y2="751.7734"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1408.5" x2="1408.5" y1="751.7734" y2="773.7734"/><polygon fill="#A80036" points="1404.5,763.7734,1408.5,773.7734,1412.5,763.7734,1408.5,767.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="704.7734" y2="739.7734"/><polygon fill="#A80036" points="1334.5,729.7734,1338.5,739.7734,1342.5,729.7734,1338.5,733.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="507.8975" y2="532.375"/><polygon fill="#A80036" points="1334.5,522.375,1338.5,532.375,1342.5,522.375,1338.5,526.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1371" x2="1489" y1="495.8975" y2="495.8975"/><polygon fill="#A80036" points="1485,726.207,1489,736.207,1493,726.207,1489,730.207" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1489" x2="1489" y1="495.8975" y2="976.5166"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1489" x2="1211.25" y1="976.5166" y2="976.5166"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="976.5166" y2="1000.9941"/><polygon fill="#A80036" points="1207.25,990.9941,1211.25,1000.9941,1215.25,990.9941,1211.25,994.9941" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1148.75" x2="1084" y1="461.8975" y2="461.8975"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1084" x2="1084" y1="461.8975" y2="483.8975"/><polygon fill="#A80036" points="1080,473.8975,1084,483.8975,1088,473.8975,1084,477.8975" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1273.75" x2="1338.5" y1="461.8975" y2="461.8975"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="461.8975" y2="483.8975"/><polygon fill="#A80036" points="1334.5,473.8975,1338.5,483.8975,1342.5,473.8975,1338.5,477.8975" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="425.4199" y2="449.8975"/><polygon fill="#A80036" points="1207.25,439.8975,1211.25,449.8975,1215.25,439.8975,1211.25,443.8975" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1319.25" x2="1507" y1="413.4199" y2="413.4199"/><polygon fill="#A80036" points="1503,703.207,1507,713.207,1511,703.207,1507,707.207" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1507" x2="1507" y1="413.4199" y2="1012.9941"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1507" x2="1223.25" y1="1012.9941" y2="1012.9941"/><polygon fill="#A80036" points="1233.25,1008.9941,1223.25,1012.9941,1233.25,1016.9941,1229.25,1012.9941" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="376.9424" y2="401.4199"/><polygon fill="#A80036" points="1207.25,391.4199,1211.25,401.4199,1215.25,391.4199,1211.25,395.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1328.25" x2="1525" y1="364.9424" y2="364.9424"/><polygon fill="#A80036" points="1521,703.207,1525,713.207,1529,703.207,1525,707.207" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1525" x2="1525" y1="364.9424" y2="1061.4717"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1525" x2="1223.25" y1="1061.4717" y2="1061.4717"/><polygon fill="#A80036" points="1233.25,1057.4717,1223.25,1061.4717,1233.25,1065.4717,1229.25,1061.4717" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1024.9941" y2="1049.4717"/><polygon fill="#A80036" points="1207.25,1039.4717,1211.25,1049.4717,1215.25,1039.4717,1211.25,1043.4717" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="323.9424" y2="352.9424"/><polygon fill="#A80036" points="1207.25,342.9424,1211.25,352.9424,1215.25,342.9424,1211.25,346.9424" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="265.8096" y2="289.8096"/><polygon fill="#A80036" points="1207.25,279.8096,1211.25,289.8096,1215.25,279.8096,1211.25,283.8096" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1073.4717" y2="1085.4717"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1543" y1="1085.4717" y2="1085.4717"/><polygon fill="#A80036" points="1539,676.6406,1543,666.6406,1547,676.6406,1543,672.6406" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1543" x2="1543" y1="253.8096" y2="1085.4717"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1543" x2="1304.75" y1="253.8096" y2="253.8096"/><polygon fill="#A80036" points="1314.75,249.8096,1304.75,253.8096,1314.75,257.8096,1310.75,253.8096" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1117.75" x2="951" y1="253.8096" y2="253.8096"/><polygon fill="#A80036" points="947,662.6406,951,672.6406,955,662.6406,951,666.6406" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="951" x2="951" y1="253.8096" y2="1097.4717"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="951" x2="1211.25" y1="1097.4717" y2="1097.4717"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1097.4717" y2="1132.4717"/><polygon fill="#A80036" points="1207.25,1122.4717,1211.25,1132.4717,1215.25,1122.4717,1211.25,1126.4717" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1166.6045" y2="1195.6152"/><polygon fill="#A80036" points="1207.25,1185.6152,1211.25,1195.6152,1215.25,1185.6152,1211.25,1189.6152" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1229.748" y2="1260.2705"/><polygon fill="#A80036" points="1207.25,1250.2705,1211.25,1260.2705,1215.25,1250.2705,1211.25,1254.2705" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="217.332" y2="241.8096"/><polygon fill="#A80036" points="1207.25,231.8096,1211.25,241.8096,1215.25,231.8096,1211.25,235.8096" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343.75" x2="1553" y1="205.332" y2="205.332"/><polygon fill="#A80036" points="1549,760.2734,1553,770.2734,1557,760.2734,1553,764.2734" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1553" x2="1553" y1="205.332" y2="1323.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1553" x2="995.625" y1="1323.082" y2="1323.082"/><polygon fill="#A80036" points="1005.625,1319.082,995.625,1323.082,1005.625,1327.082,1001.625,1323.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="921.625" x2="756" y1="171.332" y2="171.332"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="171.332" y2="193.332"/><polygon fill="#A80036" points="752,183.332,756,193.332,760,183.332,756,187.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1045.625" x2="1211.25" y1="171.332" y2="171.332"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="171.332" y2="193.332"/><polygon fill="#A80036" points="1207.25,183.332,1211.25,193.332,1215.25,183.332,1211.25,187.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="572.8125" x2="279" y1="137.332" y2="137.332"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="137.332" y2="159.332"/><polygon fill="#A80036" points="275,149.332,279,159.332,283,149.332,279,153.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="689.8125" x2="983.625" y1="137.332" y2="137.332"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983.625" x2="983.625" y1="137.332" y2="159.332"/><polygon fill="#A80036" points="979.625,149.332,983.625,159.332,987.625,149.332,983.625,153.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1283.082" y2="1353.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="619.3125" y1="1353.082" y2="1353.082"/><polygon fill="#A80036" points="609.3125,1349.082,619.3125,1353.082,609.3125,1357.082,613.3125,1353.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983.625" x2="983.625" y1="1335.082" y2="1353.082"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983.625" x2="643.3125" y1="1353.082" y2="1353.082"/><polygon fill="#A80036" points="653.3125,1349.082,643.3125,1353.082,653.3125,1357.082,649.3125,1353.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="105.332" y2="125.332"/><polygon fill="#A80036" points="627.3125,115.332,631.3125,125.332,635.3125,115.332,631.3125,119.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1608.6475" y2="1633.125"/><polygon fill="#A80036" points="627.3125,1623.125,631.3125,1633.125,635.3125,1623.125,631.3125,1627.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="688.8125" x2="713.8125" y1="1596.6475" y2="1596.6475"/><polygon fill="#A80036" points="709.8125,1640.1914,713.8125,1650.1914,717.8125,1640.1914,713.8125,1644.1914" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713.8125" x2="713.8125" y1="1596.6475" y2="1699.2578"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713.8125" x2="643.3125" y1="1699.2578" y2="1699.2578"/><polygon fill="#A80036" points="653.3125,1695.2578,643.3125,1699.2578,653.3125,1703.2578,649.3125,1699.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1667.2578" y2="1687.2578"/><polygon fill="#A80036" points="627.3125,1677.2578,631.3125,1687.2578,635.3125,1677.2578,631.3125,1681.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1564.6475" y2="1584.6475"/><polygon fill="#A80036" points="627.3125,1574.6475,631.3125,1584.6475,635.3125,1574.6475,631.3125,1578.6475" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1711.2578" y2="1731.2578"/><polygon fill="#A80036" points="627.3125,1721.2578,631.3125,1731.2578,635.3125,1721.2578,631.3125,1725.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="540.8125" x2="540.8125" y1="1853.5234" y2="1873.5234"/><polygon fill="#A80036" points="536.8125,1863.5234,540.8125,1873.5234,544.8125,1863.5234,540.8125,1867.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="721.8125" x2="721.8125" y1="1853.5234" y2="1873.5234"/><polygon fill="#A80036" points="717.8125,1863.5234,721.8125,1873.5234,725.8125,1863.5234,721.8125,1867.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="721.8125" x2="721.8125" y1="1907.6563" y2="1927.6563"/><polygon fill="#A80036" points="717.8125,1917.6563,721.8125,1927.6563,725.8125,1917.6563,721.8125,1921.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="582.8125" x2="540.8125" y1="1797.3906" y2="1797.3906"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="540.8125" x2="540.8125" y1="1797.3906" y2="1819.3906"/><polygon fill="#A80036" points="536.8125,1809.3906,540.8125,1819.3906,544.8125,1809.3906,540.8125,1813.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="679.8125" x2="721.8125" y1="1797.3906" y2="1797.3906"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="721.8125" x2="721.8125" y1="1797.3906" y2="1819.3906"/><polygon fill="#A80036" points="717.8125,1809.3906,721.8125,1819.3906,725.8125,1809.3906,721.8125,1813.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1765.3906" y2="1785.3906"/><polygon fill="#A80036" points="627.3125,1775.3906,631.3125,1785.3906,635.3125,1775.3906,631.3125,1779.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1506.0371" y2="1530.5146"/><polygon fill="#A80036" points="627.3125,1520.5146,631.3125,1530.5146,635.3125,1520.5146,631.3125,1524.5146" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="803.8125" x2="830.3125" y1="1494.0371" y2="1494.0371"/><polygon fill="#A80036" points="826.3125,1735.3467,830.3125,1745.3467,834.3125,1735.3467,830.3125,1739.3467" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="830.3125" x2="830.3125" y1="1494.0371" y2="1971.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="830.3125" x2="631.3125" y1="1971.6563" y2="1971.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1971.6563" y2="1991.6563"/><polygon fill="#A80036" points="627.3125,1981.6563,631.3125,1991.6563,635.3125,1981.6563,631.3125,1985.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1457.5596" y2="1482.0371"/><polygon fill="#A80036" points="627.3125,1472.0371,631.3125,1482.0371,635.3125,1472.0371,631.3125,1476.0371" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="825.3125" x2="852.3125" y1="1445.5596" y2="1445.5596"/><polygon fill="#A80036" points="848.3125,1729.3467,852.3125,1739.3467,856.3125,1729.3467,852.3125,1733.3467" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852.3125" x2="852.3125" y1="1445.5596" y2="2003.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852.3125" x2="643.3125" y1="2003.6563" y2="2003.6563"/><polygon fill="#A80036" points="653.3125,1999.6563,643.3125,2003.6563,653.3125,2007.6563,649.3125,2003.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1409.082" y2="1433.5596"/><polygon fill="#A80036" points="627.3125,1423.5596,631.3125,1433.5596,635.3125,1423.5596,631.3125,1427.5596" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="672.8125" x2="874.3125" y1="1397.082" y2="1397.082"/><polygon fill="#A80036" points="870.3125,1729.3467,874.3125,1739.3467,878.3125,1729.3467,874.3125,1733.3467" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="874.3125" x2="874.3125" y1="1397.082" y2="2047.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="874.3125" x2="643.3125" y1="2047.6563" y2="2047.6563"/><polygon fill="#A80036" points="653.3125,2043.6563,643.3125,2047.6563,653.3125,2051.6563,649.3125,2047.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="2015.6563" y2="2035.6563"/><polygon fill="#A80036" points="627.3125,2025.6563,631.3125,2035.6563,635.3125,2025.6563,631.3125,2029.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1365.082" y2="1385.082"/><polygon fill="#A80036" points="627.3125,1375.082,631.3125,1385.082,635.3125,1375.082,631.3125,1379.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="2059.6563" y2="2079.6563"/><polygon fill="#A80036" points="627.3125,2069.6563,631.3125,2079.6563,635.3125,2069.6563,631.3125,2073.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.3125" x2="342.3125" y1="2235.9219" y2="2270.9219"/><polygon fill="#A80036" points="338.3125,2260.9219,342.3125,2270.9219,346.3125,2260.9219,342.3125,2264.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="549.3125" x2="549.3125" y1="2235.9219" y2="2270.9219"/><polygon fill="#A80036" points="545.3125,2260.9219,549.3125,2270.9219,553.3125,2260.9219,549.3125,2264.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="549.3125" x2="549.3125" y1="2305.0547" y2="2325.0547"/><polygon fill="#A80036" points="545.3125,2315.0547,549.3125,2325.0547,553.3125,2315.0547,549.3125,2319.0547" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="479.3125" x2="479.3125" y1="2447.3203" y2="2467.3203"/><polygon fill="#A80036" points="475.3125,2457.3203,479.3125,2467.3203,483.3125,2457.3203,479.3125,2461.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619.3125" x2="619.3125" y1="2447.3203" y2="2467.3203"/><polygon fill="#A80036" points="615.3125,2457.3203,619.3125,2467.3203,623.3125,2457.3203,619.3125,2461.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619.3125" x2="619.3125" y1="2501.4531" y2="2521.4531"/><polygon fill="#A80036" points="615.3125,2511.4531,619.3125,2521.4531,623.3125,2511.4531,619.3125,2515.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="500.8125" x2="479.3125" y1="2391.1875" y2="2391.1875"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="479.3125" x2="479.3125" y1="2391.1875" y2="2413.1875"/><polygon fill="#A80036" points="475.3125,2403.1875,479.3125,2413.1875,483.3125,2403.1875,479.3125,2407.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.8125" x2="619.3125" y1="2391.1875" y2="2391.1875"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619.3125" x2="619.3125" y1="2391.1875" y2="2413.1875"/><polygon fill="#A80036" points="615.3125,2403.1875,619.3125,2413.1875,623.3125,2403.1875,619.3125,2407.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="549.3125" x2="549.3125" y1="2359.1875" y2="2379.1875"/><polygon fill="#A80036" points="545.3125,2369.1875,549.3125,2379.1875,553.3125,2369.1875,549.3125,2373.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="413.3125" x2="342.3125" y1="2179.7891" y2="2179.7891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.3125" x2="342.3125" y1="2179.7891" y2="2201.7891"/><polygon fill="#A80036" points="338.3125,2191.7891,342.3125,2201.7891,346.3125,2191.7891,342.3125,2195.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="478.3125" x2="549.3125" y1="2179.7891" y2="2179.7891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="549.3125" x2="549.3125" y1="2179.7891" y2="2201.7891"/><polygon fill="#A80036" points="545.3125,2191.7891,549.3125,2201.7891,553.3125,2191.7891,549.3125,2195.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="816.8125" x2="816.8125" y1="2201.9219" y2="2236.9219"/><polygon fill="#A80036" points="812.8125,2226.9219,816.8125,2236.9219,820.8125,2226.9219,816.8125,2230.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="577.3125" x2="445.8125" y1="2145.7891" y2="2145.7891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="445.8125" x2="445.8125" y1="2145.7891" y2="2167.7891"/><polygon fill="#A80036" points="441.8125,2157.7891,445.8125,2167.7891,449.8125,2157.7891,445.8125,2161.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="685.3125" x2="816.8125" y1="2145.7891" y2="2145.7891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="816.8125" x2="816.8125" y1="2145.7891" y2="2167.7891"/><polygon fill="#A80036" points="812.8125,2157.7891,816.8125,2167.7891,820.8125,2157.7891,816.8125,2161.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="2113.7891" y2="2133.7891"/><polygon fill="#A80036" points="627.3125,2123.7891,631.3125,2133.7891,635.3125,2123.7891,631.3125,2127.7891" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[afafd38710d9a052946de087a4cad58a]
 @startuml
 
 title requestLease4 algorithm (Kea 1.8.0)
@@ -64,7 +64,7 @@ else (no)
     endif
   else (no)
     if (client lease and lease address in allowed pool) then (no)
-      while (iterate over pools and subnect)
+      while (iterate over pools and subnets)
         :pick candidate address;
         if (candidate is reserved for another client) then (no)
           if (candidate is used by another thread) then (no)
@@ -215,7 +215,7 @@ else (no)
     endif
   else (no)
     if (client lease and lease address in allowed pool) then (no)
-      while (iterate over pools and subnect)
+      while (iterate over pools and subnets)
         :pick candidate address;
         if (candidate is reserved for another client) then (no)
           if (candidate is used by another thread) then (no)
index b78b249292ea8b83226732b66cd711c045186162..4cb55b508a614eba3e4b135e701b720b2025cf55 100644 (file)
@@ -63,7 +63,7 @@ else (no)
     endif
   else (no)
     if (client lease and lease address in allowed pool) then (no)
-      while (iterate over pools and subnect)
+      while (iterate over pools and subnets)
         :pick candidate address;
         if (candidate is reserved for another client) then (no)
           if (candidate is used by another thread) then (no)
index f785707690a4006d2ddc14b7c33536c04c620fb7..a2b5ed68449f944a95a2fe10275d224c9e2e0106 100644 (file)
@@ -35,13 +35,13 @@ link relay_network to set_address--><path d="M288.52,567.3092 C294.12,594.7992 3
 link relay_network to relay_class--><path d="M268.91,567.3992 C250.69,587.0392 221.02,619.0092 201.5,640.0392 " fill="none" id="relay_network-&gt;relay_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="197.98,643.8392,207.0376,639.9713,201.3844,640.1773,201.1785,634.5242,197.98,643.8392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="241" y="610.6276">match</text><!--MD5=[44feab40ce9c0df31465bdb13adac7ed]
 link relay_class to found--><path d="M177.97,680.0792 C172.39,705.1692 163,753.6292 163,795.4192 C163,795.4192 163,795.4192 163,1878.4192 C163,1932.4492 543.78,1954.4892 703.15,1961.3492 " fill="none" id="relay_class-&gt;found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="708.26,1961.5692,699.4395,1957.1875,703.2646,1961.3551,699.097,1965.1802,708.26,1961.5692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="164" y="1362.4876">compatible</text><!--MD5=[d5e1893c7bc3c7589901f4b78d6439f0]
 link relay_class to set_address--><path d="M185.6,680.2592 C190.22,698.4992 199.91,727.0992 218,745.0592 C222.9438,749.9667 228.4423,754.4291 234.2844,758.4815 C237.2054,760.5077 240.2123,762.4314 243.2786,764.2571 C244.8117,765.1699 246.3597,766.0582 247.9193,766.9226 C248.6991,767.3547 249.4818,767.7809 250.2669,768.2012 C250.6595,768.4113 251.0527,768.6199 251.4464,768.8271 " fill="none" id="relay_class-&gt;set_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="251.4464,768.8271,245.3441,761.0965,247.0215,766.499,241.6191,768.1764,251.4464,768.8271" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="219" y="741.6276">not compatible</text><!--MD5=[3f679d64a1cccee12b0e824b1733c0ed]
-link set_address to relay_address--><path d="M334.99,796.9892 C334.66,798.9192 327.44,841.3492 322.81,868.5092 " fill="none" id="set_address-&gt;relay_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="321.93,873.7292,327.3899,865.5323,322.7728,868.8008,319.5043,864.1837,321.93,873.7292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="330" y="840.4876">try the relay addreess</text><!--MD5=[9d0435cdb5bba0d446c223c46240db6f]
+link set_address to relay_address--><path d="M334.99,796.9892 C334.66,798.9192 327.44,841.3492 322.81,868.5092 " fill="none" id="set_address-&gt;relay_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="321.93,873.7292,327.3899,865.5323,322.7728,868.8008,319.5043,864.1837,321.93,873.7292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="330" y="840.4876">try the relay address</text><!--MD5=[9d0435cdb5bba0d446c223c46240db6f]
 link relay_address to client_address--><path d="M387.22,891.9192 C434.95,891.9192 498.7,891.9192 547.88,891.9192 " fill="none" id="relay_address-&gt;client_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="552.9,891.9192,543.9,887.9192,547.9,891.9192,543.9,895.9192,552.9,891.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="405.5" y="885.4876">has no relay address</text><!--MD5=[4192df04ddbb3f1e00a57ee174f51cdb]
-link client_address to source_address--><path d="M693.28,891.9192 C740.3,891.9192 802.28,891.9192 851.17,891.9192 " fill="none" id="client_address-&gt;source_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="856.46,891.9192,847.46,887.9192,851.46,891.9192,847.46,895.9192,856.46,891.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="127" x="711.25" y="885.4876">has no client addrss</text><!--MD5=[1cd4e848379fc555ffa76a6d3111f3fb]
+link client_address to source_address--><path d="M693.28,891.9192 C740.3,891.9192 802.28,891.9192 851.17,891.9192 " fill="none" id="client_address-&gt;source_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="856.46,891.9192,847.46,887.9192,851.46,891.9192,847.46,895.9192,856.46,891.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="127" x="711.25" y="885.4876">has no client address</text><!--MD5=[1cd4e848379fc555ffa76a6d3111f3fb]
 link source_address to interface_subnet--><path d="M949.58,910.1292 C979.61,937.9292 1038.68,992.6192 1070.85,1022.4092 " fill="none" id="source_address-&gt;interface_subnet" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1074.63,1025.9092,1070.7255,1016.8674,1070.9543,1022.5196,1065.3021,1022.7484,1074.63,1025.9092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="1017" y="971.4876">no suitable address</text><!--MD5=[a29ca77fdc41863d51ecafa8e32dcb85]
 link relay_address to inRange--><path d="M319,910.0192 C319,937.8592 319,994.7392 319,1042.9192 C319,1042.9192 319,1042.9192 319,1445.9192 C319,1534.9892 608.22,1565.7192 755.69,1575.5992 " fill="none" id="relay_address-&gt;inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="760.87,1575.9392,752.1525,1571.356,755.8808,1575.6104,751.6264,1579.3387,760.87,1575.9392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="320" y="1274.9876">has a relay address</text><!--MD5=[bf38c5431748c4414750c7275409615d]
 link client_address to inRange--><path d="M598.14,910.0992 C565.15,935.1492 511,985.0692 511,1042.9192 C511,1042.9192 511,1042.9192 511,1445.9192 C511,1498.7592 658.41,1540.8992 755.88,1562.9892 " fill="none" id="client_address-&gt;inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="760.78,1564.0892,752.8657,1558.2272,755.8997,1563.0015,751.1254,1566.0356,760.78,1564.0892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="125" x="512" y="1274.9876">has a client address</text><!--MD5=[306377b471c1f30003804df3ba3e4280]
-link source_address to inRange--><path d="M856.74,909.9992 C791.87,929.8492 708,969.6692 708,1042.9192 C708,1042.9192 708,1042.9192 708,1445.9192 C708,1498.6392 760.49,1538.1592 799.27,1560.1592 " fill="none" id="source_address-&gt;inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="803.93,1562.7492,798.0248,1554.8671,799.5653,1560.3101,794.1222,1561.8506,803.93,1562.7492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="709" y="1274.9876">has source addess and use unicast</text><!--MD5=[4c5f9760336ab58778079bb174cbf5f0]
+link source_address to inRange--><path d="M856.74,909.9992 C791.87,929.8492 708,969.6692 708,1042.9192 C708,1042.9192 708,1042.9192 708,1445.9192 C708,1498.6392 760.49,1538.1592 799.27,1560.1592 " fill="none" id="source_address-&gt;inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="803.93,1562.7492,798.0248,1554.8671,799.5653,1560.3101,794.1222,1561.8506,803.93,1562.7492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="709" y="1274.9876">has source address and use unicast</text><!--MD5=[4c5f9760336ab58778079bb174cbf5f0]
 link interface_subnet to not_found--><path d="M1183.41,1061.9192 C1267.54,1080.3992 1380,1113.1092 1380,1155.9192 C1380,1155.9192 1380,1155.9192 1380,1878.4192 C1380,1952.2692 1138.67,1963.6392 1013.06,1964.5692 " fill="none" id="interface_subnet-&gt;not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1007.91,1964.5992,1016.9327,1968.5477,1012.9099,1964.5706,1016.887,1960.5479,1007.91,1964.5992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1381" y="1508.4876">no interface</text><!--MD5=[f6d146b568a537518d52dd0109d2cafd]
 link interface_subnet to interface_class--><path d="M1071.84,1062.1092 C1052.58,1079.2392 1025.46,1107.4692 1014,1138.9192 C998.88,1180.3992 1037.07,1223.3392 1065.19,1248.0092 " fill="none" id="interface_subnet-&gt;interface_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1069.26,1251.5192,1065.0657,1242.6081,1065.4768,1248.25,1059.835,1248.6612,1069.26,1251.5192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="1015" y="1161.9876">match</text><!--MD5=[8c73b6f253b7f8003f1aeec9d3e2c401]
 link interface_subnet to interface_network--><path d="M1109.41,1062.2592 C1127.98,1081.8992 1158.22,1113.8692 1178.12,1134.8992 " fill="none" id="interface_subnet-&gt;interface_network" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1181.71,1138.6992,1178.417,1129.4172,1178.2685,1135.0721,1172.6136,1134.9236,1181.71,1138.6992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="1152" y="1105.4876">no match</text><!--MD5=[8a490629b42afa0a067bde343f0409be]
@@ -118,13 +118,13 @@ relay_network - -> set_address : no match
 relay_network - -> relay_class : match
 relay_class - - -> found : compatible
 relay_class - -> set_address : not compatible
-set_address - -> relay_address : try the relay addreess
+set_address - -> relay_address : try the relay address
 relay_address -r-> client_address : has no relay address
-client_address -r-> source_address : has no client addrss
+client_address -r-> source_address : has no client address
 source_address - -> interface_subnet : no suitable address
 relay_address - -> inRange : has a relay address
 client_address - -> inRange : has a client address
-source_address - -> inRange : has source addess and use unicast
+source_address - -> inRange : has source address and use unicast
 interface_subnet - - -> not_found : no interface
 interface_subnet - -> interface_class : match
 interface_subnet - -> interface_network : no match
@@ -145,7 +145,7 @@ subnet4_select - -> success : CONTINUE and subnet set
 subnet4_select - -> no_subnet : SKIP or subnet not set
 subnet4_select - -> drop : DROP
 
-@endutl
+@enduml
 
 PlantUML version 1.2020.15(Sun Jun 28 13:39:45 CEST 2020)
 (GPL source distribution)
index 99e08a67696e1ef85fd6e255edb8974708f53fae..ed8b65c1e556670c37b53c4d2a0f797ed7831bb5 100644 (file)
@@ -55,13 +55,13 @@ relay_network --> set_address : no match
 relay_network --> relay_class : match
 relay_class ---> found : compatible
 relay_class --> set_address : not compatible
-set_address --> relay_address : try the relay addreess
+set_address --> relay_address : try the relay address
 relay_address -r-> client_address : has no relay address
-client_address -r-> source_address : has no client addrss
+client_address -r-> source_address : has no client address
 source_address --> interface_subnet : no suitable address
 relay_address --> inRange : has a relay address
 client_address --> inRange : has a client address
-source_address --> inRange : has source addess and use unicast
+source_address --> inRange : has source address and use unicast
 interface_subnet ---> not_found : no interface
 interface_subnet --> interface_class : match
 interface_subnet --> interface_network : no match
@@ -82,4 +82,4 @@ subnet4_select --> success : CONTINUE and subnet set
 subnet4_select --> no_subnet : SKIP or subnet not set
 subnet4_select --> drop : DROP
 
-@endutl
+@enduml
index c5d0c430476826c1842caf45ac3e06425061d367..fc8cabdba6705583695928bf5e474f57b46cd56a 100755 (executable)
--- a/hammer.py
+++ b/hammer.py
@@ -284,7 +284,7 @@ def execute(cmd, timeout=60, cwd=None, env=None, raise_error=True, dry_run=False
                 output = ''
             t0 = time.time()
             t1 = time.time()
-            # repeat until process is running or timeout not occured
+            # repeat until process is running or timeout not occurred
             while p.poll() is None and (timeout is None or t1 - t0 < timeout):
                 line = p.stdout.readline()
                 if line:
@@ -297,7 +297,7 @@ def execute(cmd, timeout=60, cwd=None, env=None, raise_error=True, dry_run=False
                         log_file.write(line)
                 t1 = time.time()
 
-            # If no exitcode yet, ie. process is still running then it means that timeout occured.
+            # If no exitcode yet, ie. process is still running then it means that timeout occurred.
             # In such case terminate the process and raise an exception.
             if p.poll() is None:
                 # kill using sudo to be able to kill other sudo commands
index ffb6bfe42e463bcd75fbdf0257cd07516042305b..1827180cd507a7766d8dc5076703fd221382e08c 100644 (file)
@@ -401,7 +401,7 @@ cql_unused_subnet_id_test() {
 }
 
 # Verifies that you can upgrade from an earlier version and
-# that all hosts and options from old host_reseravation table (version 3.0) are
+# that all hosts and options from old host_reservation table (version 3.0) are
 # converted to new schema (version 4.0) with new key partition key and are
 # moved to new hosts table
 cql_upgrade_hosts_test() {
index a6444078c0f625d392f749914f7994721d8c355b..4ed0c18cb302808e04709b0e1203d16ecf7838eb 100644 (file)
@@ -46,7 +46,7 @@ run_statement() {
     qry="$1";shift
     exp_value="${1-}" # Optional value. If not given, replace with empty string.
 
-    # Execute the statment
+    # Execute the statement
     run_command \
         mysql_execute "${qry}"
     value="${OUTPUT}"
@@ -396,7 +396,7 @@ mysql_upgrade_test() {
     count="${OUTPUT}"
     assert_eq 0 "${EXIT_CODE}" "select scope_id from dhcp6_options failed. (expected status code %d, returned %d)"
 
-    #table: DHCPv4 fixed field colums (upgrade 4.1 -> 5.0)
+    #table: DHCPv4 fixed field columns (upgrade 4.1 -> 5.0)
     # verify that hosts table has columns holding values for DHCPv4 fixed fields
     qry="select dhcp4_next_server, dhcp4_server_hostname, dhcp4_boot_file_name, auth_key from hosts";
     run_command \
index 090a601c9ea570c1d2d9f6c0226355677b2c6d4f..b5b3db1b7075a1f0536ef815b8ccb540048d16ae 100644 (file)
@@ -46,7 +46,7 @@ run_statement() {
     qry="$1";shift
     exp_value="${1-}" # Optional value. If not given, replace with empty string.
 
-    # Execute the statment
+    # Execute the statement
     run_command \
         pgsql_execute "${qry}"
     value="${OUTPUT}"
index 189a323b42bbb1128596808098aa0fbc9a1594e8..e5106e502a481fa9b67fb9af6e853e5d69c788dd 100644 (file)
@@ -59,7 +59,7 @@ private:
 
     /// @brief Creates unfinalized stock HTTP response.
     ///
-    /// The unfinilized response is the response that can't be sent over the
+    /// The unfinalized response is the response that can't be sent over the
     /// wire until @c finalize() is called, which commits the contents of the
     /// message body.
     ///
index 65c739825af99eb2dbcd29695b4c284d8b89c794..b83609fb82b2cb9c60340b3a51dc2f23eb2ccd08 100644 (file)
@@ -497,7 +497,7 @@ TEST_F(AgentParserTest, configParseAuth) {
     // Check realm
     EXPECT_EQ("foobar", basic_auth->getRealm());
 
-    // Check credentails
+    // Check credentials
     auto credentials = basic_auth->getCredentialMap();
     EXPECT_EQ(2, credentials.size());
     std::string user;
index f8429fc9c7b8b06cbd864fb2fa884e94108097d5..4dd620d9ac52248446cb4deab67ec7ddd3086504 100644 (file)
@@ -237,7 +237,7 @@ public:
         ConstElementPtr command = createCommand("foo", service);
         ConstElementPtr answer = mgr_.processCommand(command);
 
-        // Stop IO service immediatelly and let the thread die.
+        // Stop IO service immediately and let the thread die.
         getIOService()->stop();
 
         // Wait for the thread to finish.
@@ -402,7 +402,7 @@ TEST_F(CtrlAgentCommandMgrTest, forwardListCommands) {
     ConstElementPtr answer = mgr_.handleCommand("list-commands", ConstElementPtr(),
                                                 command);
 
-    // Stop IO service immediatelly and let the thread die.
+    // Stop IO service immediately and let the thread die.
     getIOService()->stop();
 
     // Wait for the thread to finish.
index 96ee8a9f5eb28000170f7692f112e5558670353f..efbd8c5b13f41b0ac98d3081272e0d6fd3773053 100644 (file)
@@ -596,7 +596,7 @@ TEST(ParserTest, errors) {
 
     // unknown keyword
     testError("{ \"Control-agent\":{\n"
-              " \"topping\": \"Mozarella\" }}\n",
+              " \"topping\": \"Mozzarella\" }}\n",
               ParserContext::PARSER_AGENT,
               "<string>:2.2-10: got unexpected keyword "
               "\"topping\" in Control-agent map.");
index ccef976b6fdc6b7ea3c4ad0128c5206bf2d4843d..878044956d5f3fb876f38f769553d70ae21581d4 100644 (file)
@@ -241,7 +241,7 @@ public:
     /// to the NOT_INITTED state.  This is provided to support reconfiguring
     /// a new listener without losing queued requests.
     ///
-    /// @throw D2QueMgrError if called when the manager state is RUNNING.
+    /// @throw D2QueueMgrError if called when the manager state is RUNNING.
     void removeListener();
 
     /// @brief Returns the number of entries in the queue.
@@ -276,7 +276,7 @@ public:
     ///
     /// @return Pointer reference to the queue entry.
     ///
-    /// @throw D2QueueMgrQueEmpty if there are no entries in the queue.
+    /// @throw D2QueueMgrQueueEmpty if there are no entries in the queue.
     const dhcp_ddns::NameChangeRequestPtr& peek() const;
 
     /// @brief Returns the entry at a given position in the queue.
@@ -302,7 +302,7 @@ public:
 
     /// @brief Removes the entry at the front of the queue.
     ///
-    /// @throw D2QueueMgrQueEmpty if there are no entries in the queue.
+    /// @throw D2QueueMgrQueueEmpty if there are no entries in the queue.
     void dequeue();
 
     /// @brief Adds a request to the end of the queue.
index 8452032cd4203455c36530fb03981992422f6399..7fc8b3d626f5f6aa251ede11d0d7450a16e4b320 100644 (file)
@@ -98,7 +98,7 @@ private:
 
 };
 
-/// @brief Fixture class intended for testin control channel in D2.
+/// @brief Fixture class intended for testing control channel in D2.
 class CtrlChannelD2Test : public ::testing::Test {
 public:
     isc::test::Sandbox sandbox;
index c2a3c8934f5fecfca8af70a476d755088461f1c1..03f47653852c2cc537f6ef73a1d97df16def68c6 100644 (file)
@@ -1061,7 +1061,7 @@ ControlledDhcpv4Srv::ControlledDhcpv4Srv(uint16_t server_port /*= DHCP4_SERVER_P
     // LeaseMgr uses IO service to run asynchronous timers.
     LeaseMgr::setIOService(getIOService());
 
-    // HosrMgr uses IO service to run asynchronous timers.
+    // HostMgr uses IO service to run asynchronous timers.
     HostMgr::setIOService(getIOService());
 
     // These are the commands always supported by the DHCPv4 server.
@@ -1196,7 +1196,7 @@ ControlledDhcpv4Srv::~ControlledDhcpv4Srv() {
         // LeaseMgr uses IO service to run asynchronous timers.
         LeaseMgr::setIOService(IOServicePtr());
 
-        // HosrMgr uses IO service to run asynchronous timers.
+        // HostMgr uses IO service to run asynchronous timers.
         HostMgr::setIOService(IOServicePtr());
     } catch (...) {
         // Don't want to throw exceptions from the destructor. The server
index 8e23f9d1c1d4c61f8a87fc161de13f8862860ed9..993e986afe62c0a11e9144730d46f9920b5b3bae 100644 (file)
@@ -234,7 +234,7 @@ private:
     /// @brief A handler for processing 'dhcp-disable' command.
     ///
     /// @param command command name (ignored).
-    /// @param args aguments for the command. It must be a map and
+    /// @param args arguments for the command. It must be a map and
     /// it may include optional 'max-period' parameter.
     ///
     /// @return result of the command.
index 1678f7d49c6b9de06a3dc912b814ffa25f6c7622..a9644d221c1a56686840324d5dd28bc67f60b851 100644 (file)
@@ -1041,7 +1041,7 @@ protected:
     /// @note The only-if-required flag is related because it avoids
     /// double evaluation (which is not forbidden).
     ///
-    /// @param ex The exchange holding needed informations.
+    /// @param ex The exchange holding needed information.
     void requiredClassify(Dhcpv4Exchange& ex);
 
     /// @brief Perform deferred option unpacking.
index 633a86c2301f5be8a1d7499a815b4ab5db404a01..d36025ebd7719b96f07806bf75ba2a795445b194 100644 (file)
@@ -118,8 +118,8 @@ public:
     /// @brief Sets global parameters before other parameters are parsed.
     ///
     /// This method sets selected global parameters before other parameters
-    /// are parsed. This is important when the bahavior of the parsers
-    /// run later depends on these global paramters.
+    /// are parsed. This is important when the behavior of the parsers
+    /// run later depends on these global parameters.
     ///
     /// Currently this method sets the following global parameters:
     /// - ip-reservations-unique
index 8a578de35853242ad80bd5b1c9489c4e6907ea49..8b992ff4aae6152ec7d4664f435525ad0be8f6d8 100644 (file)
@@ -71,7 +71,7 @@ public:
 
     /// @brief Check statistics.
     ///
-    /// @param bumped True if pkt4-receive-drop shoud have been bumped by one,
+    /// @param bumped True if pkt4-receive-drop should have been bumped by one,
     /// false otherwise.
     void checkStat(bool bumped) {
         ObservationPtr obs = StatsMgr::instance().getObservation("pkt4-receive-drop");
index af0ed0db294cd2b0ef523ec7c5e654bb3f60ddb5..ee19a5f19ed00e93e42920ca2c848c0c2967a7d3 100644 (file)
@@ -74,7 +74,7 @@ protected:
                         }
                     }
 
-                    // Apparently we're looking for one that does not prexist.
+                    // Apparently we're looking for a new one.
                     return (TestConfigBackendDHCPv4Ptr(new TestConfigBackendDHCPv4(params)));
                 });
     }
index 88f14a0757da8336c58957524b0107da5b5fe27d..c697a35803daa8c133d7e720a726b25d9f7c6f69 100644 (file)
@@ -7229,7 +7229,7 @@ TEST_F(Dhcp4ParserTest, dhcpQueueControlInvalid) {
     }
 }
 
-// Checks inheritence of calculate-tee-times, t1-perecent, t2-percent
+// Checks inheritence of calculate-tee-times, t1-percent, t2-percent
 TEST_F(Dhcp4ParserTest, calculateTeeTimesInheritence) {
     // Configure the server. This should succeed.
     string config =
index bd8cccd2a40116494072febdad843d4724e81ffe..176dff5ed9ce8fae99c9a53d2914489ed2af37f9 100644 (file)
@@ -583,7 +583,7 @@ TEST_F(CtrlChannelDhcpv4SrvTest, controlChannelNegative) {
               response);
 }
 
-// Tests that the server properly responds to shtudown command sent
+// Tests that the server properly responds to shutdown command sent
 // via ControlChannel
 TEST_F(CtrlChannelDhcpv4SrvTest, controlChannelShutdown) {
     createUnixChannelServer();
@@ -1290,7 +1290,7 @@ TEST_F(CtrlChannelDhcpv4SrvTest, controlLeasesReclaimRemove) {
     ASSERT_FALSE(lease1);
 }
 
-// Tests that the server properly responds to shtudown command sent
+// Tests that the server properly responds to shutdown command sent
 // via ControlChannel
 TEST_F(CtrlChannelDhcpv4SrvTest, listCommands) {
     createUnixChannelServer();
index e8cb29565b4311da4c1bd1628890a60e42dfcc97..ad3bf498ddf4eb684ff2dc259749552a5988271e 100644 (file)
@@ -294,7 +294,7 @@ TEST_F(Dhcpv4SrvTest, adjustIfaceDataUseRouting) {
     IfaceMgr::instance().openSockets4();
 
     // Create configuration for interfaces. It includes the outbound-interface
-    // setting which indicates that the responses aren't neccessarily sent
+    // setting which indicates that the responses aren't necessarily sent
     // over the same interface via which a request has been received, but routing
     // information is used to determine this interface.
     CfgMgr::instance().clear();
@@ -1412,7 +1412,7 @@ TEST_F(Dhcpv4SrvTest, DiscoverTimers) {
     for (auto test = tests.begin(); test != tests.end(); ++test) {
         {
             SCOPED_TRACE((*test).description_);
-            // Configure sunbet's timer values
+            // Configure subnet's timer values
             subnet_->setT1((*test).cfg_t1_);
             subnet_->setT2((*test).cfg_t2_);
 
@@ -1465,9 +1465,9 @@ TEST_F(Dhcpv4SrvTest, calculateTeeTimers) {
         Triplet<uint32_t> cfg_t1_;
         // configured value for subnet's T1
         Triplet<uint32_t> cfg_t2_;
-        // configured value for sunbet's t1_percent.
+        // configured value for subnet's t1_percent.
         double t1_percent_;
-        // configured value for sunbet's t2_percent.
+        // configured value for subnet's t2_percent.
         double t2_percent_;
         // expected value for T1 in server response.
         // A value of 0 means server should not have sent T1.
@@ -1529,7 +1529,7 @@ TEST_F(Dhcpv4SrvTest, calculateTeeTimers) {
     for (auto test = tests.begin(); test != tests.end(); ++test) {
         {
             SCOPED_TRACE((*test).description_);
-            // Configure sunbet's timer values
+            // Configure subnet's timer values
             subnet_->setT1((*test).cfg_t1_);
             subnet_->setT2((*test).cfg_t2_);
 
@@ -3558,7 +3558,7 @@ TEST_F(Dhcpv4SrvTest, clientPoolClassifyUnknown) {
     OptionPtr clientid = generateClientId();
     dis->addOption(clientid);
 
-    // Set harware address / identifier
+    // Set hardware address / identifier
     const HWAddr& hw = HWAddr::fromText("00:00:00:11:22:33");
     HWAddrPtr hw_addr(new HWAddr(hw));
     dis->setHWAddr(hw_addr);
index 10d8a3bcd73ca1bafeea276829c4dada4f54e4c1..228876dfd5d88d33db052be08a032b0fb745b90d 100644 (file)
@@ -685,7 +685,7 @@ Dhcpv4SrvTest::configureWithStatus(const std::string& config, NakedDhcpv4Srv& sr
     try {
         json = parseJSON(config);
     } catch (const std::exception& ex){
-        // Fatal falure on parsing error
+        // Fatal failure on parsing error
 
         std::stringstream tmp;
         tmp << "parsing failure:"
@@ -704,7 +704,7 @@ Dhcpv4SrvTest::configureWithStatus(const std::string& config, NakedDhcpv4Srv& sr
     EXPECT_NO_THROW(status = configureDhcp4Server(srv, json));
     EXPECT_TRUE(status);
     if (!status) {
-        return (make_pair(-1, "configureDhcp4Server didn't return anythin"));
+        return (make_pair(-1, "configureDhcp4Server didn't return anything"));
     }
 
     int rcode;
index ea3fcd479bfc33a8d5fe9c2c91dd4b66e0072bbc..d7c7153e6e17b2b212445256a8793679e9d336d0 100644 (file)
@@ -114,7 +114,7 @@ public:
         }
 
         if (enable_throw_) {
-            isc_throw(Unexpected, "testing if exceptions are corectly handled");
+            isc_throw(Unexpected, "testing if exceptions are correctly handled");
         }
     }
 
@@ -321,7 +321,7 @@ public:
             if (throw_during_fetch) {
                 expected = "{ \"result\": 1, \"text\": ";
                 expected += "\"On demand configuration update failed: ";
-                expected += "testing if exceptions are corectly handled\" }";
+                expected += "testing if exceptions are correctly handled\" }";
             } else {
                 expected = "{ \"result\": 0, \"text\": ";
                 expected += "\"On demand configuration update successful.\" }";
index 1a791407df77b1c3babf359b14b49a7860e005c6..90b2a67ff350be27d5383a227d0c1f7fa37dd59b 100644 (file)
@@ -1034,7 +1034,7 @@ public:
     typedef enum AuthoritativeFlag {
         AUTH_DEFAULT, // explicit value not specified (use default)
         AUTH_YES,     // defined explicitly as yes
-        AUTH_NO       // defined explciitly as no
+        AUTH_NO       // defined explicitly as no
     } AuthoritativeFlag;
 
     /// @brief Returns subnet having specified address in range.
@@ -1272,9 +1272,9 @@ public:
     ///   - first subnet: authoritative (subnet1 flag here)
     ///   - second subnet: authoritative (subnet2 flag here)
     ///
-    /// @param global coverns presence/value of global authoritative flag
-    /// @param subnet1 coverns presence/value of authoritative flag in subnet1
-    /// @param subnet2 coverns presence/value of authoritative flag in subnet2
+    /// @param global governs presence/value of global authoritative flag
+    /// @param subnet1 governs presence/value of authoritative flag in subnet1
+    /// @param subnet2 governs presence/value of authoritative flag in subnet2
     string generateAuthConfig(AuthoritativeFlag global, AuthoritativeFlag subnet1,
                               AuthoritativeFlag subnet2) {
         string cfg = "{"
@@ -2010,7 +2010,7 @@ TEST_F(Dhcpv4SharedNetworkTest, matchClientId) {
     ASSERT_TRUE(resp2);
     ASSERT_EQ(DHCPACK, resp2->getType());
 
-    // The lease should get rewnewed.
+    // The lease should get renewed.
     EXPECT_EQ(resp2->getYiaddr().toText(), resp1->getYiaddr().toText());
 }
 
index 10c09e8882041e984dc922480d1e3609fc3a1e75..c57f97d9a29b825b6a06eb817106b62022080498 100644 (file)
@@ -13,7 +13,7 @@
 //               Unfortunately, its definition is blurry, so there are many
 //               similar, but not exact implementations that do things in
 //               different ways.
-// vivco (124) - vendor indepdent vendor class option.
+// vivco (124) - vendor independent vendor class option.
 // class identifier (60) - not exactly vendor specific. It's a string, but the
 //               content of that string identifies what kind of vendor device
 //               this is.
index 715f5aa70aad5bbfefeb95b8854a72777878cad5..7fed6c5c57f0c3cc6e452a04947bec9fb4bf7174 100644 (file)
@@ -1080,7 +1080,7 @@ ControlledDhcpv6Srv::ControlledDhcpv6Srv(uint16_t server_port,
     // LeaseMgr uses IO service to run asynchronous timers.
     LeaseMgr::setIOService(getIOService());
 
-    // HosrMgr uses IO service to run asynchronous timers.
+    // HostMgr uses IO service to run asynchronous timers.
     HostMgr::setIOService(getIOService());
 
     // These are the commands always supported by the DHCPv6 server.
@@ -1215,7 +1215,7 @@ ControlledDhcpv6Srv::~ControlledDhcpv6Srv() {
         // LeaseMgr uses IO service to run asynchronous timers.
         LeaseMgr::setIOService(IOServicePtr());
 
-        // HosrMgr uses IO service to run asynchronous timers.
+        // HostMgr uses IO service to run asynchronous timers.
         HostMgr::setIOService(IOServicePtr());
     } catch (...) {
         // Don't want to throw exceptions from the destructor. The server
index 85ab5792639300ebca2b79c6f569d2cd0480787b..d8ab7bd34977df5f732f1fefad77024ef98be325 100644 (file)
@@ -234,7 +234,7 @@ private:
     /// @brief A handler for processing 'dhcp-disable' command.
     ///
     /// @param command command name (ignored).
-    /// @param args aguments for the command. It must be a map and
+    /// @param args arguments for the command. It must be a map and
     /// it may include optional 'max-period' parameter.
     ///
     /// @return result of the command.
index d72ef8b94831f520c25366cf16e163a616213cc1..a89d0504e0b0fca598017970c0f0fe9f2fe6ede4 100644 (file)
@@ -859,7 +859,7 @@ protected:
     /// double evaluation (which is not forbidden).
     ///
     /// @param pkt packet to be classified
-    /// @param ctx allocation context where to get informations
+    /// @param ctx allocation context where to get information
     void requiredClassify(const Pkt6Ptr& pkt, AllocEngine::ClientContext6& ctx);
 
     /// @brief Attempts to get a MAC/hardware address using configured sources
index 943042ca37d76eb3a90f59cc8afaa4fe8a481584..8faa100a2478d795fbb1cea42767755c41a7b1df 100644 (file)
@@ -206,8 +206,8 @@ public:
     /// @brief Sets global parameters before other parameters are parsed.
     ///
     /// This method sets selected global parameters before other parameters
-    /// are parsed. This is important when the bahavior of the parsers
-    /// run later depends on these global paramters.
+    /// are parsed. This is important when the behavior of the parsers
+    /// run later depends on these global parameters.
     ///
     /// Currently this method sets the following global parameters:
     /// - ip-reservations-unique
index aeae1a632d9c6f8c7df2b24c7dae0047cff0d627..7d92055c91a01b709346f61508e971b521ce614c 100644 (file)
@@ -56,7 +56,7 @@ public:
 
     /// @brief Check statistics.
     ///
-    /// @param bumped True if pkt6-receive-drop shoud have been bumped by one,
+    /// @param bumped True if pkt6-receive-drop should have been bumped by one,
     /// false otherwise.
     void checkStat(bool bumped) {
         ObservationPtr obs = StatsMgr::instance().getObservation("pkt6-receive-drop");
index 687a9f4e7403ee3628fb41ea0c6442d0fd00360a..c46521bbf4c9ae3dd6c0dcdd410a23ea7b6a5205 100644 (file)
@@ -76,7 +76,7 @@ protected:
                         }
                     }
 
-                    // Apparently we're looking for one that does not prexist.
+                    // Apparently we're looking for a new one.
                     return (TestConfigBackendDHCPv6Ptr(new TestConfigBackendDHCPv6(params)));
                 });
     }
index 208b6687e567ddd7d99171c11fc9cb63f2510169..e5ceccb78cf6084c110754f51fd1aeac959a12f0 100644 (file)
@@ -1509,7 +1509,7 @@ TEST_F(Dhcp6ParserTest, multipleSubnetsExplicitIDs) {
     } while (++cnt < 3);
 }
 
-// CHeck that the configuration with two subnets having the same id is rejected.
+// Check that the configuration with two subnets having the same ID is rejected.
 TEST_F(Dhcp6ParserTest, multipleSubnetsOverlappingIDs) {
     ConstElementPtr x;
     // Four subnets, two of them have the same id.
@@ -6949,7 +6949,7 @@ TEST_F(Dhcp6ParserTest, sharedNetworksDerive) {
     CfgSharedNetworks6Ptr cfg_net = CfgMgr::instance().getStagingCfg()
         ->getCfgSharedNetworks6();
 
-    // Two shared networks are expeced.
+    // Two shared networks are expected.
     ASSERT_TRUE(cfg_net);
     const SharedNetwork6Collection* nets = cfg_net->getAll();
     ASSERT_TRUE(nets);
@@ -7059,7 +7059,7 @@ TEST_F(Dhcp6ParserTest, sharedNetworksDeriveInterfaces) {
     CfgSharedNetworks6Ptr cfg_net = CfgMgr::instance().getStagingCfg()
         ->getCfgSharedNetworks6();
 
-    // Two shared networks are expeced.
+    // Two shared networks are expected.
     ASSERT_TRUE(cfg_net);
     const SharedNetwork6Collection* nets = cfg_net->getAll();
     ASSERT_TRUE(nets);
@@ -7247,7 +7247,7 @@ TEST_F(Dhcp6ParserTest, sharedNetworksRapidCommit) {
     CfgSharedNetworks6Ptr cfg_net = CfgMgr::instance().getStagingCfg()
         ->getCfgSharedNetworks6();
 
-    // Two shared networks are expeced.
+    // Two shared networks are expected.
     ASSERT_TRUE(cfg_net);
     const SharedNetwork6Collection* nets = cfg_net->getAll();
     ASSERT_TRUE(nets);
index 2efa23bdb468c6894968f2842e3272de4d51c422..ca9f4c981af8b096ecd8b4e5b9be5d297600b168 100644 (file)
@@ -600,7 +600,7 @@ TEST_F(CtrlChannelDhcpv6SrvTest, controlChannelNegative) {
               response);
 }
 
-// Tests that the server properly responds to shtudown command sent
+// Tests that the server properly responds to shutdown command sent
 // via ControlChannel
 TEST_F(CtrlChannelDhcpv6SrvTest, controlChannelShutdown) {
     createUnixChannelServer();
@@ -1319,7 +1319,7 @@ TEST_F(CtrlChannelDhcpv6SrvTest, controlChannelStats) {
               response);
 }
 
-// Tests that the server properly responds to shtudown command sent
+// Tests that the server properly responds to shutdown command sent
 // via ControlChannel
 TEST_F(CtrlChannelDhcpv6SrvTest, listCommands) {
     createUnixChannelServer();
index 9053d70121aeefbf4324f4d55fa62f21d8d25a32..01757f6de79515b198e9641f54c5448d95aeffda 100644 (file)
@@ -16,7 +16,7 @@ namespace isc {
 namespace dhcp {
 namespace test {
 
-/// @brief Base class for test fixure classes used to validate the DHCPv6
+/// @brief Base class for test fixture classes used to validate the DHCPv6
 /// message processing by the server.
 class Dhcpv6MessageTest : public Dhcpv6SrvTest {
 public:
index 5284cfcf9340acf73d56e9731045d710a6399526..f9881a34d4c15b818028741444ecc3bda23f4989 100644 (file)
@@ -3304,9 +3304,9 @@ TEST_F(Dhcpv6SrvTest, calculateTeeTimers) {
         Triplet<uint32_t> cfg_t2_;
         // whether or not calculation is enabled
         bool calculate_tee_times;
-        // configured value for sunbet's t1_percent.
+        // configured value for subnet's t1_percent.
         double t1_percent_;
-        // configured value for sunbet's t2_percent.
+        // configured value for subnet's t2_percent.
         double t2_percent_;
         // expected value for T1 in server response.
         // A value of 0 means server should not have sent T1.
@@ -3423,7 +3423,7 @@ TEST_F(Dhcpv6SrvTest, calculateTeeTimers) {
     for (auto test = tests.begin(); test != tests.end(); ++test) {
         {
             SCOPED_TRACE((*test).description_);
-            // Configure sunbet for the scenario
+            // Configure subnet for the scenario
             subnet_->setT1((*test).cfg_t1_);
             subnet_->setT2((*test).cfg_t2_);
             subnet_->setCalculateTeeTimes((*test).calculate_tee_times);
index a3e0a291fcb031abd1121057eb2efb5524b90135..dc353ba8bdd33bb7512a50616aaab7250c91d478 100644 (file)
@@ -1713,7 +1713,7 @@ TEST_F(HooksDhcpv6SrvTest, subnet6Select) {
 
 // This test checks if callout installed on subnet6_select hook point can pick
 // a different subnet.
-TEST_F(HooksDhcpv6SrvTest, subnet6SselectChange) {
+TEST_F(HooksDhcpv6SrvTest, subnet6SelectChange) {
 
     // Configure 2 subnets, both directly reachable over local interface
     // (let's not complicate the matter with relays)
index 696635b9f2c163d913de68eb7acec55624c7d38b..5a24578991aab9ad93eeb0495272c81b3fd549a8 100644 (file)
@@ -111,7 +111,7 @@ public:
         }
 
         if (enable_throw_) {
-            isc_throw(Unexpected, "testing if exceptions are corectly handled");
+            isc_throw(Unexpected, "testing if exceptions are correctly handled");
         }
     }
 
@@ -308,7 +308,7 @@ public:
             if (throw_during_fetch) {
                 expected = "{ \"result\": 1, \"text\": ";
                 expected += "\"On demand configuration update failed: ";
-                expected += "testing if exceptions are corectly handled\" }";
+                expected += "testing if exceptions are correctly handled\" }";
             } else {
                 expected = "{ \"result\": 0, \"text\": ";
                 expected += "\"On demand configuration update successful.\" }";
index 8bd0d26f6404f689976b873c0924b0b4f86cb927..a23aab36cf40cfe835722e2e60d790d7f4047def 100644 (file)
@@ -1366,9 +1366,9 @@ public:
     ///
     /// @param config - text version of the configuration to be tested
     /// @param enabled - true = rapid-commit is expected to work
-    /// @param exp_addr1 - an eddress the first client is expected to get (if
+    /// @param exp_addr1 - an address the first client is expected to get (if
     ///                    rapid-commit is enabled).
-    /// @param exp_addr2 - an eddress the second client is expected to get (if
+    /// @param exp_addr2 - an address the second client is expected to get (if
     ///                    rapid-commit is enabled).
     void testRapidCommit(const std::string& config, bool enabled,
                          const std::string& exp_addr1,
@@ -1552,7 +1552,7 @@ TEST_F(Dhcpv6SharedNetworkTest, addressPoolInSharedNetworkShortage) {
     });
     ASSERT_TRUE(hasLeaseForAddress(client2, IOAddress("2001:db8:2::20")));
 
-    // Cient #3. It sends Solicit which should result in NoAddrsAvail status
+    // Client #3. It sends Solicit which should result in NoAddrsAvail status
     // code because all addresses available for this link have been assigned.
     Dhcp6Client client3(client1.getServer());
     client3.setInterface("eth1");
@@ -2290,7 +2290,7 @@ TEST_F(Dhcpv6SharedNetworkTest, relaySpecifiedForEachSubnet) {
 // Shared network is selected based on interface id.
 TEST_F(Dhcpv6SharedNetworkTest, sharedNetworkSelectedByInterfaceId) {
     // Create client #1. This is a relayed client for which interface id
-    // has been spefified and this interface id is matching the one specified
+    // has been specified and this interface id is matching the one specified
     // for the shared network.
     Dhcp6Client client1;
     client1.useRelay(true, IOAddress("3001::1"));
@@ -2323,7 +2323,7 @@ TEST_F(Dhcpv6SharedNetworkTest, sharedNetworkSelectedByInterfaceId) {
 // belonging to a shared network.
 TEST_F(Dhcpv6SharedNetworkTest, sharedNetworkSelectedByInterfaceIdInSubnet) {
     // Create client #1. This is a relayed client for which interface id
-    // has been spefified and this interface id is matching the one specified
+    // has been specified and this interface id is matching the one specified
     // for the shared network.
     Dhcp6Client client1;
     client1.useRelay(true, IOAddress("3001::1"));
index 367433d2d67c8996e9a3ffefa1cd018f40767704..c3cb969296d9a42db3c784332e697b4ad66001cc 100644 (file)
@@ -102,7 +102,7 @@ public:
         // Do the actual 4-way exchange.
         ASSERT_NO_THROW(client.doSARR());
 
-        // Make sure that we go the expectec number of leases.
+        // Make sure that we go the expected number of leases.
         ASSERT_EQ(exp_leases, client.getLeaseNum());
 
         // Simulate aging of leases, by moving their cltt_ back by 1000s.
@@ -195,7 +195,7 @@ TEST_F(TeeTest, defaultTimers) {
     EXPECT_EQ(2400, actual_t2);
 }
 
-// This test verifies that custom percentags for T1 and T2
+// This test verifies that custom percentages for T1 and T2
 // can be used for calculation.
 TEST_F(TeeTest, calculateTimers) {
     Dhcp6Client client;
index 3c3b93fa8f08dca72fd7511dbabb9e8869033a8a..ea1fecfcbaacc59ac82f086bbbbfdc1905089fd8 100644 (file)
@@ -238,7 +238,7 @@ to process ${proc_name}, PID ${_pid}."
     fi
 }
 
-# Print Kea daemon verison
+# Print Kea daemon version
 print_version() {
     name=${1}
     binary_path=${2}
index aa0fac8ad530c5aa7e75472ba5ea12a6012e6170..33ff119ad718b281cae9e2fb8c7baa2d5fa20dc7 100644 (file)
@@ -50,7 +50,7 @@ CA_CFG_FILE="@abs_top_builddir@/src/bin/keactrl/tests/${CA_CFG_FILE_NAME}.json"
 # Names for Netconf
 NC_CFG_FILE_NAME="nc_test_config.conf"
 NC_CFG_FILE="@abs_top_builddir@/src/bin/keactrl/tests/${NC_CFG_FILE_NAME}.json"
-# Configuration files for all deamons.
+# Configuration files for all daemons.
 CFG_FILES="kea_dhcp4_config_file=${DHCP4_CFG_FILE}\n\
 kea_dhcp6_config_file=${DHCP6_CFG_FILE}\n\
 kea_dhcp_ddns_config_file=${D2_CFG_FILE}\n\
index 34620c636808606ea1c60b6ac4ec577ddd2332ff..6f8ab0f31a9233298afae35739a8731a826378f5 100644 (file)
@@ -228,19 +228,19 @@ private:
 
     /// @brief The boot-update flag.
     ///
-    /// If true (the defaul) Kea server configuration is updated at (netconf
+    /// If true (the default) Kea server configuration is updated at (netconf
     /// agent) boot time.
     bool boot_update_;
 
     /// @brief The subscribe-changes flag.
     ///
-    /// If true (the deault) the netconf agent subscribes module changes
+    /// If true (the default) the netconf agent subscribes module changes
     /// so will be notified when the YANG running configuration is changed.
     bool subscribe_changes_;
 
     /// @brief The validate-changes flag.
     ///
-    /// If true (the deault) the netconf agent validates module changes
+    /// If true (the default) the netconf agent validates module changes
     /// and can reject bad configurations.
     bool validate_changes_;
 
index 7e387f07d68eb9287b6ed0ba0e3efe53ceaa062f..b6b81f6fafe0522bd5674bd85f3a8ecfae2e8e5e 100644 (file)
@@ -655,7 +655,7 @@ TEST(ParserTest, errors) {
 
     // unknown keyword
     testError("{ \"Netconf\":{\n"
-              " \"topping\": \"Mozarella\" }}\n",
+              " \"topping\": \"Mozzarella\" }}\n",
               ParserContext::PARSER_NETCONF,
               "<string>:2.2-10: got unexpected keyword "
               "\"topping\" in Netconf map.");
index 1088976831bcfcd97f2829ab8e4c51649c1f3c2d..a8ace144b37f69f94eff32ce1a7a02e0bfa1aac9 100644 (file)
@@ -49,7 +49,7 @@ public:
 
 protected:
     CommandOptions& options_; ///< Reference to commandline options.
-    TestControl tc_;  ///< Object for controling sending and receiving packets.
+    TestControl tc_;  ///< Object for controlling sending and receiving packets.
 
     // Helper fields to avoid checking IP version each time an exchange type
     // is needed.
index df394c50f2df0e6cddcf9aadca66f95cad443922..3e80b01e4e971d0773329ae69124567e3c91aeb4 100644 (file)
@@ -97,13 +97,13 @@ AvalancheScen::run() {
     // First indicated number of DISCOVER packets eg. 4000 are sent.
     // Then in a loop responses to received packets (this is
     // consumeReceivedPackets()) are sent and then for every 200ms it is checked
-    // if reponses to sent packets were received. If not packets are resent.
+    // if responses to sent packets were received. If not packets are resent.
     // This happens in resendPackets() method. For each packet it is checked
     // how many times it was already resent and then back off time is calculated:
     // 1, 2, 4, 8, 16, 64 (max) seconds. If estimated time has elapsed
     // from previous sending then the packet is resent. Some stats are collected
-    // and printed during runtime. The whole procedure is stopeed when
-    // all packets got reponses.
+    // and printed during runtime. The whole procedure is stoped when
+    // all packets got responses.
 
     uint32_t clients_num = options_.getClientsNum() == 0 ?
         1 : options_.getClientsNum();
index 932b26d7b608b3459f3de8cd7f5634025447f34b..766453d2e0b97a309554909ee295f9ccdd1b25f9 100644 (file)
@@ -30,7 +30,7 @@ struct EnumClassHash
 /// \brief Avalanche Scenario class.
 ///
 /// This class is used to run the performance test where DHCP server
-/// is first loaded with indicated bumer of Discover or Solicit messages
+/// is first loaded with indicated buffer of Discover or Solicit messages
 /// and then the class is waiting till receiving all required responses.
 /// Full DORA and SARR message sequences are expected.
 class AvalancheScen : public AbstractScen {
index 152342627098619d7f7eb51a4b1c22b98428ee6b..5bb9767af42ba054ca6b49820182644c1030e4f4 100644 (file)
@@ -220,7 +220,7 @@ public:
 
     /// \brief Returns time to wait for elapsed time increase.
     ///
-    /// \return how long perfdhp will wait before start sending
+    /// \return how long perfdhcp will wait before start sending
     /// messages with increased elapsed time.
     int getWaitForElapsedTime() const { return wait_for_elapsed_time_; }
 
@@ -629,7 +629,7 @@ private:
     /// Test period in seconds.
     int period_;
 
-    // for how long perfdhcp will wait before start senging
+    // for how long perfdhcp will wait before start sending
     // messages with increased elapsed time.
     int wait_for_elapsed_time_;
 
index 59549ef2db53636fd34247e3c48160a03895e624..b6a42a3f1d2e0f49e9d418c45305691bfe7563ea 100644 (file)
@@ -102,12 +102,12 @@ Receiver::readPktFromSocket() {
     PktPtr pkt;
     uint32_t timeout;
     if (single_threaded_) {
-        // In case of single thread just check socket and if empty exit immediatelly
+        // In case of single thread just check socket and if empty exit immediately
         // to not slow down sending part.
         timeout = 0;
     } else {
         // In case of multi thread wait for packets a little bit (1ms) as it is run
-        // in separate thread and do not interefere with sending thread.
+        // in separate thread and do not interfere with sending thread.
         timeout = 1000;
     }
     try {
index 82bc759d16f310987b7c46f345ec09698d71ccef..bfb6e0d070cac2b5c7e402b0bd3faea6e754f396 100644 (file)
 namespace isc {
 namespace perfdhcp {
 
-/// \brief A receviving DHCP packets class.
+/// \brief A receiving DHCP packets class.
 ///
 /// Receiver can be used in two modes: single-thread and multi-thread.
 ///
 /// In single-thread mode the class directly reads packets from socket
 /// and returns them to consumer using getPkt method.
 ///
-/// In case of multi-thread mode the class starts a thread in backgroud.
+/// In case of multi-thread mode the class starts a thread in the background.
 /// The thread reads the packets and pushes them to pkt_queue_. Then
 /// in main thread packets can be consumed from the queue using getPkt
 /// method.
index 7fcd4e67c6328418c195e012f96d089b36b4a9b1..08e8b0ea7b679f1bb57f27a3a1570836a5990398 100644 (file)
@@ -228,7 +228,7 @@ TEST_F(AvalancheScenTest, Packet4Exchange) {
 
     as.run();
 
-    // Check if basic exchange of packets happend. No retransmissions expected.
+    // Check if basic exchange of packets happened. No retransmissions expected.
     EXPECT_EQ(as.total_resent_, 0);
     EXPECT_EQ(as.fake_sock_.sent_cnt_, 20); // Discovery + Request
     EXPECT_EQ(as.tc_.getStatsMgr().getSentPacketsNum(ExchangeType::DO), 10);
@@ -245,7 +245,7 @@ TEST_F(AvalancheScenTest, Packet4ExchangeOnlyDO) {
 
     as.run();
 
-    // Check if DO exchange of packets happend only. No retransmissions expected.
+    // Check if DO exchange of packets happened only. No retransmissions expected.
     EXPECT_EQ(as.total_resent_, 0);
     EXPECT_EQ(as.fake_sock_.sent_cnt_, 10); // Discovery + Request
     EXPECT_EQ(as.tc_.getStatsMgr().getSentPacketsNum(ExchangeType::DO), 10);
@@ -262,7 +262,7 @@ TEST_F(AvalancheScenTest, Packet4ExchangeWithRetransmissions) {
     as.fake_sock_.initial_drops_cnt_ = 2;
     as.run();
 
-    // Check if basic exchange of packets happend. No retransmissions expected.
+    // Check if basic exchange of packets happened. No retransmissions expected.
     EXPECT_EQ(as.total_resent_, 2);
     EXPECT_EQ(as.fake_sock_.sent_cnt_, 22); // Discovery + Request
     EXPECT_EQ(as.tc_.getStatsMgr().getSentPacketsNum(ExchangeType::DO), 10);
@@ -279,7 +279,7 @@ TEST_F(AvalancheScenTest, Packet6Exchange) {
 
     as.run();
 
-    // Check if basic exchange of packets happend. No retransmissions expected.
+    // Check if basic exchange of packets happened. No retransmissions expected.
     EXPECT_EQ(as.total_resent_, 0);
     EXPECT_GE(as.fake_sock_.sent_cnt_, 20); // Solicit + Request
     EXPECT_GE(as.tc_.getStatsMgr().getSentPacketsNum(ExchangeType::SA), 10);
@@ -296,7 +296,7 @@ TEST_F(AvalancheScenTest, Packet6ExchangeOnlySA) {
 
     as.run();
 
-    // Check if SA exchange of packets happend only. No retransmissions expected.
+    // Check if SA exchange of packets happened only. No retransmissions expected.
     EXPECT_EQ(as.total_resent_, 0);
     EXPECT_GE(as.fake_sock_.sent_cnt_, 10); // Solicit + Request
     EXPECT_GE(as.tc_.getStatsMgr().getSentPacketsNum(ExchangeType::SA), 10);
@@ -313,7 +313,7 @@ TEST_F(AvalancheScenTest, Packet6ExchangeWithRetransmissions) {
     as.fake_sock_.initial_drops_cnt_ = 2;
     as.run();
 
-    // Check if basic exchange of packets happend. No retransmissions expected.
+    // Check if basic exchange of packets happened. No retransmissions expected.
     EXPECT_EQ(as.total_resent_, 2);
     EXPECT_EQ(as.fake_sock_.sent_cnt_, 22); // Discovery + Request
     EXPECT_EQ(as.tc_.getStatsMgr().getSentPacketsNum(ExchangeType::SA), 10);
index 7805b9c4418823b54eed407b8074b82e9b543c98..695ff7d78ea72f95ea05e4f2cfa91f4848bc5537 100644 (file)
@@ -509,7 +509,7 @@ public:
         tc.setTransidGenerator(generator);
         for (int i = 0; i < iterations_num; ++i) {
             // Get next transaction id, without actually using it. The same
-            // id wll be used by the TestControl class for DHCPDISCOVER.
+            // id will be used by the TestControl class for DHCPDISCOVER.
             uint32_t transid = generator->getNext();
             if (use_templates) {
                 tc.sendDiscover4(tc.getTemplateBuffer(0));
@@ -1736,7 +1736,7 @@ TEST_F(TestControlTest, createRelease) {
 // Test checks if sendDiscover really includes custom options
 TEST_F(TestControlTest, sendDiscoverExtraOpts) {
 
-    // Important paramters here:
+    // Important parameters here:
     // -xT - save first packet of each type for templates (useful for packet inspection)
     // -o 200,abcdef1234 - send option 200 with hex content: ab:cd:ef:12:34
     // -o 201,00 - send option 201 with hex content: 00
@@ -1763,7 +1763,7 @@ TEST_F(TestControlTest, sendDiscoverExtraOpts) {
 // Test checks if regular packet exchange inserts the extra v4 options
 // specified on command line.
 TEST_F(TestControlTest, Packet4ExchangeExtraOpts) {
-    // Important paramters here:
+    // Important parameters here:
     // -xT - save first packet of each type for templates (useful for packet inspection)
     // -o 200,abcdef1234 - send option 200 with hex content: ab:cd:ef:12:34
     // -o 201,00 - send option 201 with hex content: 00
@@ -1798,7 +1798,7 @@ TEST_F(TestControlTest, Packet4ExchangeExtraOpts) {
 // Test checks if regular packet exchange inserts the extra v6 options
 // specified on command line.
 TEST_F(TestControlTest, Packet6ExchangeExtraOpts) {
-    // Important paramters here:
+    // Important parameters here:
     // -xT - save first packet of each type for templates (useful for packet inspection)
     // -o 200,abcdef1234 - send option 200 with hex content: ab:cd:ef:12:34
     // -o 201,00 - send option 201 with hex content: 00
@@ -1837,7 +1837,7 @@ TEST_F(TestControlTest, Packet6ExchangeExtraOpts) {
 // Test checks if multiple v4 PRL options can be sent. They should be merged
 // into a single PRL option by perfdhcp.
 TEST_F(TestControlTest, sendDiscoverMultiplePRLs) {
-    // Important paramters here:
+    // Important parameters here:
     // -o 55,1234 - send option 55 with hex content '1234'
     // -o 55,abcd - send option 55 with hex content 'abcd'
     CommandOptions opt;
index f229040857f56f76149c2cdff6815165e2931445..d55fc6181d03786d9cf1c3f12683d498e2b91b51 100644 (file)
@@ -71,7 +71,7 @@ def shell_body():
                         help='Timeout (in seconds) when attempting to '
                         'connect to CA (default: 10)')
     parser.add_argument('--service', nargs="?", action="append",
-                        help='target spcified service. If not specified,'
+                        help='target specified service. If not specified,'
                         'control agent will receive command.')
     parser.add_argument('--auth-user', type=auth8, default='',
                         help='Basic HTTP authentication user')
index f92e7ae7ebe7af53ccd3103cbe5684fb64ba407e..a7a68689b9662d0fce47e6115e6e28abee9169f8 100644 (file)
@@ -273,7 +273,7 @@ private:
     /// @brief Parse an option config.
     ///
     /// @param option The element with option config.
-    /// @throw BadValue and similar exceptionson error.
+    /// @throw BadValue and similar exceptions on error.
     void parseOptionConfig(isc::data::ConstElementPtr option);
 
 };
index 7f686f4274d9024e75a403cde2de224c738dae57..6343f22fe6657c9e21d2e6b7fec09fecd004e298 100644 (file)
@@ -56,7 +56,7 @@ namespace ha {
 /// It must also run @c poke when the lease update is successful.
 ///
 /// The @c poke method sets the "last poke time" to current time, thus
-/// indicating that the connection is healty. The @c getDurationInMillisecs
+/// indicating that the connection is healthy. The @c getDurationInMillisecs
 /// method is used to check for how long the server hasn't been able
 /// to communicate with the partner. This duration is simply a time
 /// elapsed since last successful poke time. If this duration becomes
@@ -172,7 +172,7 @@ public:
     ///
     /// This method checks if the communication with the partner appears
     /// to be interrupted. This is the case when the time since last
-    /// successful communication is longer than the confgured
+    /// successful communication is longer than the configured
     /// max-response-delay value.
     ///
     /// @return true if communication is interrupted, false otherwise.
@@ -227,7 +227,7 @@ public:
     /// Returning true in that case simplifies the code of the
     /// @c HAService which doesn't need to check if the failure detection
     /// is enabled or not. It simply calls this method in the
-    /// 'communications interrupted' situtation to check if the
+    /// 'communications interrupted' situation to check if the
     /// server should be transitioned to the 'partner-down' state.
     ///
     /// @return true if the partner failure has been detected, false
@@ -293,7 +293,7 @@ public:
     /// will reset the gating counter.
     ///
     /// @return true if the warning message should be logged because of the clock
-    /// skew exceeding a warning thresdhold.
+    /// skew exceeding a warning threshold.
     bool clockSkewShouldWarn();
 
     /// @brief Indicates whether the HA service should enter "terminated"
index 56d9c800c80f9c08ad9606f2fc3f74cf025e9474..801a8abd74baac123160e1d2504d1e5f6d4dc864 100644 (file)
@@ -334,7 +334,7 @@ i.e.:
 - Monitoring the clocks skew between the active servers, which is
   calculated by substracting the current time (on the local
   server) from the time returned by the partner in response to the
-  heartbeat comand.
+  heartbeat command.
 
 The large part of this class is common for the DHCPv4 and DHCPv6 servers.
 However, there are differences in how the DHCPv4 and the DHCPv6 messages
index 81d204ee5aa0528bf7185b2ce9d51badad8ec690..13b91f67c2ffcc27f04da4b71397419c9fc8f6e4 100644 (file)
@@ -162,7 +162,7 @@ int leases6_committed(CalloutHandle& handle) {
     return (0);
 }
 
-/// @brief comand_processed callout implementation.
+/// @brief command_processed callout implementation.
 ///
 /// @param handle callout handle.
 int command_processed(CalloutHandle& handle) {
index c0b67e2b0ce931b85a6823e1770d54366f50627d..83e0599ed32e05a177d4f58002223f59fb1bf593 100644 (file)
@@ -160,7 +160,7 @@ HAConfig::HAConfig()
 
 HAConfig::PeerConfigPtr
 HAConfig::selectNextPeerConfig(const std::string& name) {
-    // Check if there is a configuration for this server name alrady. We can't
+    // Check if there is a configuration for this server name already. We can't
     // have two servers with the same name.
     if (peers_.count(name) > 0) {
         isc_throw(BadValue, "peer with name '" << name << "' already specified");
index 04f9765ca14a258e34f189004136e2859f180e2a..61f805f51dae38c5328d43b5b49ea33febeb8730 100644 (file)
@@ -199,7 +199,7 @@ public:
             return (pausing_);
         }
 
-        /// @brief Sets pausing mode for the gievn state.
+        /// @brief Sets pausing mode for the given state.
         ///
         /// @param pausing new pausing mode in the textual form. Supported
         /// values are: always, never, once.
@@ -361,7 +361,7 @@ public:
 
     /// @brief Sets new lease database syncing timeout in milliseconds.
     ///
-    /// @param sync_timeout new timeout for lease database synchornization.
+    /// @param sync_timeout new timeout for lease database synchronization.
     void setSyncTimeout(const uint32_t sync_timeout) {
         sync_timeout_ = sync_timeout;
     }
index 114590fb7290e8343374104fc5993d591f8a3530..3f04517999198c92aba08cc83688cb1d8daa1ac7 100644 (file)
@@ -34,7 +34,7 @@ public:
     /// @brief Constructor.
     HAImpl();
 
-    /// @brief Parases configuration.
+    /// @brief Parses configuration.
     ///
     /// @param input_config Configuration specified for the hooks library.
     /// @throw ConfigError when configuration fails.
index 484c4315426bd96bd535379148c0c5b6bdfe0bd4..1b51a9414ab485e6c18036fb9c7cd95b2027f8cc 100644 (file)
@@ -278,7 +278,7 @@ connection. The second argument contains a reason for the error.
 % HA_LEASES_BACKLOG_FAILED failed to send lease updates backlog to %1: %2
 This error message is issued to indicate that sending lease updates backlog
 to a partner server failed. The lease updates backlog is sent to the partner
-after resuming tremporarily broken communication with the partner. If this
+after resuming temporarily broken communication with the partner. If this
 operation fails the server will transition to the waiting state to initiate
 full lease database synchronization.
 
index 6f64a4cf09ed8a192a5a2efd0ef4dce0f3147fa7..6960fd28d0a65817091d9d112008967fe58a4dcc 100644 (file)
@@ -1558,7 +1558,7 @@ HAService::asyncSendHeartbeat() {
              const HttpResponsePtr& response,
              const std::string& error_str) {
 
-            // There are three possible groups of errors during the heartneat.
+            // There are three possible groups of errors during the heartbeat.
             // One is the IO error causing issues in communication with the peer.
             // Another one is an HTTP parsing error. The last type of error is
             // when non-success error code is returned in the response carried
@@ -1698,7 +1698,7 @@ HAService::asyncDisableDHCPService(HttpClient& http_client,
              const HttpResponsePtr& response,
              const std::string& error_str) {
 
-             // There are three possible groups of errors during the heartneat.
+             // There are three possible groups of errors during the heartbeat.
              // One is the IO error causing issues in communication with the peer.
              // Another one is an HTTP parsing error. The last type of error is
              // when non-success error code is returned in the response carried
@@ -1771,7 +1771,7 @@ HAService::asyncEnableDHCPService(HttpClient& http_client,
              const HttpResponsePtr& response,
              const std::string& error_str) {
 
-             // There are three possible groups of errors during the heartneat.
+             // There are three possible groups of errors during the heartbeat.
              // One is the IO error causing issues in communication with the peer.
              // Another one is an HTTP parsing error. The last type of error is
              // when non-success error code is returned in the response carried
@@ -1917,7 +1917,7 @@ HAService::asyncSyncLeasesInternal(http::HttpClient& http_client,
              // page was hit, this value remains null.
              LeasePtr last_lease;
 
-            // There are three possible groups of errors during the heartneat.
+            // There are three possible groups of errors during the heartbeat.
             // One is the IO error causing issues in communication with the peer.
             // Another one is an HTTP parsing error. The last type of error is
             // when non-success error code is returned in the response carried
@@ -2516,7 +2516,7 @@ HAService::processMaintenanceStart() {
         return (createAnswer(CONTROL_RESULT_ERROR, "Unable to transition to the"
                              " partner-in-maintenance state. The partner server responded"
                              " with the following message to the ha-maintenance-notify"
-                             " commmand: " + captured_error_message + "."));
+                             " command: " + captured_error_message + "."));
 
     }
 
@@ -2606,7 +2606,7 @@ HAService::processMaintenanceCancel() {
         return (createAnswer(CONTROL_RESULT_ERROR,
                              "Unable to cancel maintenance. The partner server responded"
                              " with the following message to the ha-maintenance-notify"
-                             " commmand: " + error_message + "."));
+                             " command: " + error_message + "."));
     }
 
     // Successfully reverted partner's state. Let's also revert our state to the
@@ -2681,7 +2681,7 @@ bool
 HAService::clientConnectHandler(const boost::system::error_code& ec, int tcp_native_fd) {
 
     // If things look ok register the socket with Interface Manager. Note
-    // we don't register if the FD is < 0 to avoid an expection throw.
+    // we don't register if the FD is < 0 to avoid an exception throw.
     // It is unlikely that this will occur but we want to be liberal
     // and avoid issues.
     if ((!ec || (ec.value() == boost::asio::error::in_progress))
index 2740bc8271fc5b86e94a5b38a8a5fd50b3699597..e122af03324fb6fa7853149baa23540b0758b7f6 100644 (file)
@@ -49,7 +49,7 @@ public:
     /// Lease database synchronization failed.
     static const int HA_SYNCING_FAILED_EVT = SM_DERIVED_EVENT_MIN + 3;
 
-    /// Lease database synchroniation succeeded.
+    /// Lease database synchronization succeeded.
     static const int HA_SYNCING_SUCCEEDED_EVT = SM_DERIVED_EVENT_MIN + 4;
 
     /// ha-maintenance-notify command received.
@@ -292,7 +292,7 @@ public:
     /// This indicates that the HA service is disabled, typically as a result
     /// of an unrecoverable error such as detecting that clocks skew between
     /// the active HA servers being too large. This situation requires
-    /// manual intervation of an administrator. When the problem is corrected,
+    /// manual intervention of an administrator. When the problem is corrected,
     /// the HA service needs to be restarted.
     ///
     /// @note Currently, restarting the HA service requires restarting the
@@ -861,7 +861,7 @@ protected:
 
     /// @brief Sends lease updates from backlog to partner asynchronously.
     ///
-    /// This method checks if there are any outstanding DHCPv4 or DHCOPv6 leases
+    /// This method checks if there are any outstanding DHCPv4 or DHCPv6 leases
     /// in the backlog and schedules asynchronous sends of these leases. In
     /// DHCPv6 case it sends a single lease6-bulk-apply command with all
     /// outstanding leases. In DHCPv4 case, it sends lease4-update or lease4-delete
@@ -939,7 +939,7 @@ public:
     /// This command attempts to tramsition the server to the in-maintenance state
     /// if the cancel flag is set to false. Such transition is not allowed if
     /// the server is currently in one of the following states:
-    /// - backup: becase maintenance is not supported for backup servers,
+    /// - backup: because maintenance is not supported for backup servers,
     /// - partner-in-maintenance: because only one server is in maintenance while
     ///   the partner must be in parter-in-maintenance state,
     /// - terminated: because the only way to resume HA service is by shutting
@@ -953,7 +953,7 @@ public:
     /// canceled with this operation. If it is set to false the maintenance
     /// is being started.
     ///
-    /// @return Pointer to the reponse to the ha-maintenance-notify.
+    /// @return Pointer to the response to the ha-maintenance-notify.
     data::ConstElementPtr processMaintenanceNotify(const bool cancel);
 
     /// @brief Processes ha-maintenance-start command and returns a response.
@@ -982,7 +982,7 @@ public:
     /// previous state. It effectively means canceling the request for
     /// maintenance signaled with the ha-maintenance-start command.
     ///
-    /// In some cases canceling the maintenace is no longer possible, e.g.
+    /// In some cases canceling the maintenance is no longer possible, e.g.
     /// if the server has already got into the partner-down state. Generally,
     /// canceling the maintenance is only possible if this server is in the
     /// partner-in-maintenance state and the partner is in the in-maintenance
@@ -1027,8 +1027,8 @@ protected:
     ///
     /// We do this in case the other peer closed the socket (e.g. idle timeout),
     /// as this will cause the socket to appear ready to read to the
-    /// IfaceMgr::select(). If this happens while no transcations are
-    /// in progess, we won't have anything to deal with the socket event.
+    /// IfaceMgr::select(). If this happens while no transactions are
+    /// in progress, we won't have anything to deal with the socket event.
     /// This causes IfaceMgr::select() to endlessly interrupt on the socket.
     ///
     /// @param tcp_native_fd socket descriptor of the ready socket
index cf888912e1afa4f04b532462f575bebee5fb580f..2acd5e16b3f8ad6406759932fdaeb5d789dc6459 100644 (file)
@@ -115,7 +115,7 @@ private:
     /// @brief Holds the queue size limit.
     size_t limit_;
 
-    /// @brief Remebers whether the queue was overflown.
+    /// @brief Remembers whether the queue was overflown.
     bool overflown_;
 
     /// @brief Actual queue of lease updates and their types.
index e2f0d1c549fc61c361fbfc3211c20f8cf43cf32a..e692037ce60f685ae8133a0292a99218cadf05b3 100644 (file)
@@ -953,7 +953,7 @@ public:
             return (service_->pendingRequestSize() == 0);
         }));
 
-        // Only if we wait for lease updates to complete it makes senst to test
+        // Only if we wait for lease updates to complete it makes sense to test
         // that the packet was either dropped or unparked.
         if (num_updates > 0) {
             // Try to drop the packet. We expect that the packet has been already
@@ -2600,7 +2600,7 @@ TEST_F(HAServiceTest, recurringHeartbeatServerOffline) {
     });
 
     // The servers are configured to return success but the server 2 is offline
-    // so the heartbeat should be unsuccessul.
+    // so the heartbeat should be unsuccessful.
     ASSERT_NO_FATAL_FAILURE(testRecurringHeartbeat(CONTROL_RESULT_SUCCESS, false));
 
     // Server 2 is offline so it would be very weird if it received any command.
@@ -2672,7 +2672,7 @@ TEST_F(HAServiceTest, asyncSyncLeases) {
     }
 
     // Modify cltt of the first lease. This lease should be updated as a result
-    // of synchrnonization process because cltt is checked and the lease is
+    // of synchronization process because cltt is checked and the lease is
     // updated if the cltt of the fetched lease is later than the cltt of the
     // existing lease.
     ++leases4_[0]->cltt_;
@@ -2683,7 +2683,7 @@ TEST_F(HAServiceTest, asyncSyncLeases) {
     ++leases4_[1]->subnet_id_ = 0;
 
     // Modify the partner's lease cltt so it is earlier than the local lease.
-    // Therfore, this lease update should be rejected.
+    // Therefore, this lease update should be rejected.
     --leases4_[2]->cltt_;
 
     // Create HA configuration.
@@ -2801,7 +2801,7 @@ TEST_F(HAServiceTest, asyncSyncLeasesAuthorized) {
     }
 
     // Modify cltt of the first lease. This lease should be updated as a result
-    // of synchrnonization process because cltt is checked and the lease is
+    // of synchronization process because cltt is checked and the lease is
     // updated if the cltt of the fetched lease is later than the cltt of the
     // existing lease.
     ++leases4_[0]->cltt_;
@@ -2812,7 +2812,7 @@ TEST_F(HAServiceTest, asyncSyncLeasesAuthorized) {
     ++leases4_[1]->subnet_id_ = 0;
 
     // Modify the partner's lease cltt so it is earlier than the local lease.
-    // Therfore, this lease update should be rejected.
+    // Therefore, this lease update should be rejected.
     --leases4_[2]->cltt_;
 
     // Create HA configuration.
@@ -3013,7 +3013,7 @@ TEST_F(HAServiceTest, asyncSyncLeases6) {
     }
 
     // Modify cltt of the first lease. This lease should be updated as a result
-    // of synchrnonization process because cltt is checked and the lease is
+    // of synchronization process because cltt is checked and the lease is
     // updated if the cltt of the fetched lease is later than the cltt of the
     // existing lease.
     ++leases6_[0]->cltt_;
@@ -3024,7 +3024,7 @@ TEST_F(HAServiceTest, asyncSyncLeases6) {
     ++leases6_[1]->subnet_id_ = 0;
 
     // Modify the partner's lease cltt so it is earlier than the local lease.
-    // Therfore, this lease update should be rejected.
+    // Therefore, this lease update should be rejected.
     --leases6_[2]->cltt_;
 
     // Create HA configuration.
@@ -3143,7 +3143,7 @@ TEST_F(HAServiceTest, asyncSyncLeases6Authorized) {
     }
 
     // Modify cltt of the first lease. This lease should be updated as a result
-    // of synchrnonization process because cltt is checked and the lease is
+    // of synchronization process because cltt is checked and the lease is
     // updated if the cltt of the fetched lease is later than the cltt of the
     // existing lease.
     ++leases6_[0]->cltt_;
@@ -3154,7 +3154,7 @@ TEST_F(HAServiceTest, asyncSyncLeases6Authorized) {
     ++leases6_[1]->subnet_id_ = 0;
 
     // Modify the partner's lease cltt so it is earlier than the local lease.
-    // Therfore, this lease update should be rejected.
+    // Therefore, this lease update should be rejected.
     --leases6_[2]->cltt_;
 
     // Create HA configuration.
@@ -4381,7 +4381,7 @@ TEST_F(HAServiceTest, processMaintenanceStartNotAllowed) {
     checkAnswer(rsp, CONTROL_RESULT_ERROR,
                 "Unable to transition to the partner-in-maintenance state."
                 " The partner server responded with the following message"
-                " to the ha-maintenance-notify commmand: response returned,"
+                " to the ha-maintenance-notify command: response returned,"
                 " error code 1001.");
 
     // The partner's state precludes entering the in-maintenance state. Thus, this
@@ -4520,7 +4520,7 @@ TEST_F(HAServiceTest, processMaintenanceCancelPartnerError) {
     checkAnswer(rsp, CONTROL_RESULT_ERROR,
                 "Unable to cancel maintenance. The partner server responded"
                 " with the following message to the ha-maintenance-notify"
-                " commmand: response returned, error code 1.");
+                " command: response returned, error code 1.");
 
     // The state of this server should not change.
     EXPECT_EQ(HA_PARTNER_IN_MAINTENANCE_ST, service.getCurrState());
@@ -4566,7 +4566,7 @@ TEST_F(HAServiceTest, processMaintenanceCancelPartnerUnauthorized) {
     checkAnswer(rsp, CONTROL_RESULT_ERROR,
                 "Unable to cancel maintenance. The partner server responded"
                 " with the following message to the ha-maintenance-notify"
-                " commmand: Unauthorized, error code 1.");
+                " command: Unauthorized, error code 1.");
 
     // The state of this server should not change.
     EXPECT_EQ(HA_PARTNER_IN_MAINTENANCE_ST, service.getCurrState());
@@ -4577,7 +4577,7 @@ TEST_F(HAServiceTest, processHAReset) {
     HAConfigPtr config_storage = createValidConfiguration();
     TestHAService service(io_service_, network_state_, config_storage);
 
-    // Transion the server to the load-balancing state.
+    // Transition the server to the load-balancing state.
     EXPECT_NO_THROW(service.transition(HA_LOAD_BALANCING_ST, HAService::NOP_EVT));
 
     // Process ha-reset command that should cause the server to transition
@@ -4602,7 +4602,7 @@ TEST_F(HAServiceTest, processHAResetWaiting) {
     HAConfigPtr config_storage = createValidConfiguration();
     TestHAService service(io_service_, network_state_, config_storage);
 
-    // Transion the server to the load-balancing state.
+    // Transition the server to the load-balancing state.
     EXPECT_NO_THROW(service.transition(HA_WAITING_ST, HAService::NOP_EVT));
 
     // Process ha-reset command that should not change the state of the
@@ -5283,7 +5283,7 @@ TEST_F(HAServiceStateMachineTest, waitingParterDownLoadBalancingPartnerDown) {
 // 4. Partner shows up and eventually transitions to the ready state.
 // 5. I can communicate with the partner so I transition to the hot-standby
 //    state as a standby server.
-// 6. Patrtner stops responding again.
+// 6. Partner stops responding again.
 // 7. I monitor communication with the partner and eventually consider the
 //    communication to be interrupted.
 // 8. I start monitoring the DHCP traffic directed to the partner and observe
@@ -5305,7 +5305,7 @@ TEST_F(HAServiceStateMachineTest, waitingParterDownHotStandbyPartnerDown) {
 
     EXPECT_EQ(HA_WAITING_ST, service_->getCurrState());
 
-    // WAITING state: no heartbeat reponse for a long period of time.
+    // WAITING state: no heartbeat response for a long period of time.
     ASSERT_NO_FATAL_FAILURE(waitForEvent(HAService::HA_HEARTBEAT_COMPLETE_EVT));
     simulateNoCommunication();
     ASSERT_TRUE(isDoingHeartbeat());
@@ -5526,7 +5526,7 @@ TEST_F(HAServiceStateMachineTest, waitingSyncingReadyLoadBalancingPrimary) {
     });
 
     // READY state: our partner sees that we're ready so it will start to
-    // synchronize. We reamain the READY state as long as the partner is not
+    // synchronize. We remain in the READY state as long as the partner is not
     // ready.
     partner.transition("syncing");
     ASSERT_NO_FATAL_FAILURE(waitForEvent(HAService::HA_HEARTBEAT_COMPLETE_EVT));
index 60a2314cda9486cbdbd43f98ba59a182bf7902f6..81195afd5bdc9c03adbbf1c8a69be0ac9d63cfce 100644 (file)
@@ -142,7 +142,7 @@ public:
                                  HAConfig::LOAD_BALANCING) const;
 
     /// @brief Return HA configuration with one primary and two backup
-    /// serveers in the JSON format.
+    /// servers in the JSON format.
     ///
     /// @return Pointer to the unparsed configuration.
     data::ConstElementPtr
index ac2bb32b3065d3d8a58f969686b9378c432f4c48..964c61df86dac751b0d387df88f6b21767f1d843 100644 (file)
@@ -1248,7 +1248,7 @@ LeaseCmdsImpl::leaseGetByHwAddressHandler(CalloutHandle& handle) {
 
         // The 'hw-address' argument is a string.
         if (hw_address->getType() != Element::string) {
-            isc_throw(BadValue, "'hw-address'parameter must be a string");
+            isc_throw(BadValue, "'hw-address' parameter must be a string");
         }
 
         HWAddr hwaddr = HWAddr::fromText(hw_address->stringValue());
@@ -1298,7 +1298,7 @@ LeaseCmdsImpl::leaseGetByClientIdHandler(CalloutHandle& handle) {
 
         // The 'client-id' argument is a string.
         if (client_id->getType() != Element::string) {
-            isc_throw(BadValue, "'client-id'parameter must be a string");
+            isc_throw(BadValue, "'client-id' parameter must be a string");
         }
 
         ClientIdPtr clientid = ClientId::fromText(client_id->stringValue());
@@ -1348,7 +1348,7 @@ LeaseCmdsImpl::leaseGetByDuidHandler(CalloutHandle& handle) {
 
         // The 'duid' argument is a string.
         if (duid->getType() != Element::string) {
-            isc_throw(BadValue, "'duid'parameter must be a string");
+            isc_throw(BadValue, "'duid' parameter must be a string");
         }
 
         DUID duid_ = DUID::fromText(duid->stringValue());
@@ -1400,7 +1400,7 @@ LeaseCmdsImpl::leaseGetByHostnameHandler(CalloutHandle& handle) {
 
         // The 'hostname' argument is a string.
         if (hostname->getType() != Element::string) {
-            isc_throw(BadValue, "'hostname'parameter must be a string");
+            isc_throw(BadValue, "'hostname' parameter must be a string");
         }
 
         std::string hostname_ = hostname->stringValue();
index 1f66b12570c0380091ac0af9f6fef7a5f32fb469..90efb894fbc079a6bdf54351782ee0b5d8939cad 100644 (file)
@@ -298,7 +298,7 @@ public:
     ///
     /// Creates a lease manager (memfile, trimmed down to keep everything in memory
     /// only) and optionally can create a lease, which is useful for leaseX-get and
-    /// leasex-del type of tests. For lease details, see @ref createLease4 and
+    /// leaseX-del type of tests. For lease details, see @ref createLease4 and
     /// @ref createLease6.
     ///
     /// @param v6 true = v6, false = v4
@@ -3627,7 +3627,7 @@ void LeaseCmdsTest::testLease4GetPaged() {
             "    }"
             "}";
 
-        // For the first two pages we shuould get success. For the last
+        // For the first two pages we should get success. For the last
         // one an empty status code.
         ConstElementPtr rsp;
         if (i < 2) {
@@ -4144,7 +4144,7 @@ void LeaseCmdsTest::testLease6GetPaged() {
             "    }"
             "}";
 
-        // For the first two pages we shuould get success. For the last
+        // For the first two pages we should get success. For the last
         // one an empty status code.
         ConstElementPtr rsp;
         if (i < 2) {
@@ -4409,7 +4409,7 @@ void LeaseCmdsTest::testLeaseGetByHwAddressParams() {
         "        \"hw-address\": 1234\n"
         "    }\n"
         "}";
-    exp_rsp = "'hw-address'parameter must be a string";
+    exp_rsp = "'hw-address' parameter must be a string";
     testCommand(cmd, CONTROL_RESULT_ERROR, exp_rsp);
 
     // Simply bad value.
@@ -4524,7 +4524,7 @@ void LeaseCmdsTest::testLeaseGetByClientIdParams() {
         "        \"client-id\": 1234\n"
         "    }\n"
         "}";
-    exp_rsp = "'client-id'parameter must be a string";
+    exp_rsp = "'client-id' parameter must be a string";
     testCommand(cmd, CONTROL_RESULT_ERROR, exp_rsp);
 
     // Simply bad value.
@@ -4639,7 +4639,7 @@ void LeaseCmdsTest::testLeaseGetByDuidParams() {
         "        \"duid\": 1234\n"
         "    }\n"
         "}";
-    exp_rsp = "'duid'parameter must be a string";
+    exp_rsp = "'duid' parameter must be a string";
     testCommand(cmd, CONTROL_RESULT_ERROR, exp_rsp);
 
     // Simply bad value.
@@ -4754,7 +4754,7 @@ void LeaseCmdsTest::testLease4GetByHostnameParams() {
         "        \"hostname\": 1234\n"
         "    }\n"
         "}";
-    exp_rsp = "'hostname'parameter must be a string";
+    exp_rsp = "'hostname' parameter must be a string";
     testCommand(cmd, CONTROL_RESULT_ERROR, exp_rsp);
 
     // hostname must be not empty.
@@ -4868,7 +4868,7 @@ void LeaseCmdsTest::testLease6GetByHostnameParams() {
         "        \"hostname\": 1234\n"
         "    }\n"
         "}";
-    exp_rsp = "'hostname'parameter must be a string";
+    exp_rsp = "'hostname' parameter must be a string";
     testCommand(cmd, CONTROL_RESULT_ERROR, exp_rsp);
 
     // hostname must be not empty.
index 4a0bfaa4db2fca1b63e03625fca8f354003eeb61..a6e0afd23c6a0def297bf599a2050ba1afcccc2a 100644 (file)
@@ -1849,7 +1849,7 @@ public:
     /// @param subnet_id Identifier of the subnet the option belongs to.
     /// @param option Pointer to the option descriptor encapsulating the option.
     /// @param cascade_update Boolean value indicating whether the update is
-    /// performed as part of the ownining element, e.g. subnet.
+    /// performed as part of the owning element, e.g. subnet.
     void createUpdateOption4(const ServerSelector& server_selector,
                              const SubnetID& subnet_id,
                              const OptionDescriptorPtr& option,
@@ -1935,7 +1935,7 @@ public:
     /// @param pool_id Identifier of the pool the option belongs to.
     /// @param option Pointer to the option descriptor encapsulating the option.
     /// @param cascade_update Boolean value indicating whether the update is
-    /// performed as part of the ownining element, e.g. subnet.
+    /// performed as part of the owning element, e.g. subnet.
     void createUpdateOption4(const ServerSelector& server_selector,
                              const uint64_t pool_id,
                              const OptionDescriptorPtr& option,
@@ -1991,7 +1991,7 @@ public:
     /// belongs to.
     /// @param option Pointer to the option descriptor encapsulating the option.
     /// @param cascade_update Boolean value indicating whether the update is
-    /// performed as part of the ownining element, e.g. shared network.
+    /// performed as part of the owning element, e.g. shared network.
     void createUpdateOption4(const ServerSelector& server_selector,
                              const std::string& shared_network_name,
                              const OptionDescriptorPtr& option,
index f87a2018f12488e80bc3e89c291577d13df274d4..758b69d10bb012d4609a802e9771e1f9b27e764d 100644 (file)
@@ -2187,7 +2187,7 @@ public:
     /// @param subnet_id Identifier of the subnet the option belongs to.
     /// @param option Pointer to the option descriptor encapsulating the option.
     /// @param cascade_update Boolean value indicating whether the update is
-    /// performed as part of the ownining element, e.g. subnet.
+    /// performed as part of the owning element, e.g. subnet.
     void createUpdateOption6(const ServerSelector& server_selector,
                              const SubnetID& subnet_id,
                              const OptionDescriptorPtr& option,
@@ -2304,7 +2304,7 @@ public:
     /// the option belongs to.
     /// @param option Pointer to the option descriptor encapsulating the option.
     /// @param cascade_update Boolean value indicating whether the update is
-    /// performed as part of the ownining element, e.g. subnet.
+    /// performed as part of the owning element, e.g. subnet.
     void createUpdateOption6(const ServerSelector& server_selector,
                              const Lease::Type& pool_type,
                              const uint64_t pool_id,
@@ -2404,7 +2404,7 @@ public:
     /// belongs to.
     /// @param option Pointer to the option descriptor encapsulating the option.
     /// @param cascade_update Boolean value indicating whether the update is
-    /// performed as part of the ownining element, e.g. shared network.
+    /// performed as part of the owning element, e.g. shared network.
     void createUpdateOption6(const ServerSelector& server_selector,
                              const std::string& shared_network_name,
                              const OptionDescriptorPtr& option,
index c43af4fcdd58be105e008334ea380308a12fce7e..7aa14bf26ac54e22bd679047cf3b15690dbd6ad0 100644 (file)
@@ -235,7 +235,7 @@ public:
     /// revision.
     /// @param log_message log message to be used for the audit revision.
     /// @param cascade_transaction Boolean value indicating whether the
-    /// configuration modification is performed as part of the ownining
+    /// configuration modification is performed as part of the owning
     /// element modification, e.g. subnet is modified resulting in
     /// modification of the DHCP options it owns. In that case only the
     /// audit entry for the owning element should be created.
index 3fcd0274bec81b7b77a189c4c2cf7d48e0589ac5..b52f5a05918ebe935eba302a05467f6f0d60e304 100644 (file)
@@ -1443,7 +1443,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getSubnet4ByPrefix) {
     EXPECT_EQ(subnet->toElement()->str(), returned_subnet->toElement()->str());
 
     // Fetching the subnet for an explicitly specified server tag should
-    // succeeed too.
+    // succeed too.
     returned_subnet = cbptr_->getSubnet4(ServerSelector::ONE("server1"),
                                          "192.0.2.0/24");
     EXPECT_EQ(subnet->toElement()->str(), returned_subnet->toElement()->str());
@@ -2250,7 +2250,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getSharedNetwork4Selectors) {
 TEST_F(MySqlConfigBackendDHCPv4Test, createUpdateSharedNetwork4) {
     auto shared_network = test_networks_[0];
 
-    // An attempto insert the shared network for non-existing server should fail.
+    // An attempt to insert the shared network for non-existing server should fail.
     EXPECT_THROW(cbptr_->createUpdateSharedNetwork4(ServerSelector::ONE("server1"),
                                                     shared_network),
                  NullKeyError);
@@ -2958,7 +2958,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, sharedNetworkOptions) {
     EXPECT_NO_THROW(cbptr_->createUpdateSharedNetwork4(ServerSelector::ALL(), test_networks_[0]));
     EXPECT_EQ(4, countRows("dhcp4_options"));
 
-    // Delete this shared netwiork. This should not affect the option associated
+    // Delete this shared network. This should not affect the option associated
     // with the remaining shared network.
     EXPECT_NO_THROW(cbptr_->deleteSharedNetwork4(ServerSelector::ALL(),
                                                  test_networks_[0]->getName()));
@@ -3227,7 +3227,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getAllOptionDefs4) {
             ++updates_num;
 
         } else {
-            SCOPED_TRACE("CREATE audit entry for the option defnition " + name);
+            SCOPED_TRACE("CREATE audit entry for the option definition " + name);
             testNewAuditEntry("dhcp4_option_def",
                               AuditEntry::ModificationType::CREATE,
                               "option definition set");
index d069b8eb6befd7266dd52ced307cbbd8a154bca5..d795ad793f159abf4250e660cee6cd06f78348db 100644 (file)
@@ -1472,7 +1472,7 @@ TEST_F(MySqlConfigBackendDHCPv6Test, getSubnet6ByPrefix) {
     EXPECT_EQ(subnet->toElement()->str(), returned_subnet->toElement()->str());
 
     // Fetching the subnet for an explicitly specified server tag should
-    // succeeed too.
+    // succeed too.
     returned_subnet = cbptr_->getSubnet6(ServerSelector::ONE("server1"),
                                          "2001:db8::/64");
     EXPECT_EQ(subnet->toElement()->str(), returned_subnet->toElement()->str());
@@ -2285,7 +2285,7 @@ TEST_F(MySqlConfigBackendDHCPv6Test, getSharedNetwork6Selectors) {
 TEST_F(MySqlConfigBackendDHCPv6Test, createUpdateSharedNetwork6) {
     auto shared_network = test_networks_[0];
 
-    // An attempto insert the shared network for non-existing server should fail.
+    // An attempt to insert the shared network for non-existing server should fail.
     EXPECT_THROW(cbptr_->createUpdateSharedNetwork6(ServerSelector::ONE("server1"),
                                                     shared_network),
                  NullKeyError);
@@ -2335,7 +2335,7 @@ TEST_F(MySqlConfigBackendDHCPv6Test, createUpdateSharedNetwork6) {
     EXPECT_FALSE(network->hasServerTag(ServerTag()));
 }
 
-// Test that craeteUpdateSharedNetwork6 throws appropriate exceptions for various
+// Test that createUpdateSharedNetwork6 throws appropriate exceptions for various
 // server selectors.
 TEST_F(MySqlConfigBackendDHCPv6Test, createUpdateSharedNetwork6Selectors) {
     ASSERT_NO_THROW(cbptr_->createUpdateServer6(test_servers_[0]));
@@ -2995,7 +2995,7 @@ TEST_F(MySqlConfigBackendDHCPv6Test, sharedNetworkOptions) {
     EXPECT_NO_THROW(cbptr_->createUpdateSharedNetwork6(ServerSelector::ALL(), test_networks_[0]));
     EXPECT_EQ(4, countRows("dhcp6_options"));
 
-    // Delete this shared netwiork. This should not affect the option associated
+    // Delete this shared network. This should not affect the option associated
     // with the remaining shared network.
     EXPECT_NO_THROW(cbptr_->deleteSharedNetwork6(ServerSelector::ALL(),
                                                  test_networks_[0]->getName()));
index b1aa18d15a26fa5723df737eeb5fc910a226a7d9..956ecc3755d486b58ddd65895e72f457b4613c42 100644 (file)
@@ -89,7 +89,7 @@ public:
     /// @ref isc::stat_cmds::StatCmds::statLease4GetHandler
     ///
     /// It parses the command arguments, and then invokes makeResult4()
-    /// to fulfull the lease4 statistics fetch. It then constructs the outbound
+    /// to fulfil the lease4 statistics fetch. It then constructs the outbound
     /// response based on those results.  If a NotFound exception is caught,
     /// a CONTROL_RESULT_EMTPY response is generated.
     ///
@@ -103,7 +103,7 @@ public:
     /// @ref isc::stat_cmds::StatCmds::statLease6GetHandler
     ///
     /// It parses the command arguments, and then invokes makeResult6()
-    /// to fulfull the lease6 statistics fetch. It then constructs the outbound
+    /// to fulfil the lease6 statistics fetch. It then constructs the outbound
     /// response based on those results.  If a NotFound exception is caught,
     /// a CONTROL_RESULT_EMTPY response is generated.
     ///
index adc791e954576b26ba73b07835f66b91959f810c..44ec9bbfd3b470e84aa5aa834489deede7e1e597 100644 (file)
@@ -134,7 +134,7 @@ public:
         // If we expect nothing and nothing is what we got, we're done.
         if (exp_args->size() == 0) {
             ASSERT_TRUE(actual_args->size() == 0)
-                << "Acutal args should be empty:" << toJSON(actual_args);
+                << "Actual args should be empty:" << toJSON(actual_args);
             return;
         }
 
@@ -1245,7 +1245,7 @@ TEST_F(StatCmdsTest, statLease6GetValid) {
         "}\n"
         },
         {
-        "ALL-Subnets6 arugments omitted",
+        "ALL-Subnets6 arguments omitted",
         "{\n"
         "    \"command\": \"stat-lease6-get\"\n"
         "}",
index 5c308d862583d82c2601d166ab209468f29e6080..ec2b69e8c3c865c807aeb96c33180c79695a4999 100644 (file)
@@ -379,7 +379,7 @@ IOAddress offsetAddress(const IOAddress& addr, uint64_t offset) {
         return (addr);
     }
 
-    // If this is IPv4 addrss we utilize the conversion to uint32_t.
+    // If this is an IPv4 address, then we utilize the conversion to uint32_t.
     if (addr.isV4()) {
         auto addr_uint32 = static_cast<uint64_t>(addr.toUint32());
         // If the result would exceed the maximum possible IPv4 address, let's return
index 69aca84f2c9a6b6da8cf7c5d2a4263d100ff48b9..cbcc1e70202b6a35db2e16d13b678e2a5aa059a2 100644 (file)
@@ -96,7 +96,7 @@ TEST(AddrUtilitiesTest, lastAddrInPrefix6) {
 
     IOAddress addr2("2001::");
 
-    // These are tricker, though, as they are done in 1 bit increments
+    // These are trickier, though, as they are done in 1 bit increments
 
     // the last address in 2001::/127 pool should be 2001::1
     EXPECT_EQ("2001::1", lastAddrInPrefix(addr2, 127).toText());
@@ -134,7 +134,7 @@ TEST(AddrUtilitiesTest, firstAddrInPrefix6) {
 
     IOAddress addr2("2001::ffff");
 
-    // These are tricker, though, as they are done in 1 bit increments
+    // These are trickier, though, as they are done in 1 bit increments
 
     // the first address in 2001::/127 pool should be 2001::1
     EXPECT_EQ("2001::fffe", firstAddrInPrefix(addr2, 127).toText());
index afb742608bae82de44c0dd19b5788eb572eae005..4329a8d9737d42b61d77b0fb3d6612b99f1e579c 100644 (file)
@@ -87,7 +87,7 @@ public:
     /// Opens the UDP socket.  This is a synchronous operation.
     ///
     /// \param endpoint Endpoint to which the socket will send data.  This is
-    ///        used to determine the address family trhat should be used for the
+    ///        used to determine the address family that should be used for the
     ///        underlying socket.
     /// \param callback Unused as the operation is synchronous.
     virtual void open(const IOEndpoint* endpoint, C& callback);
index e98bd322265b24308e4357bb3aef03cd0288fac2..b2b78ad8b349eb2dd1a1d2174227ed981fbe82a9 100644 (file)
@@ -54,7 +54,7 @@ public:
         timestamp_ = timestamp;
     }
 
-    /// @brief Sets timestmp to the current time.
+    /// @brief Sets timestamp to the current time.
     void updateModificationTime();
 
     /// @brief Returns timestamp.
index cb470dc2fb36e98d73cf38643f185925bfb25cd5..23bf67a8fba3134fa5bf6d047f48a86a6eaae74e 100644 (file)
@@ -60,7 +60,7 @@ protected:
     /// @brief Set the callout argument "response" to the given response
     ///
     /// @param handle Callout context handle in which to set the "response" argument
-    /// @param response ElementPtr to a the result to use as the reponse
+    /// @param response ElementPtr to a the result to use as the response
     void setResponse(hooks::CalloutHandle& handle, data::ConstElementPtr& response) {
         handle.setArgument ("response", response);
     }
index dc945a83fbcd72ea1d4cd644c4fe4d0a268315e0..bf5a58dacbee6f0a40d9a8735f7d3323dca2da81 100644 (file)
@@ -27,14 +27,14 @@ constexpr long TIMEOUT_AGENT_IDLE_CONNECTION_TIMEOUT = 30000;
 /// Kea server, e.g. DHCP server.
 ///
 /// This value is high to ensure that the server have enough time
-/// to generate large responses, e.g. dump whole lease databse.
+/// to generate large responses, e.g. dump whole lease database.
 constexpr long TIMEOUT_AGENT_FORWARD_COMMAND = 60000;
 
 /// @brief Timeout for the HTTP clients awaiting a response to a request.
 ///
 /// This value is high to ensure that the client waits long enough
 /// for the fulfilling server to generate a response.  Specified
-/// milliseconds. 
+/// milliseconds.
 constexpr long TIMEOUT_DEFAULT_HTTP_CLIENT_REQUEST = 10000;
 
 
index e694861fca59b20d8c0b8f3235a2677e79e9072c..54eaddf54966d8049800dfcf342657a935183660 100644 (file)
@@ -55,7 +55,7 @@ CqlConnection::~CqlConnection() {
         CassFuture* close_future = cass_session_close(session_);
         cass_future_wait(close_future);
         error = checkFutureError(
-            "CqlConnection::~CqlConnection(): cass_sesssion_close() != CASS_OK",
+            "CqlConnection::~CqlConnection(): cass_session_close() != CASS_OK",
             close_future);
         rc = cass_future_error_code(close_future);
         cass_future_free(close_future);
@@ -457,7 +457,7 @@ CqlConnection::checkFutureError(const std::string& what,
         stream << "Session action ";
     }
     if (cass_error == CASS_OK) {
-        stream << " executed succesfully.";
+        stream << " executed successfully.";
     } else {
         stream << " failed, Kea error: " << what
                << ", Cassandra error code: " << cass_error_desc(cass_error)
index f30413e6c80e9c83f7bc3b19e7d783125faef27c..5076c1136e7b8b46f7cae8051fbe03877e12478c 100644 (file)
@@ -91,7 +91,7 @@ typedef AnyArray AnyCollection;
 
 /// @brief Binds a C++ object to a Cassandra statement's parameter. Used in all
 ///     statements.
-/// @param value the value to be set or retreived
+/// @param value the value to be set or retrieved
 /// @param index offset of the value being processed
 /// @param statement pointer to the parent statement being used
 typedef CassError (*CqlBindFunction)(const boost::any& value,
@@ -99,7 +99,7 @@ typedef CassError (*CqlBindFunction)(const boost::any& value,
                                      CassStatement* statement);
 
 /// @brief Sets a member in a UDT. Used in INSERT & UPDATE statements.
-/// @param value the value to be set or retreived
+/// @param value the value to be set or retrieved
 /// @param index offset of the value being processed
 /// @param cass_user_type pointer to the user type that uses this member
 typedef CassError (*CqlUdtSetFunction)(const boost::any& value,
@@ -216,9 +216,9 @@ public:
     /// @param column_count number of columns queried
     ///
     /// On insert, a false [applied] means there is a duplicate entry with the
-    ///     same priumary key.
+    ///     same primary key.
     ///
-    /// @return true if statement has been succesfully applied, false otherwise
+    /// @return true if statement has been successfully applied, false otherwise
     bool statementApplied(CassFuture* future, size_t* row_count = NULL,
                           size_t* column_count = NULL);
 
index 2d763e58477935cf98eb2f334509baa97b6c1e02..113600f2e38d5d198bfe4ad2ae494d3ec71bf52a 100644 (file)
@@ -33,7 +33,7 @@ validCqlConnectionString() {
 
 void
 destroyCqlSchema(bool show_err, bool force) {
-    // If force is true or wipeCqlData() fails, destory the schema.
+    // If force is true or wipeCqlData() fails, destroy the schema.
     if (force || (!softWipeEnabled()) || wipeCqlData(show_err)) {
         runCqlScript(DATABASE_SCRIPTS_DIR, "cql/dhcpdb_drop.cql", show_err);
     }
index 1dd1c164f8fac9e341ac50e9fd2ebd8a880e0b96..03736ce7b6e245de4f55f0df93bd474898824d66 100644 (file)
@@ -16,7 +16,7 @@ namespace db {
 ///
 /// Cassandra have a concept of mutation (any statement that does change the
 /// data, like INSERT, UPDATE or DELETE). Under certain conditions it may be
-/// possible that those statesments may fail to apply.
+/// possible that those statements may fail to apply.
 class StatementNotApplied : public Exception {
 public:
     StatementNotApplied(const char* file, size_t line, const char* what)
index c6206532c29df1ab2d03400f7c6c8dc1579f6b64..efc6885ea0d2d84609f8dc45609a1b5dcb7fbe85 100644 (file)
@@ -36,7 +36,7 @@ the committal may not include a write to disk.
 % DATABASE_MYSQL_FATAL_ERROR Unrecoverable MySQL error occurred: %1 for <%2>, reason: %3 (error code: %4).
 An error message indicating that communication with the MySQL database server
 has been lost.  If automatic recovery has been enabled,  then the server will
-attempt to recover connectivity.  If not the server wil exit with a
+attempt to recover connectivity.  If not, then the server will exit with a
 non-zero exit code.  The cause of such an error is most likely a network issue
 or the MySQL server has gone down.
 
@@ -68,7 +68,7 @@ unlikely to occur or negatively impact server operation.
 % DATABASE_PGSQL_FATAL_ERROR Unrecoverable PostgreSQL error occurred: Statement: <%1>, reason: %2 (error code: %3).
 An error message indicating that communication with the PostgreSQL database server
 has been lost.  If automatic recovery has been enabled,  then the server will
-attempt to recover the connectivity.  If not the server wil exit with a
+attempt to recover the connectivity.  If not, then the server will exit with a
 non-zero exit code.  The cause of such an error is most likely a network issue
 or the PostgreSQL server has gone down.
 
index 99a5d10971d70277029c19e5ba63f603a1019e2b..ccd23c3968c8325b12af5d3e4c0501c895da8e12 100644 (file)
@@ -24,9 +24,9 @@ namespace db {
 /// In the latter case, a subnet may be associated with a subset of
 /// servers or all servers. An administrator may also add the
 /// configuration data into the database and do not associate this data
-/// with any patrticular server.
+/// with any particular server.
 ///
-/// When fetching the configuration data from a databse or when storing
+/// When fetching the configuration data from a database or when storing
 /// data in the database there is a need to specify which servers this
 /// data is associated with. The @c ServerSelector class represents
 /// such associations.
index 727e0cc4028ebe52bc0d780f8985746f546e9d4e..83e7fce918816b284aaab063082777366e4b9fb1 100644 (file)
@@ -21,7 +21,7 @@
 /// exposure of the DHCP library to server side concepts such as client
 /// classification the classes herein provide a mechanism to maintain lists
 /// of class names, rather than the classes they represent.  It is the
-/// upper layers' perogative to use these names as they see fit.
+/// upper layers' prerogative to use these names as they see fit.
 ///
 /// @todo This file should be moved to dhcpsrv eventually as the classification
 /// is server side concept. Client has no notion of classifying incoming server
index 6bc7b2293bcc8f03e33582a6a3a094bd1018898d..b01120502c7331b2e1b095067b0695b8825a4a5c 100644 (file)
@@ -123,7 +123,7 @@ DUIDFactory::createEN(const uint32_t enterprise_id,
     // We'll need DUID stored in the file to compare it against the
     // new configuration. If the new configuration indicates that some
     // bits of the DUID should be generated we'll first try to use the
-    // values stored in the file to prvent DUID from changing if possible.
+    // values stored in the file to prevent DUID from changing if possible.
     readFromFile();
 
     uint32_t enterprise_id_current = 0;
@@ -190,7 +190,7 @@ DUIDFactory::createLL(const uint16_t htype,
     // We'll need DUID stored in the file to compare it against the
     // new configuration. If the new configuration indicates that some
     // bits of the DUID should be generated we'll first try to use the
-    // values stored in the file to prvent DUID from changing if possible.
+    // values stored in the file to prevent DUID from changing if possible.
     readFromFile();
 
     uint16_t htype_current = 0;
index 99f4370398912fdb81411cdda8994e212b83a804..d031aa82d266e156edf574bca388b7a2dfcde1e0 100644 (file)
@@ -532,7 +532,7 @@ IfaceMgr::openSockets4(const uint16_t port, const bool use_bcast,
             // that the interface configuration is valid and that the interface
             // is not a loopback interface. In both cases, we want to report
             // that the socket will not be opened.
-            // Relax the check when the loopback interface was explicitely
+            // Relax the check when the loopback interface was explicitly
             // allowed
             if (iface->flag_loopback_ && !allow_loopback_) {
                 IFACEMGR_ERROR(SocketConfigError, error_handler,
@@ -661,7 +661,7 @@ IfaceMgr::openSockets6(const uint16_t port,
             // that the interface configuration is valid and that the interface
             // is not a loopback interface. In both cases, we want to report
             // that the socket will not be opened.
-            // Relax the check when the loopback interface was explicitely
+            // Relax the check when the loopback interface was explicitly
             // allowed
             if (iface->flag_loopback_ && !allow_loopback_) {
                 IFACEMGR_ERROR(SocketConfigError, error_handler,
@@ -743,7 +743,7 @@ IfaceMgr::startDHCPReceiver(const uint16_t family) {
     switch (family) {
     case AF_INET:
         // If the queue doesn't exist, packet queing has been configured
-        // as disabled. If there is no queue, we do not create a reciever.
+        // as disabled. If there is no queue, we do not create a receiver.
         if(!getPacketQueue4()) {
             return;
         }
@@ -753,7 +753,7 @@ IfaceMgr::startDHCPReceiver(const uint16_t family) {
         break;
     case AF_INET6:
         // If the queue doesn't exist, packet queing has been configured
-        // as disabled. If there is no queue, we do not create a reciever.
+        // as disabled. If there is no queue, we do not create a receiver.
         if(!getPacketQueue6()) {
             return;
         }
@@ -1676,7 +1676,7 @@ IfaceMgr::receiveDHCP4Packets() {
         // zero out the errno to be safe.
         errno = 0;
 
-        // Select with null timeouts to wait indefinetly an event
+        // Select with null timeouts to wait indefinitely an event
         int result = select(maxfd + 1, &rd_set, 0, 0, 0);
 
         // Re-check the watch socket.
index 4e72f474633dcdfdcce2fbb63250b24118dc9469..9d0ba3d0894e98573f16683c2d3c40eeb5df8abe 100644 (file)
@@ -1000,7 +1000,7 @@ public:
     /// This method opens sockets only on interfaces which have the
     /// @c inactive4_ field set to false (are active). If the interface is active
     /// but it is not running, it is down, or is a loopback interface when
-    /// oopback is not allowed, an error is reported.
+    /// loopback is not allowed, an error is reported.
     ///
     /// The type of the socket being open depends on the selected Packet Filter
     /// represented by a class derived from @c isc::dhcp::PktFilter abstract
index 03347a58dd5b9d59204dad417e077f1b364be9fb..4c6794a475199e9a5433ade8f0332a19320d05d0 100644 (file)
@@ -402,7 +402,7 @@ void Netlink::release_list(NetlinkMessages& messages) {
         delete[] (*msg);
     }
 
-    // ang get rid of the message pointers as well
+    // and get rid of the message pointers as well
     messages.clear();
 }
 
index f30232f6ed2bf886f97a3a3a1100dd0077e04860..eb57d66ad74cf9a03b1b28deac56daaac4594059 100644 (file)
@@ -183,7 +183,7 @@ public:
     /// @ref Pkt4::pack(). That call leads to it being called recursively in
     /// @ref Option::packOptions(). Thus the logic used to output the
     /// message type should only be executed by the top-most. This is governed
-    /// by the paramater top, below.
+    /// by the parameter top, below.
     ///
     /// @param buf output buffer (assembled options will be stored here)
     /// @param options collection of options to store to
index e79a651698506d358160d7f55503d57d9d7e3d46..c7d02a17e3da2634e6385fdef4a9eb6acca4aca1 100644 (file)
@@ -47,7 +47,7 @@ typedef boost::shared_ptr<OptionCollection> OptionCollectionPtr;
 /// unpacking efforts and allow the server to attempt to process
 /// the packet as it stands.  In other words, the option that failed
 /// is perhaps optional, and rather than drop the packet as unusable
-/// we wish to attempt to proces it.
+/// we wish to attempt to process it.
 class SkipRemainingOptionsError : public Exception {
 public:
     SkipRemainingOptionsError (const char* file, size_t line, const char* what) :
index 04b8b5f930ddf08ba44662a4968235cb2b785e6a..1f14aaae4a505af118b084e566f6a13206d70271 100644 (file)
@@ -49,7 +49,7 @@ Option6Auth::pack(isc::util::OutputBuffer& buf) const {
     buf.writeUint16(11 + uint16_t(auth_info_.size()));
     // protocol 1 byte
     buf.writeUint8(protocol_);
-    // algoritm 1 byte
+    // algorithm 1 byte
     buf.writeUint8(algorithm_);
     // replay detection method
     buf.writeUint8(rdm_method_);
@@ -76,7 +76,7 @@ Option6Auth::packHashInput(isc::util::OutputBuffer& buf) const {
     buf.writeUint16(OPTION6_AUTH_MIN_LEN + OPTION6_HASH_MSG_LEN);
     // protocol 1 byte
     buf.writeUint8(protocol_);
-    // algoritm 1 byte
+    // algorithm 1 byte
     buf.writeUint8(algorithm_);
     // replay detection method
     buf.writeUint8(rdm_method_);
index 1a442a7147ff8b9ddd1ab2adeffb373fe0f7e0e7..83292249a52237868126b04b708eca39b7169e1e 100644 (file)
@@ -11,7 +11,7 @@
 #include <dhcp/option.h>
 #include <boost/shared_ptr.hpp>
 
-#include <vector> 
+#include <vector>
 
 namespace isc {
 namespace dhcp {
@@ -29,7 +29,7 @@ class Option6Auth: public Option {
 public:
     static const uint8_t OPTION6_AUTH_MIN_LEN  = 11;
     static const uint8_t OPTION6_HASH_MSG_LEN  = 16;
-    static const uint8_t OPTION6_HDR = 4; 
+    static const uint8_t OPTION6_HDR = 4;
     /// @brief Constructor, used for auth options while transmitting
     ///
     /// @param proto protocol type
@@ -49,7 +49,7 @@ public:
     /// @param buf buffer (option will be stored here)
     void pack(isc::util::OutputBuffer& buf) const;
 
-    /// Writes option in wire-format to buf, for computing hash  
+    /// Writes option in wire-format to buf, for computing hash
     /// auth info filled with 0 for a length of 128 bits
     /// returns with pointer to first unused
     /// byte after stored option.
@@ -78,9 +78,9 @@ public:
     /// @param proto protocol type to be set
     void setProtocol(uint8_t proto) { protocol_ = proto; }
 
-    /// Set hash alogrithm type
+    /// Set hash algorithm type
     ///
-    /// @param algo hash alogrithm type to be set
+    /// @param algo hash algorithm type to be set
     void setHashAlgo(uint8_t algo) { algorithm_ = algo; }
 
     /// Set replay detection method type
@@ -93,7 +93,7 @@ public:
     /// @param value replay detection method value to be set
     void setReplyDetectionValue(uint64_t value) { rdm_value_ = value; }
 
-    /// Set authentication information 
+    /// Set authentication information
     ///
     /// @param auth_info authentication information to be set
     void setAuthInfo(const std::vector<uint8_t>& auth_info) { auth_info_ = auth_info; }
@@ -113,31 +113,31 @@ public:
     /// @return replay detection method type value
     uint8_t getReplyDetectionMethod() const { return rdm_method_; }
 
-    /// Return replay detection mechanism 
+    /// Return replay detection mechanism
     ///
     /// @return replay detection method value
     uint64_t getReplyDetectionValue() const { return rdm_value_; }
-    
-    /// Return authentication information 
+
+    /// Return authentication information
     ///
     /// @return authentication information value
     std::vector<uint8_t> getAuthInfo() const { return auth_info_; }
 
 protected:
-    /// keeps protocol type 
+    /// keeps protocol type
     uint8_t protocol_;
-    
+
     /// keeps hash algorithm value
     uint8_t algorithm_;
-    
+
     /// keeps replay detection method type
     uint8_t rdm_method_;
-    
+
     /// keeps replay detection method value
     uint64_t rdm_value_;
-    
+
     /// keeps authentication information
-    std::vector<uint8_t> auth_info_;   
+    std::vector<uint8_t> auth_info_;
 };
 
 } // isc::dhcp namespace
index 4acac274bb5a66d0eb83b9de2e36e434e8f3ee14..4b7fe9944132089cebd447cd7a35f2fa3f8cfe0a 100644 (file)
@@ -30,7 +30,7 @@ public:
 
 /// @brief Packet Queue Managers (PQM).
 ///
-/// Base class to manage the registry of packet queue implemenations
+/// Base class to manage the registry of packet queue implementations
 /// and the creation of and access to the current packet queue.
 ///
 /// @tparam PacktQueueTypePtr Base type of packet queues managed by
@@ -41,7 +41,7 @@ public:
     /// @brief Defines the type of the packet queue factory function.
     ///
     /// Factory function returns a pointer to the instance of the packet
-    /// queue created. 
+    /// queue created.
     typedef std::function<PacketQueueTypePtr(data::ConstElementPtr)> Factory;
 
     /// @brief Constructor.
index fd9f82f3fd3859459acf9431f431b93e03ba24ab..a839137512e5b2e4af558e6096501acbaa3afefa 100644 (file)
@@ -90,7 +90,7 @@ public:
     /// provides an opportunity to examine and discard packets from
     /// the queue prior to dequeuing the next packet to be
     /// processed.  Derivations are expected to provide implementations
-    /// based on their own requirements.  The default implemenation is to
+    /// based on their own requirements.  The default implementation is to
     /// to simply return without skipping any packets.
     ///
     /// @return The number of packets discarded.
index 0474c888c1bbcda53df2fa274bbb597520f555af..68b85f227c67d3d85c3a07d96689b08eae6b5163 100644 (file)
@@ -59,7 +59,7 @@ class Iface;
 /// on sockets must be simulated.
 ///
 /// @note This class is named after @c PktFilter abstract class which exposes
-/// similar interface for DHVPv4. However, the PktFilter class is devoted to
+/// similar interface for DHCPv4. However, the PktFilter class is devoted to
 /// solve the problem of sending DHCPv4 messages to the hosts which don't have
 /// an IP address yet (a.k.a. direct DHCPv4 traffic). Where required, the
 /// custom implementations of @c PktFilter are provided to send and receive
index 05c2f4810f9f93931052401c8736a5b6d1fde748..4e9e7d54729fb4520e1e1aa645110fff9ca9b8ef 100644 (file)
@@ -277,7 +277,7 @@ const OptionDefParams STANDARD_V4_OPTION_DEFINITIONS[] = {
       OPT_FQDN_TYPE, true, NO_RECORD_DEF, "" },
     { "bcms-controller-address", DHO_BCMCS_IPV4_ADDR, DHCP4_OPTION_SPACE,
       OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
-    // Unfortunatelly the AUTHENTICATE option contains a 64-bit
+    // Unfortunately the AUTHENTICATE option contains a 64-bit
     // data field called 'replay-detection' that can't be added
     // as a record field to a custom option. Also, there is no
     // dedicated option class to handle it so we simply return
index 062f994217073349825bf96f73516590156bdd32..daa5970f13471bf8d437a534f5f3679ec6f46825 100644 (file)
@@ -46,7 +46,7 @@ namespace {
 // "eth0" or "eth1".
 // Name of loopback interface detection.
 const size_t BUF_SIZE = 32;
-// Can be overwriten to "lo0" for instance on BSD systems.
+// Can be overwritten to "lo0" for instance on BSD systems.
 char LOOPBACK_NAME[BUF_SIZE] = "lo";
 // In fact is never 0, 1 is by far the most likely.
 uint32_t LOOPBACK_INDEX = 0;
@@ -453,7 +453,7 @@ public:
     /// @param errmsg An error string indicating the reason for failure.
     void ifaceMgrErrorHandler(const std::string&) {
         // Increase the counter of invocations to this function. By checking
-        // this number, a test amy check if the expected number of errors
+        // this number, a test may check if the expected number of errors
         // has occurred.
         ++errors_count_;
     }
@@ -749,7 +749,7 @@ public:
         // Now check whether the second callback is still functional
         EXPECT_EQ(38, write(secondpipe[1], "Hi, this is a message sent over a pipe", 38));
 
-        // Call recevie4 again, this should work.
+        // Call receive4 again, this should work.
         ASSERT_NO_THROW(pkt4 = ifacemgr->receive4(RECEIVE_WAIT_MS(10)));
 
         // Should have callback2 data only.
@@ -836,7 +836,7 @@ public:
         // Now check whether the second callback is still functional
         EXPECT_EQ(38, write(secondpipe[1], "Hi, this is a message sent over a pipe", 38));
 
-        // Call recevie6 again, this should work.
+        // Call receive6 again, this should work.
         ASSERT_NO_THROW(pkt6 = ifacemgr->receive6(RECEIVE_WAIT_MS(10)));
 
         // Should have callback2 data only.
index 51f5ea20ea609df4f696ab602aacdad37d9186f5..3e63cd7b386ab00447d2a02dd736f1ad1c90e0da 100644 (file)
@@ -1116,7 +1116,7 @@ TEST_F(LibDhcpTest, unpackPadEnd) {
     EXPECT_EQ("foo", sub->getValue());
 }
 
-// Verfies that option 0 (PAD) is handled as PAD in option 43 (so when
+// Verifies that option 0 (PAD) is handled as PAD in option 43 (so when
 // flexible pad end flag is true) only when option 0 (PAD) is not defined.
 TEST_F(LibDhcpTest, option43Pad) {
     string space = "my-option43-space";
@@ -1197,7 +1197,7 @@ TEST_F(LibDhcpTest, option43Pad) {
     EXPECT_EQ(1, sub2->getValue());
 }
 
-// Verfies that option 255 (END) is handled as END in option 43 (so when
+// Verifies that option 255 (END) is handled as END in option 43 (so when
 //flexible pad end flag is true) only when option 255 (END) is not defined.
 TEST_F(LibDhcpTest, option43End) {
     string space = "my-option43-space";
index 0020a7878a16aae4063b0c4548097ec47a085e46..7c98b160d34903fc2c41a401b56fe557ecd621df 100644 (file)
@@ -56,7 +56,7 @@ TEST_F(OptionStringTest, constructorFromString) {
     // will result in an exception.
     EXPECT_THROW(OptionString(Option::V6, 123, ""), isc::OutOfRange);
 
-    // Check that an attempt to use string containgin only nulls
+    // Check that an attempt to use string containing only nulls
     // in the constructor will result in an exception.
     std::string nulls{"\0\0",2};
     EXPECT_THROW(OptionString(Option::V6, 123, nulls), isc::OutOfRange);
index edc75ca49fcb8f2c732fd7c018e6c1def6222abb..2e2c3c0e2a69fa93cc4e54baed6b4cae1ddee749 100644 (file)
@@ -22,7 +22,7 @@ namespace {
 /// @brief DHCPv4 queue with implements drop and eat logic
 ///
 /// This class derives from the default DHCPv4 ring queue
-/// and provies implementations for shouldDropPacket() and
+/// and provides implementations for shouldDropPacket() and
 /// eatPackets().  This permits a full exercising of the
 /// PacketQueue interface as well as the basic v4 ring queue
 /// mechanics.
index 087b0bfc581c462e9077c3a0d1bb2a4f79753e98..abec5861cfaad25f4d50d7f145223c9a4b87bbf8 100644 (file)
@@ -23,7 +23,7 @@ namespace {
 /// @brief DHCPv6 queue with implements drop and eat logic
 ///
 /// This class derives from the default DHCPv6 ring queue
-/// and provies implementations for shouldDropPacket() and
+/// and provides implementations for shouldDropPacket() and
 /// eatPackets().  This permits a full exercising of the
 /// PacketQueue interface as well as the basic v6 ring queue
 /// mechanics.
index 4ad6e279b5d0e8ada95e07cae9e49145a73c9e68..3790cfa8f261f6b788cf6e11ac0c79fdf7c79006 100644 (file)
@@ -20,7 +20,7 @@ using namespace isc::dhcp::test;
 
 /// @brief Convenience function for construction a dhcp-queue-control element map
 ///
-/// @param queue_type logical name of the queue implemenation type
+/// @param queue_type logical name of the queue implementation type
 /// @param capacity maximum queue capacity
 /// @param enable_queue bool value to ascribe to the 'enable-queue' parameter, defaults to true
 data::ElementPtr
@@ -112,7 +112,7 @@ TEST_F(PacketQueueMgr4Test, defaultQueue) {
                       << default_queue_type_ << "\", \"size\": 0 }");
 }
 
-// Verifies that PQM registry and creation of custome queue implementations.
+// Verifies that PQM registry and creation of custom queue implementations.
 TEST_F(PacketQueueMgr4Test, customQueueType) {
 
     // Verify that we cannot create a queue for a non-existant type
index a24472f0b850055dc2cf7fe114c0d4a7d4cfea15..754d50ed52e97b02a816735cc152dde626077bd9 100644 (file)
@@ -101,7 +101,7 @@ TEST_F(PacketQueueMgr6Test, defaultQueue) {
                       << default_queue_type_ << "\", \"size\": 0 }");
 }
 
-// Verifies that PQM registry and creation of custome queue implementations.
+// Verifies that PQM registry and creation of custom queue implementations.
 TEST_F(PacketQueueMgr6Test, customQueueType) {
 
     // Verify that we cannot create a queue for a non-existant type
index 767a8fb70d0e034b29e3277f875b8e8b7215da79..3f1a52239a94142d7c6d4a24906049837d8444a6 100644 (file)
@@ -856,7 +856,7 @@ TEST_F(Pkt4Test, hwaddr) {
     EXPECT_TRUE(hwaddr == pkt->getHWAddr());
 }
 
-// This test verifies that the packet remte and local HW address can
+// This test verifies that the packet remote and local HW address can
 // be set and returned.
 TEST_F(Pkt4Test, hwaddrSrcRemote) {
     scoped_ptr<Pkt4> pkt(new Pkt4(DHCPOFFER, 1234));
@@ -1312,7 +1312,7 @@ TEST_F(Pkt4Test, nullTerminatedOptions) {
         pkt->pack()
     );
 
-    // Create a vector of our expectd packed option data.
+    // Create a vector of our expected packed option data.
     vector<uint8_t> packed_opts =
         {
           DHO_HOST_NAME, 3, 't', 'w', 'o',
index 9e93ef04bfad9676a72a8e265df9d770b208ec59..e4ad760b09dd54b45c1c9b8339aeed43a8d08710 100644 (file)
@@ -57,7 +57,7 @@ public:
 
     /// @brief returns captured DISCOVER from Genexis hardware.
     ///
-    /// This device in uncommon, because it doesn't send VIVSO in Dicover, but
+    /// This device in uncommon, because it doesn't send VIVSO in Discover, but
     /// expects one in Offer.
     /// @return DISCOVER.
     static isc::dhcp::Pkt4Ptr discoverGenexis();
index 0acab2bb48accb2533d667885d2d4c95f4391f0d..f6fafe212ab5b22f44efbffb88c1f577850dff1a 100644 (file)
@@ -290,7 +290,7 @@ public:
     /// @brief Instance method for marshalling the contents of the request
     /// into the given buffer in the given format.
     ///
-    /// Whe the format is:
+    /// When the format is:
     ///
     /// JSON: Upon completion, the buffer will contain a two byte unsigned
     /// integer which specifies the length of the JSON text; followed by the
index 670066664cff4a1ccaa5fb7b2f1299aeff8b74dc..fe2860bd7f78829bc00055775d539ea7c09e20d6 100644 (file)
@@ -1833,7 +1833,7 @@ private:
 protected:
     /// @brief Stores additional client query parameters on a V4 lease
     ///
-    /// Extended features such as LeaseQuery require addtional parameters
+    /// Extended features such as LeaseQuery require additional parameters
     /// to be stored for each lease, than we would otherwise retain.
     /// This function adds that information to the lease's user-context.
     /// (Note it is protected to facilitate unit testing).
@@ -1853,7 +1853,7 @@ protected:
     /// @brief Stores additional client query parameters on a V6 lease
     ///
     /// Extended features such as LeaseQuery and Reconfigure require
-    /// addtional parameters to be stored for each lease, than we would
+    /// additional parameters to be stored for each lease, than we would
     /// otherwise retain.  This function adds that information to the
     /// lease's user-context.
     /// (Note it is protected to facilitate unit testing).
index c8f93524baf04239d9340e87ca70be48120ea703..020cac63046bd0a4d107c0adce3523868c1f4bc7 100644 (file)
@@ -16,7 +16,7 @@ namespace bench {
 /// @defgroup benchmark_params Benchmark parameters that define boundary values
 ///           for benchmarks.
 ///
-/// The range is defined as 512..65533. Google benchmark will pick a few specifc
+/// The range is defined as 512..65533. Google benchmark will pick a few specific
 /// values: 512, 4096, 32768, 65533.
 
 /// @{
index ccef4355f2f39207c67c5391cc7c3a502c2cd79e..59764e1ff9f23e64a6916daad9e4bdb9a0a9c03d 100644 (file)
@@ -54,7 +54,7 @@ isc::hooks::CalloutHandlePtr getCalloutHandle(const T& pktptr) {
     return (isc::hooks::CalloutHandlePtr());
 }
 
-} // namespace shcp
+} // namespace dhcp
 } // namespace isc
 
 #endif // CALLOUT_HANDLE_STORE_H
index 46d580a8d5d2e49f83d910f89b971107830e2990..5c47516ee91b739877909c585b3ef5c73f930186 100644 (file)
@@ -81,7 +81,7 @@ CfgIface::openSockets(const uint16_t family, const uint16_t port,
     // inactive state. We will later enable them selectively using the
     // interface names specified by the user. If wildcard interface was
     // specified, mark all interfaces active. Mark loopback inactive when
-    // not explicitely allowed.
+    // not explicitly allowed.
     setState(family, !wildcard_used_, !loopback_used_);
     IfaceMgr& iface_mgr = IfaceMgr::instance();
     // Remove selection of unicast addresses from all interfaces.
index dc4f6833f7760de511b3b46eb58b1b6a8b86d154..ffa19da5db13fd1db276b61736c8d63e605c6aad 100644 (file)
@@ -424,7 +424,7 @@ public:
     /// @param server_selector Server selector.
     /// @param pd_pool_prefix Address part of the prefix of the prefix
     /// delegation pool to which the option belongs.
-    /// @param pd_pool_prefix_length Prefix length of the prefix delegayion
+    /// @param pd_pool_prefix_length Prefix length of the prefix delegation
     /// pool to which the option belongs.
     /// @param option Option to be added or updated.
     virtual void
index ff4f76e738d190e1872ee60adee5f6587993983e..2c74136159d9ba33fc7c3e72e0926ccd1863c1c5 100644 (file)
@@ -209,7 +209,7 @@ public:
     /// values which uniquely determine an entry in the table. Uses FNV-1a
     /// on 64 bits.
     ///
-    /// The primary key clustering column aggregates: host_dentifier,
+    /// The primary key clustering column aggregates: host_identifier,
     /// host_identifier_type, host_ipv4_subnet_id, host_ipv6_subnet_id,
     /// host_ipv4_address, reserved_ipv6_prefix_address,
     /// reserved_ipv6_prefix_length, option_code, option_space.
@@ -217,14 +217,14 @@ public:
 
     /// @brief Create unique key for storage in table key.
     ///
-    /// The primary key partition key aggregates: host_dentifier,
+    /// The primary key partition key aggregates: host_identifier,
     /// host_identifier_type, host_ipv4_subnet_id, host_ipv6_subnet_id,
     /// host_ipv4_address
     uint64_t hashIntoKey() const;
 
     /// @brief Create unique key string for a host.
     ///
-    /// The primary key partition key aggregates: host_dentifier,
+    /// The primary key partition key aggregates: host_identifier,
     /// host_identifier_type, host_ipv4_subnet_id, host_ipv6_subnet_id,
     /// host_ipv4_address
     std::string hostKey() const;
@@ -384,7 +384,7 @@ private:
     /// Pointer to Host object holding information being inserted into database.
     HostPtr host_;
 
-    /// @brief Primary key. Partition key. Aggregates: host_dentifier,
+    /// @brief Primary key. Partition key. Aggregates: host_identifier,
     /// host_identifier_type, host_ipv4_subnet_id host_ipv6_subnet_id,
     /// host_ipv4_address
     cass_int64_t key_;
index f63b9e253853d848d083eebe6edaff4ba9f0eca2..5550a0e29155cf57312622677c7a2fc78b8d0845 100644 (file)
@@ -73,7 +73,7 @@ public:
     /// - tcp-keepalive no
     /// - tcp-nodelay no
     ///
-    /// For details regarding those paraemters, see
+    /// For details regarding those parameters, see
     /// @ref isc::db::CqlConnection::openDatabase.
     ///
     /// Finally, all the CQL commands are pre-compiled.
@@ -109,7 +109,7 @@ public:
     ///
     /// This method supports both v4 and v6.
     ///
-    /// @param subnet_id subnet identfier.
+    /// @param subnet_id subnet identifier.
     /// @param addr specified address.
     /// @return true if deletion was successful, false if the host was not
     ///     there.
index 50d2ec2e17c11725a009183be807213c4ba0ad83..a778ff647ef39f2e72728ccaf4316866e2b0bcb9 100644 (file)
@@ -1730,7 +1730,7 @@ public:
     /// @brief Constructor to query for the stats for a range of subnets
     ///
     /// The query created will return statistics for the inclusive range of
-    /// subnets described by first and last sunbet IDs.
+    /// subnets described by first and last subnet IDs.
     ///
     /// @param conn An open connection to the database housing the lease data
     /// @param statement The lease data SQL prepared statement tag to execute
index 3e102df8ecfb9c1eaa6a54ca18c7b7b827bcccd5..9b9038ebc9ce3c96d35b6e65cfc7d7d9d6e87702 100644 (file)
@@ -30,7 +30,7 @@ namespace dhcp {
 /// The @c Lease4 is a structure that should be itself responsible for this
 /// validation (see http://oldkea.isc.org/ticket/2405). However, when #2405
 /// is implemented, the @c next function may need to be updated to use the
-/// validation capablity of @c Lease4.
+/// validation capability of @c Lease4.
 class CSVLeaseFile4 : public isc::util::VersionedCSVFile, public LeaseFileStats {
 public:
 
index 3e0e989213e6dfaf112ad90a3f7c7fb0c3bafa9c..071a4be2ebed5d328fe9ec94aa242d862a00210b 100644 (file)
@@ -29,7 +29,7 @@ namespace dhcp {
 /// The @c Lease6 is a structure that should be itself responsible for this
 /// validation (see http://oldkea.isc.org/ticket/2405). However, when #2405
 /// is implemented, the @c next function may need to be updated to use the
-/// validation capablity of @c Lease6.
+/// validation capability of @c Lease6.
 class CSVLeaseFile6 : public isc::util::VersionedCSVFile, public LeaseFileStats {
 public:
 
index 4500e2b3191f0fa3f79599e139de23f30b43cf9e..61e0621461cc67b051ae2dde735df8c15aa4fda3 100644 (file)
@@ -148,7 +148,7 @@ public:
     /// @param client_n  N Flag from the client's FQDN
     /// @param server_s [out] S Flag for the server's FQDN
     /// @param server_n [out] N Flag for the server's FQDN
-    /// @param ddns_params DDNS behaviorial configuration parameters
+    /// @param ddns_params DDNS behavioral configuration parameters
     ///
     /// @throw isc::BadValue if client_s and client_n are both 1 as this is
     /// an invalid combination per RFCs.
@@ -168,7 +168,7 @@ public:
     /// ('.' for IPv4 or ':' for IPv6) replaced with a hyphen, '-'.
     ///
     /// @param address IP address from which to derive the name (IPv4 or IPv6)
-    /// @param ddns_params DDNS behaviorial configuration parameters
+    /// @param ddns_params DDNS behavioral configuration parameters
     /// @param trailing_dot A boolean value which indicates whether trailing
     /// dot should be appended (if true) or not (false).
     ///
@@ -185,7 +185,7 @@ public:
     ///     <partial_name>.<qualifying-suffix>.
     ///
     /// @param partial_name domain name to qualify
-    /// @param ddns_params DDNS behaviorial configuration parameters
+    /// @param ddns_params DDNS behavioral configuration parameters
     /// @param trailing_dot A boolean value which when true guarantees the
     /// result will end with a "." and when false that the result will not
     /// end with a "."   Note that this rule is applied even if the qualifying
@@ -205,7 +205,7 @@ public:
     ///
     /// @param fqdn FQDN option from which to read client (inbound) flags
     /// @param fqdn_resp FQDN option to update with the server (outbound) flags
-    /// @param ddns_params DDNS behaviorial configuration parameters
+    /// @param ddns_params DDNS behavioral configuration parameters
     /// @tparam T FQDN Option class containing the FQDN data such as
     /// dhcp::Option4ClientFqdn or dhcp::Option6ClientFqdn
     template <class T>
@@ -256,7 +256,7 @@ public:
     ///
     /// @param fqdn FQDN option from which to get client (inbound) name
     /// @param fqdn_resp FQDN option to update with the adjusted name
-    /// @param ddns_params DDNS behaviorial configuration parameters
+    /// @param ddns_params DDNS behavioral configuration parameters
     /// @tparam T  FQDN Option class containing the FQDN data such as
     /// dhcp::Option4ClientFqdn or dhcp::Option6ClientFqdn
     template <class T>
@@ -276,8 +276,8 @@ public:
     /// @param io_service IOService to be used for sender IO event processing
     /// @warning It is up to the invoking layer to ensure the io_service
     /// instance used outlives the D2ClientMgr send mode. When the send mode
-    /// is exited, either explicitly by callind stopSender() or implicitly
-    /// through D2CLientMgr destruction, any ASIO objects such as sockets or
+    /// is exited, either explicitly by calling stopSender() or implicitly
+    /// through D2ClientMgr destruction, any ASIO objects such as sockets or
     /// timers will be closed and released.  If the io_service goes out of scope
     /// first this behavior could be unpredictable.
     ///
index ea664776d4f9f047b321b276b27f9905c4787180..3d271ae5120dc54e6ab291e98ff50799f29a9992 100644 (file)
@@ -218,7 +218,7 @@ FreeLeaseQueue::LeasesPtr
 FreeLeaseQueue::getLeases(const AddressRange& range) const {
     auto cont = ranges_.find(range.start_);
     if (cont == ranges_.end()) {
-        isc_throw(BadValue, "conatiner for the specified address range " << range.start_
+        isc_throw(BadValue, "container for the specified address range " << range.start_
                   << ":" << range.end_ << " does not exist");
     }
     return (cont->leases_);
@@ -228,7 +228,7 @@ FreeLeaseQueue::LeasesPtr
 FreeLeaseQueue::getLeases(const PrefixRange& range) const {
     auto cont = ranges_.find(range.start_);
     if (cont == ranges_.end()) {
-        isc_throw(BadValue, "conatiner for the specified prefix " << range.start_
+        isc_throw(BadValue, "container for the specified prefix " << range.start_
                   << " and delegated length of " << static_cast<int>(range.delegated_length_)
                   << " does not exist");
     }
@@ -238,7 +238,7 @@ FreeLeaseQueue::getLeases(const PrefixRange& range) const {
 FreeLeaseQueue::RangeDescriptor
 FreeLeaseQueue::getRangeDescriptor(const uint64_t range_index) const {
     if (ranges_.get<2>().size() <= range_index) {
-        isc_throw(BadValue, "conatiner for the specified range index " << range_index
+        isc_throw(BadValue, "container for the specified range index " << range_index
                   << " does not exist");
     }
     auto cont = ranges_.get<2>().at(range_index);
index 3a44afd17e644f176fd5becdf5f266caf3457367..f34f18ae709c68e8d726e5884a4d34b6ab58fe37 100644 (file)
@@ -268,7 +268,7 @@ public:
     uint64_t getRangeIndex(const RangeType& range) const {
         auto cont = ranges_.get<1>().find(range.start_);
         if (cont == ranges_.get<1>().end()) {
-            isc_throw(BadValue, "conatiner for the specified range " << range.start_
+            isc_throw(BadValue, "container for the specified range " << range.start_
                       << ":" << range.end_ << " does not exist");
         }
         return (std::distance(ranges_.get<2>().begin(), ranges_.project<2>(cont)));
@@ -376,7 +376,7 @@ private:
     /// @throw BadValue if the range with the given index does not exist.
     RangeDescriptor getRangeDescriptor(const uint64_t range_index) const;
 
-    /// @brief This is internal implemenation of the @c next and @c pop
+    /// @brief This is internal implementation of the @c next and @c pop
     /// methods.
     ///
     /// @param range range for which next address is to be returned.
index ad60da7c4784683c3766354de78676c04cf53018..c2825973f75ce14520fe0adc4ea64a94d4deddf2 100644 (file)
@@ -108,7 +108,7 @@ public:
     ///
     /// Set the key value.
     //  If the size is greater than 16 bytes, we resize to 16 bytes.
-    /// Doesnt throw an exception.
+    /// Doesn't throw an exception.
     /// @param key auth key in binary to be stored
     void setAuthKey(const std::vector<uint8_t>& key);
 
index 21ee69612af78ec010555cd5564d053a0cf7deba..e22146f4b61071940d21eb7df169facfe82b13fe 100644 (file)
@@ -661,7 +661,7 @@ protected:
 
     /// @brief Cache an answer.
     ///
-    /// @param host Pointer to the missied host.
+    /// @param host Pointer to the missed host.
     virtual void cache(ConstHostPtr host) const;
 
     /// @brief Cache a negative answer.
index e6710987054191d2ae58c3915bbc57674c66dd1d..a76ade3a4e3d5470e61e6ac0a8e68ea9e796f14c 100644 (file)
@@ -58,7 +58,7 @@ namespace dhcp {
 /// caller so we forget them.
 ///
 /// This algorithm guarantees that all IP addresses or delegated prefixes
-/// beloging to the given  range are returned and no duplicates are returned.
+/// belonging to the given range are returned and no duplicates are returned.
 /// The addresses or delegated prefixes are returned in a random order.
 ///
 /// @todo Methods of this class should be called in thread safe context. Otherwise
index ab7ab66c4494d79fb3ac71476aeb266915b3f3ee..71f4a525dc77a7499990ad8455b4f96b31953e46 100644 (file)
@@ -326,7 +326,7 @@ struct Lease4 : public Lease {
     /// @brief Constructor.
     ///
     /// @param address IPv4 address.
-    /// @param hw_address Pointer to client's HW addresss.
+    /// @param hw_address Pointer to client's HW address.
     /// @param client_id  pointer to the client id structure.
     /// @param valid_lifetime Valid lifetime value.
     /// @param cltt Timestamp when the lease is acquired, renewed.
index 1c8ca49a811ef532b480c576319569fe2c90d840..36227aa6e7dff5775d27ac5a2cd42833350dfea4 100644 (file)
@@ -143,13 +143,13 @@ public:
     /// The query created will return statistics for a single subnet
     ///
     /// @param subnet_id id of the subnet for which stats are desired
-    /// @throw BadValue if sunbet_id given is 0.
+    /// @throw BadValue if subnet_id given is 0.
     LeaseStatsQuery(const SubnetID& subnet_id);
 
     /// @brief Constructor to query for the stats for a range of subnets
     ///
     /// The query created will return statistics for the inclusive range of
-    /// subnets described by first and last sunbet IDs.
+    /// subnets described by first and last subnet IDs.
     ///
     /// @param first_subnet_id first subnet in the range of subnets
     /// @param last_subnet_id last subnet in the range of subnets
index 9961a788bd56bc8f108d3d03e79abc641a457132..3f91497e3fce82cd6a8dd7015b0bbd44dd3a1ec1 100644 (file)
@@ -1994,7 +1994,7 @@ public:
 /// @brief MySQL Host Context Pool
 ///
 /// This class provides a pool of contexts.
-/// The manager will use this class to handle avalilable contexts.
+/// The manager will use this class to handle available contexts.
 /// There is only one ContextPool per manager per back-end, which is created
 /// and destroyed by the respective manager factory class.
 class MySqlHostContextPool {
index 71e45bfb732a888a1398f1a821c6a3e660e691ab..580a80e4cb9cef2d37a48ef0b4210c525cb680c6 100644 (file)
@@ -1532,7 +1532,7 @@ public:
     /// @param statement_index Index of the query's prepared statement
     /// @param fetch_type Indicates if query supplies lease type
     /// @param subnet_id id of the subnet for which stats are desired
-    /// @throw BadValue if sunbet_id given is 0 or if statement index is invalid.
+    /// @throw BadValue if subnet_id given is 0 or if statement index is invalid.
     MySqlLeaseStatsQuery(MySqlConnection& conn, const size_t statement_index,
                          const bool fetch_type, const SubnetID& subnet_id)
         : LeaseStatsQuery(subnet_id), conn_(conn), statement_index_(statement_index),
@@ -1547,7 +1547,7 @@ public:
     /// @brief Constructor to query for the stats for a range of subnets
     ///
     /// The query created will return statistics for the inclusive range of
-    /// subnets described by first and last sunbet IDs.
+    /// subnets described by first and last subnet IDs.
     ///
     /// @param conn An open connection to the database housing the lease data
     /// @param statement_index Index of the query's prepared statement
index f3f8b80aec2ac45b1ffe4b597517c2d0983d0881..bd35f5eb0d2971a0df8423538dcca358bb82144e 100644 (file)
@@ -67,7 +67,7 @@ typedef boost::shared_ptr<MySqlLeaseContext> MySqlLeaseContextPtr;
 /// @brief MySQL Lease Context Pool
 ///
 /// This class provides a pool of contexts.
-/// The manager will use this class to handle avalilable contexts.
+/// The manager will use this class to handle available contexts.
 /// There is only one ContextPool per manager per back-end, which is created
 /// and destroyed by the respective manager factory class.
 class MySqlLeaseContextPool {
index d033bdba132450b51166c50bc2da10affdbf7af8..3a0401412514f681617429beb4edd14101b61baa 100644 (file)
@@ -470,7 +470,7 @@ public:
                                      inheritance, "t1-percent"));
     }
 
-    /// @brief Sets new precentage for calculating T1 (renew timer).
+    /// @brief Sets new percentage for calculating T1 (renew timer).
     ///
     /// @param t1_percent New percentage to use.
     void setT1Percent(const util::Optional<double>& t1_percent) {
@@ -486,7 +486,7 @@ public:
                                      inheritance, "t2-percent"));
     }
 
-    /// @brief Sets new precentage for calculating T2 (rebind timer).
+    /// @brief Sets new percentage for calculating T2 (rebind timer).
     ///
     /// @param t2_percent New percentage to use.
     void setT2Percent(const util::Optional<double>& t2_percent) {
@@ -526,7 +526,7 @@ public:
         ddns_override_no_update_ = ddns_override_no_update;
     }
 
-    /// @brief Returns ddns-overridie-client-update
+    /// @brief Returns ddns-override-client-update
     ///
     /// @param inheritance inheritance mode to be used.
     util::Optional<bool>
@@ -1105,7 +1105,7 @@ protected:
     /// Meaningful only if hostname_char_set_ is not empty.
     util::Optional<std::string> hostname_char_replacement_;
 
-    /// @brief Should Kea store addtional client query data (e.g. relay-agent-info)
+    /// @brief Should Kea store additional client query data (e.g. relay-agent-info)
     /// on the lease.
     util::Optional<bool> store_extended_info_;
 
index b372445421f70692485e884f6883ecc7f14f51f2..23b42c02a577f9998c562bc188bf8b44aa47936a 100644 (file)
@@ -290,7 +290,7 @@ BaseNetworkParser::parseDdnsParams(const data::ConstElementPtr& network_data,
         network->setHostnameCharReplacement(hostname_char_replacement);
     }
 
-    // We need to validate santizer values here so we can detect problems and
+    // We need to validate sanitizer values here so we can detect problems and
     // cause a configuration.  We don't retain the compilation because it's not
     // something we can inherit.
     if (!hostname_char_set.empty()) {
index f097f53eb84ee4def7eff8a8485c1313badb9d58..f46f6793a10e4c5c8a59096969f0ab3fb29f5cd8 100644 (file)
@@ -258,7 +258,7 @@ ClientClassDefParser::checkParametersSupported(const ConstElementPtr& class_def_
                                                       "user-context",
                                                       "only-if-required" };
 
-    // The v4 client class supports additional parmeters.
+    // The v4 client class supports additional parameters.
     static std::set<std::string> supported_params_v4 = { "option-def",
                                                          "next-server",
                                                          "server-hostname",
index 13044c324b98e73cbcfc86195ca63cfab30dc65d..c8cabce16dcb4424b1d9596c2682c77ee3ef804f 100644 (file)
@@ -96,7 +96,7 @@ private:
     /// literal, then it is converted into binary format.  These literals
     /// may contain upper and lower case digits.  They may be octets
     /// delimited by colons or spaces (octets may be 1 or 2 digits)
-    /// If not delimited octets then they must be a continous string of
+    /// If not delimited octets then they must be a continuous string of
     /// digits with or without a "0x" prefix.  Examples:
     ///
     /// -# ab:cd:ef   - colon delimited
index 95aa432172a6fe1d91ec3289a427ecbce07d9ae4..6e6e91ff4c5ddfad7cbb70763c3fa734c98754a1 100644 (file)
@@ -1023,7 +1023,7 @@ public:
                       " IPv6 reservation");
         }
 
-        // If we have reservation id we havent' seen yet, retrieve the
+        // If we have reservation id we haven't seen yet, retrieve the
         // the reservation, adding it to the current host
         uint64_t reservation_id = getReservationId(r, row);
         if (reservation_id && (reservation_id > most_recent_reservation_id_)) {
@@ -1356,7 +1356,7 @@ public:
 /// @brief PostgreSQL Host Context Pool
 ///
 /// This class provides a pool of contexts.
-/// The manager will use this class to handle avalilable contexts.
+/// The manager will use this class to handle available contexts.
 /// There is only one ContextPool per manager per back-end, which is created
 /// and destroyed by the respective manager factory class.
 class PgSqlHostContextPool {
index 5a9957817fd7210c7b4202d8c770f79e22e30418..9fbc409a4b2aca8113b05f8ddaf669ae707e18a6 100644 (file)
@@ -1027,7 +1027,7 @@ public:
     /// @brief Constructor to query for the stats for a range of subnets
     ///
     /// The query created will return statistics for the inclusive range of
-    /// subnets described by first and last sunbet IDs.
+    /// subnets described by first and last subnet IDs.
     ///
     /// @param conn A open connection to the database housing the lease data
     /// @param statement The lease data SQL prepared statement to execute
index f767111128d375ce804fc632c5e1f895a96e6043..d2363baecb2fb95ca7af6d8bc81531e407d81955 100644 (file)
@@ -66,7 +66,7 @@ typedef boost::shared_ptr<PgSqlLeaseContext> PgSqlLeaseContextPtr;
 /// @brief PostgreSQL Lease Context Pool
 ///
 /// This class provides a pool of contexts.
-/// The manager will use this class to handle avalilable contexts.
+/// The manager will use this class to handle available contexts.
 /// There is only one ContextPool per manager per back-end, which is created
 /// and destroyed by the respective manager factory class.
 class PgSqlLeaseContextPool {
index 63256c284d4d3e388b691c109ec0426018d06913..5e66f79778a321081411609da3ac2c1983b6906b 100644 (file)
@@ -40,7 +40,7 @@ namespace dhcp {
 
 class CfgMgr;
 
-/// @brief Convenience container for conveying DDNS behaviorial parameters
+/// @brief Convenience container for conveying DDNS behavioral parameters
 /// It is intended to be created per Packet exchange using the selected
 /// subnet passed into functions that require them
 class DdnsParams {
@@ -542,7 +542,7 @@ public:
     /// @brief Fetches the DDNS parameters for a given DHCPv4 subnet.
     ///
     /// Creates a DdnsParams structure which retain and thereafter
-    /// use the given subnet to fetch DDNS behaviorial parameters.
+    /// use the given subnet to fetch DDNS behavioral parameters.
     /// The values are fetched with the inheritance scope mode
     /// of Network::ALL.
     ///
@@ -553,7 +553,7 @@ public:
     /// @brief Fetches the DDNS parameters for a given DHCPv6 subnet.
     ///
     /// Creates a DdnsParams structure which retain and thereafter
-    /// use the given subnet to fetch DDNS behaviorial parameters.
+    /// use the given subnet to fetch DDNS behavioral parameters.
     /// The values are fetched with the inheritance scope mode
     /// of Network::ALL.
     ///
@@ -641,7 +641,7 @@ public:
     /// stored in the staging configuration. The other part of the
     /// configuration comes from the database. The configuration fetched
     /// from the database is stored in a separate @c SrvConfig instance
-    /// and then merged into the staging configuration prior to commiting
+    /// and then merged into the staging configuration prior to committing
     /// it.
     ///
     /// The merging strategy depends on the underlying data being merged.
index 13c3e80c0b3685a32c8d49d81ba9b251521cf07c..f204ba2c8e805424943d0807631ff07196fd2e70 100644 (file)
@@ -192,7 +192,7 @@ TEST_F(AllocEngine4Test, hintAlloc4) {
     subnet_->setValid(Triplet<uint32_t>(1, 3, 5));
     ctx.query_.reset(new Pkt4(DHCPREQUEST, 1234));
 
-    // Speficy the valid lifetime we want.
+    // Specify the valid lifetime we want.
     OptionUint32Ptr opt(new OptionUint32(Option::V4, DHO_DHCP_LEASE_TIME, 4));
     ctx.query_->addOption(opt);
 
@@ -229,7 +229,7 @@ TEST_F(AllocEngine4Test, minAlloc4) {
     subnet_->setValid(Triplet<uint32_t>(2, 3, 5));
     ctx.query_.reset(new Pkt4(DHCPREQUEST, 1234));
 
-    // Speficy the valid lifetime we want, as it is lower than the min value
+    // Specify the valid lifetime we want, as it is lower than the min value
     // we'll get this min value instead.
     OptionUint32Ptr opt(new OptionUint32(Option::V4, DHO_DHCP_LEASE_TIME, 1));
     ctx.query_->addOption(opt);
@@ -267,7 +267,7 @@ TEST_F(AllocEngine4Test, maxAlloc4) {
     subnet_->setValid(Triplet<uint32_t>(1, 3, 5));
     ctx.query_.reset(new Pkt4(DHCPREQUEST, 1234));
 
-    // Speficy the valid lifetime we want, as it is greater than the max value
+    // Specify the valid lifetime we want, as it is greater than the max value
     // we'll get this max value instead.
     OptionUint32Ptr opt(new OptionUint32(Option::V4, DHO_DHCP_LEASE_TIME, 6));
     ctx.query_->addOption(opt);
@@ -644,7 +644,7 @@ TEST_F(AllocEngine4Test, hintRenew4) {
     subnet_->setValid(Triplet<uint32_t>(1, 3, 5));
     ctx.query_.reset(new Pkt4(DHCPREQUEST, 1234));
 
-    // Speficy the valid lifetime we want.
+    // Specify the valid lifetime we want.
     OptionUint32Ptr opt(new OptionUint32(Option::V4, DHO_DHCP_LEASE_TIME, 4));
     ctx.query_->addOption(opt);
 
@@ -686,7 +686,7 @@ TEST_F(AllocEngine4Test, minRenew4) {
     subnet_->setValid(Triplet<uint32_t>(2, 3, 5));
     ctx.query_.reset(new Pkt4(DHCPREQUEST, 1234));
 
-    // Speficy the valid lifetime we want, as it is lower than the min value
+    // Specify the valid lifetime we want, as it is lower than the min value
     // we'll get this min value instead.
     OptionUint32Ptr opt(new OptionUint32(Option::V4, DHO_DHCP_LEASE_TIME, 1));
     ctx.query_->addOption(opt);
@@ -729,7 +729,7 @@ TEST_F(AllocEngine4Test, maxRenew4) {
     subnet_->setValid(Triplet<uint32_t>(1, 3, 5));
     ctx.query_.reset(new Pkt4(DHCPREQUEST, 1234));
 
-    // Speficy the valid lifetime we want, as it is greater than the max value
+    // Specify the valid lifetime we want, as it is greater than the max value
     // we'll get this max value instead.
     OptionUint32Ptr opt(new OptionUint32(Option::V4, DHO_DHCP_LEASE_TIME, 6));
     ctx.query_->addOption(opt);
@@ -1053,7 +1053,7 @@ public:
         return (lease);
     }
 
-    /// Covenience pointers to configuration elements. These are initialized
+    /// Convenience pointers to configuration elements. These are initialized
     /// in the constructor and are used throughout the tests.
     AllocEngine engine_;
     Subnet4Ptr subnet1_;
index 118c058279a37ed8d29834a35774afaf2ae95fc0..53757b404cbf4aa49d256322a19ee6ee5d4c5f37 100644 (file)
@@ -2949,7 +2949,7 @@ public:
         return (lease);
     }
 
-    /// Covenience pointers to configuration elements. These are initialized
+    /// Convenience pointers to configuration elements. These are initialized
     /// in the constructor and are used throughout the tests.
     AllocEngine engine_;
     Subnet6Ptr subnet1_;
@@ -3379,7 +3379,7 @@ TEST_F(SharedNetworkAlloc6Test, requestRunningOut) {
     ASSERT_TRUE(lease);
     EXPECT_EQ("2001:db8:2::ff", lease->addr_.toText());
 
-    // Ok, now try for anoher client. We should be completely full.
+    // Ok, now try for another client. We should be completely full.
     DuidPtr other_duid(new DUID(vector<uint8_t>(12, 0xff)));
     AllocEngine::ClientContext6 ctx2(subnet2_, other_duid, false, false, "", false,
                                     query);
index 770004bcf2a4a0eaf6c43656c487f5429d7be6ab..a3c1ea8218e31ee7056f12b5e7132501a44dd36a 100644 (file)
@@ -204,7 +204,7 @@ TEST_F(CfgIfaceTest, explicitLoopbackV4) {
     // Reset configuration.
     cfg.reset();
 
-    // Retry with wirdcard
+    // Retry with wildcard
     ASSERT_NO_THROW(cfg.use(AF_INET, "*"));
     ASSERT_NO_THROW(cfg.use(AF_INET, "lo"));
     ASSERT_NO_THROW(cfg.useSocketType(AF_INET, CfgIface::SOCKET_UDP));
@@ -378,7 +378,7 @@ TEST_F(CfgIfaceTest, explicitLoopbackV6) {
     // Reset configuration.
     cfg.reset();
 
-    // Retry with wirdcard
+    // Retry with wildcard
     ASSERT_NO_THROW(cfg.use(AF_INET6, "*"));
     ASSERT_NO_THROW(cfg.use(AF_INET6, "lo/::1"));
     cfg.openSockets(AF_INET6, DHCP6_SERVER_PORT);
index d52a5fd0de247e8c5f2f64594b92ccb57ab66291..951c378d22a93128750369ab5c261f7045723017 100644 (file)
@@ -42,7 +42,7 @@ namespace {
 
 /// @brief Verifies that a set of subnets contains a given a subnet
 ///
-/// @param cfg_subnets set of sunbets in which to look
+/// @param cfg_subnets set of subnets in which to look
 /// @param prefix prefix of the target subnet
 /// @param exp_subnet_id expected id of the target subnet
 /// @param exp_valid expected valid lifetime of the subnet
index 410d5432cf0697d42bf9e4ba7bf3df7606f4fe23..2447fc1230b97331447130e147292fc884c16403 100644 (file)
@@ -48,7 +48,7 @@ generateInterfaceId(const std::string& text) {
 
 /// @brief Verifies that a set of subnets contains a given a subnet
 ///
-/// @param cfg_subnets set of sunbets in which to look
+/// @param cfg_subnets set of subnets in which to look
 /// @param exp_subnet_id expected id of the target subnet
 /// @param prefix prefix of the target subnet
 /// @param exp_valid expected valid lifetime of the subnet
index 0284ba5f4688ebc63a477870e9e3929309ef1c80..43d573dd5094d79d717daa0b27a1ae4cb115dc21 100644 (file)
@@ -328,7 +328,7 @@ TEST_F(CfgMgrTest, configuration) {
 
 // This test checks the data directory handling.
 TEST_F(CfgMgrTest, dataDir) {
-    // It is only in DHCPv6 systax so switch to IPv6.
+    // It is only in DHCPv6 syntax so switch to IPv6.
     CfgMgr::instance().setFamily(AF_INET6);
 
     // Default.
index 813d46d75aee3fa76939fe634ac5b50d73caffd1..38ba37e71dfe5f5aa162de5caedaaa7355f7fba7 100644 (file)
@@ -102,7 +102,7 @@ protected:
     /// occur.
     /// @return Returns a pointer to class instance created, or NULL if
     /// for some unforeseen reason it wasn't created in the local dictionary
-    /// @throw indirectly, exceptions convertring the JSON text to elements,
+    /// @throw indirectly, exceptions converting the JSON text to elements,
     /// or by the parsing itself are not caught
     ClientClassDefPtr parseClientClassDef(const std::string& config,
                                           uint16_t family) {
@@ -128,7 +128,7 @@ protected:
     }
 
     /// @brief Test that client class parser throws when unspported parameter
-    /// is specfied.
+    /// is specified.
     ///
     /// @param config JSON string containing the client class configuration.
     /// @param family The address family indicating whether the DHCPv4 or
@@ -157,7 +157,7 @@ protected:
     /// @param family - the address family in which the parsing should
     /// occur.
     /// @return Returns a pointer to class dictionary created
-    /// @throw indirectly, execptions convertring the JSON text to elements,
+    /// @throw indirectly, execptions converting the JSON text to elements,
     /// or by the parsing itself are not caught
     ClientClassDictionaryPtr parseClientClassDefList(const std::string& config,
                                                      uint16_t family)
index 43c8e12748dd862d04fb8cb7c70d64851fd4f074..8e47e7cdfede2c8e877806fde011c2e24ccf5caa 100644 (file)
@@ -183,7 +183,7 @@ public:
 ///
 /// This test checks if the CqlHostDataSource can be instantiated.  This happens
 /// only if the database can be opened.  Note that this is not part of the
-/// CqlHostMgr test fixure set.  This test checks that the database can be
+/// CqlHostMgr test fixture set.  This test checks that the database can be
 /// opened: the fixtures assume that and check basic operations.
 
 TEST(CqlHostDataSource, OpenDatabase) {
index 38f4455e43c921ac84697cd3fa01f09a95f8a798..d33d6dc62a51d0662463ad6abedb8948e74599be 100644 (file)
@@ -334,7 +334,7 @@ public:
 ///
 /// This test checks if the CqlLeaseMgr can be instantiated.  This happens
 /// only if the database can be opened.  Note that this is not part of the
-/// CqlLeaseMgr test fixure set.  This test checks that the database can be
+/// CqlLeaseMgr test fixture set.  This test checks that the database can be
 /// opened: the fixtures assume that and check basic operations.
 TEST(CqlOpenTest, OpenDatabase) {
 
@@ -704,7 +704,7 @@ TEST_F(CqlLeaseMgrTest, lease6InvalidHostname) {
 /// @brief Verify that large IAID values work correctly.
 ///
 /// Adds lease with a large IAID to the database and verifies it can
-/// fetched correclty.
+/// fetched correctly.
 TEST_F(CqlLeaseMgrTest, leases6LargeIaidCheck) {
     testLease6LargeIaidCheck();
 }
index 5fc2a2b80ed15fa7a23fa9aaf5949816e52b1c6b..9c551d54c97fe57821c462e443a56d79bfb291d3 100644 (file)
@@ -146,7 +146,7 @@ TEST(D2ClientConfigTest, constructorsAndAccessors) {
     Optional<std::string> opt_hostname_char_set("", true);
     Optional<std::string> opt_hostname_char_replacement("", true);
 
-    // Veeify that constructor handles optional hostname char stuff.
+    // Verify that constructor handles optional hostname char stuff.
     ASSERT_NO_THROW(d2_client_config.reset(new
                                            D2ClientConfig(enable_updates,
                                                           server_ip,
index 1781ff95c4218568467be0ce13fbc7902c8e10b4..9b156515c20ed45294b3885291d1e4fe7ca4a6e5 100644 (file)
@@ -435,7 +435,7 @@ TEST_F(D2ClientMgrTest, ifaceRegister) {
     // Calling receive should complete the first message and start the second.
     IfaceMgr::instance().receive4(0, 0);
 
-    // Verify the callback hander was invoked, no errors counted.
+    // Verify the callback handler was invoked, no errors counted.
     EXPECT_EQ(2, getQueueSize());
     ASSERT_EQ(1, callback_count_);
     ASSERT_EQ(0, error_handler_count_);
index cf3f102bd63826fc57f9405eff7a2eeb4edc1ceb..3f167ef4fa7cc61e62c6a944e799b3517f168a79 100644 (file)
@@ -48,7 +48,7 @@ DHCPQueueControlParserTest::TearDown() {
 }
 
 // Verifies that DHCPQueueControlParser handles
-// expected valid dhcp-queue-control contet
+// expected valid dhcp-queue-control content
 TEST_F(DHCPQueueControlParserTest, validContent) {
     struct Scenario {
         std::string description_;
index ace091e0cc15b3243397171eb7284f45bd41112e..2a57365d44273b04ed9ee272000ebf541e6ca775 100644 (file)
@@ -1715,7 +1715,7 @@ GenericLeaseMgrTest::testGetLeases6Duid() {
 
     uint32_t iaid = 7; // random number
 
-    SubnetID subnet_id = 8; // radom number
+    SubnetID subnet_id = 8; // random number
 
     Lease6Ptr lease1(new Lease6(Lease::TYPE_NA, addr1, duid1, iaid, 100, 200,
                                 subnet_id));
index b1c739ac01a9d51cb2345f40bc3af81bdba960f5..7912fc0f27482fdac9e08315f1ccd3bb96b69fe5 100644 (file)
@@ -104,7 +104,7 @@ public:
 
     /// @brief Compares a StatsMgr statistic to an expected value
     ///
-    /// Attempt to fetch the named statistic from the StatsMg and if
+    /// Attempt to fetch the named statistic from the StatsMgr and if
     /// found, compare its observed value to the given value.
     /// Fails if the stat is not found or if the values do not match.
     ///
@@ -299,7 +299,7 @@ public:
     /// @brief verifies getLeases6 method by DUID
     ///
     /// Adds 3 leases to backend and retrieves, verifes empty
-    /// retrival of non existent DUID.
+    /// retrieval of non existent DUID.
     void testGetLeases6Duid();
 
     /// @brief Checks that getLease6() works with different DUID sizes
@@ -447,7 +447,7 @@ public:
 
     /// @brief Checks operation of v4 LeaseStatsQuery variants
     ///
-    /// It creates three subnets with leasese in various states in
+    /// It creates three subnets with leases in various states in
     /// each.  It runs and verifies the returned query contents for
     /// each of the v4 startLeaseQuery variants:
     ///
@@ -459,7 +459,7 @@ public:
 
     /// @brief Checks operation of v6 LeaseStatsQuery variants
     ///
-    /// It creates three subnets with leasese in various states in
+    /// It creates three subnets with leases in various states in
     /// each.  It runs and verifies the returned query contents for
     /// each of the v6 startLeaseQuery variants:
     ///
index a608136b3ab0b8d0d40c8108002abbfb83eec53e..ee329dd076a0368515144322cfefa624eebe2292 100644 (file)
@@ -274,8 +274,8 @@ CfgHostsSubnet::toElement() const {
         if (boot_file_name && boot_file_name->stringValue().empty()) {
             resv->remove("boot-file-name");
         }
-        ConstElementPtr client_classess = resv->get("client-classes");
-        if (client_classess && client_classess->empty()) {
+        ConstElementPtr client_classes = resv->get("client-classes");
+        if (client_classes && client_classes->empty()) {
             resv->remove("client-classes");
         }
         ConstElementPtr option_data = resv->get("option-data");
@@ -1169,7 +1169,7 @@ TEST_F(HostReservationParserTest, options6) {
     option->set("always-send", Element::create(false));
     config = prettyPrint(config_element);
     boost::algorithm::to_lower(config);
-    
+
     // Try to unparse it.
     CfgMgr::instance().setFamily(AF_INET6);
     CfgHostsSubnet cfg_subnet(cfg_hosts, SubnetID(10));
index 5827c0234bb079a4b3aed16dafa9d511cb24ec24..fde9c4db54b55ba7a81866e05eb0d5a35dc134ea 100644 (file)
@@ -36,7 +36,7 @@ protected:
 
     /// @brief Setup for each test.
     ///
-    /// Clears the configuration in the @c CfgMgr. It alse initializes
+    /// Clears the configuration in the @c CfgMgr. It also initializes
     /// hwaddr_ and duid_ class members.
     virtual void SetUp();
 
@@ -130,8 +130,8 @@ CfgHostsSubnet::toElement() const {
         if (boot_file_name && boot_file_name->stringValue().empty()) {
             resv->remove("boot-file-name");
         }
-        ConstElementPtr client_classess = resv->get("client-classes");
-        if (client_classess && client_classess->empty()) {
+        ConstElementPtr client_classes = resv->get("client-classes");
+        if (client_classes && client_classes->empty()) {
             resv->remove("client-classes");
         }
         ConstElementPtr option_data = resv->get("option-data");
@@ -259,7 +259,7 @@ TEST_F(HostReservationsListParserTest, duplicatedIdentifierValue4) {
 // parses IPv6 reservations correctly.
 TEST_F(HostReservationsListParserTest, ipv6Reservations) {
     // hexadecimal in lower case for toElement()
-    std::string config = 
+    std::string config =
         "[ "
         "  { \"duid\": \"01:02:03:04:05:06:07:08:09:0A\","
         "    \"ip-addresses\": [ ],"
index 34ffb4fa053264157b2ae9bdea0e4adf98b9289d..af0a3412cd780ee93b7c264cc9180ef5887075ca 100644 (file)
@@ -971,7 +971,7 @@ TEST_F(HostTest, toText) {
                                        IOAddress("2001:db8:1::1")));
     );
 
-    // Add invisble user context
+    // Add invisible user context
     std::string user_context = "{ \"foo\": \"bar\" }";
     host->setContext(Element::fromJSON(user_context));
 
@@ -1237,7 +1237,7 @@ TEST_F(HostTest, hostId) {
     EXPECT_EQ(12345, host->getHostId());
 }
 
-// Tets verifies if we can modify the host keys.
+// Test verifies if we can modify the host keys.
 TEST_F(HostTest, keys) {
     HostPtr host;
     ASSERT_NO_THROW(host.reset(new Host("01:02:03:04:05:06", "hw-address",
index 01dadd931ae1ff0001e1e5e5966a3241d7a2eaec..ecff883493737e1288fad5a3837ccf5c1b44d1ed 100644 (file)
@@ -107,7 +107,7 @@ public:
     /// @brief Returns existing IPv4 lease for specified client identifier,
     /// HW address and subnet identifier.
     ///
-    /// @param client_id Aclient identifier
+    /// @param client_id A client identifier
     /// @param hwaddr A HW address.
     /// @param subnet_id A subnet identifier.
     ///
@@ -352,13 +352,13 @@ public:
     /// @brief Pretends to wipe all IPv4 leases from a subnet
     /// @param subnet_id (ignored, but one day may specify the subnet)
     virtual size_t wipeLeases4(const SubnetID&) {
-        isc_throw(NotImplemented, "ConreteLeaseMgr::wipeLeases4 not implemented");
+        isc_throw(NotImplemented, "ConcreteLeaseMgr::wipeLeases4 not implemented");
     }
 
     /// @brief Pretends to wipe all IPv4 leases from a subnet
     /// @param subnet_id (ignored, but one day may specify the subnet)
     virtual size_t wipeLeases6(const SubnetID&) {
-        isc_throw(NotImplemented, "ConreteLeaseMgr::wipeLeases4 not implemented");
+        isc_throw(NotImplemented, "ConcreteLeaseMgr::wipeLeases4 not implemented");
     }
 
     /// @brief Returns backend type.
index 0dba30b8312fda402d6895a9373c8410db2802ff..443e744253343936bd96f08e89b613eaa6c0af4c 100644 (file)
@@ -1071,7 +1071,7 @@ TEST_F(MemfileLeaseMgrTest, getLeases6HostnameMultiThread) {
 }
 
 /// @brief This test adds 3 leases  and verifies fetch by DUID.
-/// Verifies retrival of non existant DUID fails
+/// Verifies retrieval of non existant DUID fails
 TEST_F(MemfileLeaseMgrTest, getLeases6Duid) {
     startBackend(V6);
     testGetLeases6Duid();
index d740b644301581e968c6425f502ad3d8f89505d7..13d8b5aedc32eedf7655818f3a735364bf3ed8dd 100644 (file)
@@ -110,10 +110,10 @@ public:
 ///
 /// This test checks if the MySqlLeaseMgr can be instantiated.  This happens
 /// only if the database can be opened.  Note that this is not part of the
-/// MySqlLeaseMgr test fixure set.  This test checks that the database can be
+/// MySqlLeaseMgr test fixture set.  This test checks that the database can be
 /// opened: the fixtures assume that and check basic operations.
 TEST(MySqlOpenTest, OpenDatabase) {
-    // Explicitely disable Multi-Threading.
+    // Explicitly disable Multi-Threading.
     MultiThreadingMgr::instance().setMode(false);
 
     // Schema needs to be created for the test to work.
@@ -686,7 +686,7 @@ TEST_F(MySqlLeaseMgrTest, lease6InvalidHostnameMultiThreading) {
 /// @brief Verify that large IAID values work correctly.
 ///
 /// Adds lease with a large IAID to the database and verifies it can
-/// fetched correclty.
+/// fetched correctly.
 TEST_F(MySqlLeaseMgrTest, leases6LargeIaidCheck) {
     testLease6LargeIaidCheck();
 }
index 393c0d36e3461c4e78cd4dd7187e99300e0bd19e..4c58ee2c119904442f425f80fbaca3a2788fc9e1 100644 (file)
@@ -110,10 +110,10 @@ public:
 ///
 /// This test checks if the PgSqlLeaseMgr can be instantiated.  This happens
 /// only if the database can be opened.  Note that this is not part of the
-/// PgSqlLeaseMgr test fixure set.  This test checks that the database can be
+/// PgSqlLeaseMgr test fixture set.  This test checks that the database can be
 /// opened: the fixtures assume that and check basic operations.
 TEST(PgSqlOpenTest, OpenDatabase) {
-    // Explicitely disable Multi-Threading.
+    // Explicitly disable Multi-Threading.
     MultiThreadingMgr::instance().setMode(false);
 
     // Schema needs to be created for the test to work.
@@ -642,7 +642,7 @@ TEST_F(PgSqlLeaseMgrTest, lease6InvalidHostnameMultiThreading) {
 /// @brief Verify that large IAID values work correctly.
 ///
 /// Adds lease with a large IAID to the database and verifies it can
-/// fetched correclty.
+/// fetched correctly.
 TEST_F(PgSqlLeaseMgrTest, leases6LargeIaidCheck) {
     testLease6LargeIaidCheck();
 }
index 0f407a226dabe1a9e69d80f56620a26cc05e98a7..e3e628101a57fddb67b5aa27fb8924ffc3bc879c 100644 (file)
@@ -1294,7 +1294,7 @@ TEST(SharedNetwork6Test, relayInfoList) {
     EXPECT_FALSE(network->hasRelays());
     EXPECT_FALSE(network->hasRelayAddress(IOAddress("2001:db8:2::1")));
 
-    // Add realy addresses to the network.
+    // Add relay addresses to the network.
     network->addRelayAddress(IOAddress("2001:db8:2::1"));
     network->addRelayAddress(IOAddress("2001:db8:2::2"));
     network->addRelayAddress(IOAddress("2001:db8:2::3"));
index 15b7d5d114b134056f2047647f3d160becf8a178..0e3bd15b2d4b3e824ff5b8f5ebe82666bc00cdb3 100644 (file)
@@ -224,7 +224,7 @@ public:
     /// notation). It simply creates an @c OptionDescriptor with the generic
     /// option instance (containing an option code and no option value) and
     /// the other @c OptionDescriptor parameters set appropriately. The
-    /// @c CfgOption class contains methds that can be used on demand to
+    /// @c CfgOption class contains methods that can be used on demand to
     /// replace these instances with the appropriate types (derived from
     /// @c Option) which represent formatted option data, if necessary.
     ///
@@ -249,7 +249,7 @@ public:
     ///
     /// @param srv_cfg server config where the global should be checked.
     /// @param name name of the global parameter
-    /// @param exp_value expected value of the global paramter as an Element
+    /// @param exp_value expected value of the global parameter as an Element
     void checkConfiguredGlobal(const SrvConfigPtr& srv_cfg,
                                const std::string &name,
                                data::ConstElementPtr exp_value);
index bdc02f461e558aa78b1500a647202cc3a10130ce..c1a058aee4a994d0e2d2af7f885eaad57cf8c8aa 100644 (file)
@@ -307,7 +307,7 @@ public:
     void testClientIdNotHWAddr();
 
     /// @brief Test adds specified number of hosts with unique hostnames, then
-    /// retrives them and checks that the hostnames are set properly.
+    /// retrieves them and checks that the hostnames are set properly.
     ///
     /// Uses gtest macros to report failures.
     ///
@@ -589,10 +589,10 @@ public:
         isc::dhcp::CfgMgr::instance().clear();
     }
 
-    /// @brief Abstract method for destroying the back end specific shcema
+    /// @brief Abstract method for destroying the back end specific schema
     virtual void destroySchema() = 0;
 
-    /// @brief Abstract method for creating the back end specific shcema
+    /// @brief Abstract method for creating the back end specific schema
     virtual void createSchema() = 0;
 
     /// @brief Abstract method which returns the back end specific connection
index fdfc6f73ffd21f75dfd895677aa9a4b905e935cf..85f1e642ed1eca486debe77d770b403bca483e41 100644 (file)
@@ -38,7 +38,7 @@ ConstHostCollection
 MemHostDataSource::getAll4(const SubnetID& subnet_id) const {
     ConstHostCollection hosts;
     for (auto h = store_.begin(); h != store_.end(); ++h) {
-        // Keep it when subnet_id matchs.
+        // Keep it when subnet_id matches.
         if ((*h)->getIPv4SubnetID() == subnet_id) {
             hosts.push_back(*h);
         }
@@ -50,7 +50,7 @@ ConstHostCollection
 MemHostDataSource::getAll6(const SubnetID& subnet_id) const {
     ConstHostCollection hosts;
     for (auto h = store_.begin(); h != store_.end(); ++h) {
-        // Keep it when subnet_id matchs.
+        // Keep it when subnet_id matches.
         if ((*h)->getIPv6SubnetID() == subnet_id) {
             hosts.push_back(*h);
         }
@@ -62,7 +62,7 @@ ConstHostCollection
 MemHostDataSource::getAllbyHostname(const std::string& hostname) const {
     ConstHostCollection hosts;
     for (auto h = store_.begin(); h != store_.end(); ++h) {
-        // Keep it when hostname matchs.
+        // Keep it when hostname matches.
         if ((*h)->getLowerHostname() == hostname) {
             hosts.push_back(*h);
         }
index 02a1803d0f3bb30ac1ba61e823379562bdddb647..3e23aac5bcaf99d5dafc6d452f23afc90c4510e7 100644 (file)
@@ -27,7 +27,7 @@ namespace test {
 /// @brief Test config backend that implements all of the DHCPv4 API calls
 ///
 /// This backend should be used for unit testing the DHCPv4 server and the
-/// commands which manpiluate the configuration information stored in the
+/// commands which manipulate the configuration information stored in the
 /// database.
 ///
 /// Server selectors supported by this test configuration backend are a
index 2e5d92cf4699be6d9d0e50162f90fb203e3080ec..85a2c739278a6e271c0a797bb9a25369e97238cf 100644 (file)
@@ -27,7 +27,7 @@ namespace test {
 /// @brief Test config backend that implements all of the DHCPv6 API calls
 ///
 /// This backend should be used for unit testing the DHCPv6 server and the
-/// commands which manpiluate the configuration information stored in the
+/// commands which manipulate the configuration information stored in the
 /// database.
 ///
 /// Server selectors supported by this test configuration backend are a
index 30a2d7b6fd6425e7a9eb71a4cf37b46c3b0db18e..b68b8c119ce385447fcfa2b67b24b2d7e8658857 100644 (file)
@@ -271,7 +271,7 @@ def generate_typeclasscode(fileprefix, basemtime, code2txt, type_or_class):
         return
 
     # Create a list of (code, code-text) pairs, where code-text is generally
-    # upper-cased, with applying speicial filters when necessary.
+    # upper-cased, with applying special filters when necessary.
     def convert(code_txt):
         # Workaround by heuristics: there's a "NULL" RR type, but it would
         # cause conflict with the C/C++ macro.  We use Null as a special case.
index c4a8fa5934f99fd745aad58470dcc630ebd3a48e..2a0fd9c799b8d0c0d4c12c9c1d4fd15436909fec 100644 (file)
@@ -366,7 +366,7 @@ public:
     virtual void handle(MasterLexer& lexer) const {
         // We've just seen '\r'.  If this is part of a sequence of '\r\n',
         // we combine them as a single END-OF-LINE.  Otherwise we treat the
-        // single '\r' as an EOL and continue tokeniziation from the character
+        // single '\r' as an EOL and continue tokenization from the character
         // immediately after '\r'.  One tricky case is that there's a comment
         // between '\r' and '\n'.  This implementation combines these
         // characters and treats them as a single EOL (the behavior derived
index dbe220b6855599d0e4f6a066d60c7ac4bf8c82b1..5cc2eb7d0c24045ffec57745a323320c49dbb672 100644 (file)
@@ -39,7 +39,7 @@ public:
     /// <b>Exceptions</b>
     ///
     /// \c InvalidRdataLength is thrown if rdata_len exceeds the maximum.
-    /// \c DNSMessageFORMERR is thrown if the RR is misformed.
+    /// \c DNSMessageFORMERR is thrown if the RR is malformed.
     TXTLikeImpl(util::InputBuffer& buffer, size_t rdata_len) {
         if (rdata_len > MAX_RDLENGTH) {
             isc_throw(InvalidRdataLength, "RDLENGTH too large: " << rdata_len);
index 871424ac8e95b01007b7d9e938945b831a5916a5..dae4ee90da1a8d5762e3e214390fe9af1191197a 100644 (file)
@@ -95,7 +95,7 @@ TEST_F(Rdata_NAPTR_Test, badText) {
     // Order or preference cannot be missed
     EXPECT_THROW(const NAPTR naptr("10 \"S\" SIP \"\" _sip._udp.example.com."),
                  InvalidRdataText);
-    // Unquoted fields must be seperated by spaces
+    // Unquoted fields must be separated by spaces
     EXPECT_THROW(const NAPTR naptr("100 10S SIP \"\" _sip._udp.example.com."),
                  InvalidRdataText);
     EXPECT_THROW(const NAPTR naptr("10010 \"S\" \"SIP\" \"\" _sip._udp.example.com."),
index 54e3d33ad5162cd95621ad878ab4b979c847840c..427d0e7c3722ad6a7e9aada689a44256bff2684e 100644 (file)
@@ -1662,7 +1662,7 @@ TEST_F(EvalContextTest, vendorClass6DataIndex) {
     testVendorClass("vendor-class[4491].data[3] == 0x1234", Option::V6, 4491, 3);
 }
 
-// Test the parsing of a sub-option with perent by code.
+// Test the parsing of a sub-option with parent by code.
 TEST_F(EvalContextTest, subOptionWithCode) {
     EvalContext eval(Option::V4);
 
@@ -1672,7 +1672,7 @@ TEST_F(EvalContextTest, subOptionWithCode) {
     checkTokenSubOption(eval.expression.at(0), 123, 234, TokenOption::TEXTUAL);
 }
 
-// Test the parsing of a sub-option with perent by name.
+// Test the parsing of a sub-option with parent by name.
 TEST_F(EvalContextTest, subOptionWithName) {
     EvalContext eval(Option::V4);
 
index 6eaee1da4a9c9996e5d31d6381316472ce63e492..411e343536f465699009b61213cbb33d9d34e53e 100644 (file)
@@ -26,7 +26,7 @@ namespace {
 /// @brief Test fixture for testing dependency.
 ///
 /// This class provides several convenience objects to be used during testing
-/// of the dependcy of classification expressions.
+/// of the dependency of classification expressions.
 class DependencyTest : public ::testing::Test {
 public:
 
index 839981c29dde27f11b2d88f2e2bcd64c8baaa573..137bb418d38e65d75b04e6e3509609ce1cc58c0e 100644 (file)
@@ -491,7 +491,7 @@ TEST_F(ExpressionsTest, evaluateString) {
     testExpressionNegative<EvalParseError>("pkt6.msgtype == 1", Option::V6,
                                            EvalContext::PARSER_STRING);
 
-    // Check that ifelse works as expecting (it was added explicitely for
+    // Check that ifelse works as expecting (it was added explicitly for
     // the string evaluation).
     testExpressionString(Option::V4,
                          "ifelse(option[100].exists,'foo','bar')", "foo");
index 0852e3f3d2e24c5d1030ce00c37881b105ce4b5d..3b2efde4fe09f28b07a499b308037d9e3f8c9259 100644 (file)
@@ -1960,7 +1960,7 @@ TEST_F(TokenTest, concat) {
 TEST_F(TokenTest, tohexstring) {
     ASSERT_NO_THROW(t_.reset(new TokenToHexString()));
 
-    // Hexstring equires two values on the stack, try
+    // Hexstring requires two values on the stack, try
     // with 0 and 1 both should throw an exception
     EXPECT_THROW(t_->evaluate(*pkt4_, values_), EvalBadStack);
 
@@ -2260,7 +2260,7 @@ TEST_F(TokenTest, vendor4SpecificVendorExists) {
     // Case 2: option present, but uses different enterprise-id, should fail
     testVendorExists(Option::V4, 4491, 1234, "false");
 
-    // Case 3: option present and has matchin enterprise-id, should succeed
+    // Case 3: option present and has matching enterprise-id, should succeed
     testVendorExists(Option::V4, 4491, 4491, "true");
 
     // Check if the logged messages are correct.
@@ -2281,7 +2281,7 @@ TEST_F(TokenTest, vendor6SpecificVendorExists) {
     // Case 2: option present, but uses different enterprise-id, should fail
     testVendorExists(Option::V6, 4491, 1234, "false");
 
-    // Case 3: option present and has matchin enterprise-id, should succeed
+    // Case 3: option present and has matching enterprise-id, should succeed
     testVendorExists(Option::V6, 4491, 4491, "true");
 
     // Check if the logged messages are correct.
index d233973198d7f91b724ba9b9e29bfed6d15dc6a5..183d9ad2f32f91fa18f8a8b6608edc0dd52c270d 100644 (file)
@@ -749,7 +749,7 @@ public:
     ///
     /// binary is the binary value (note it can be any value, i.e.
     /// it is not checked to really be not printable).
-    /// separator is litteral for instance '-' or ':'. The empty separator
+    /// separator is literal for instance '-' or ':'. The empty separator
     /// means no separator.
     ///
     /// The following example use a binary MAC address 06:ce:8f:55:b3:33:
index 3e1eb107993ef2a4b7a90d16a88ff759d6e440a8..154a516b028a94736861325de152a0dce58961c2 100644 (file)
@@ -364,7 +364,7 @@ public:
 
 private:
 
-    /// @brief This method checks whether the hook_vector_ size is suffucient
+    /// @brief This method checks whether the hook_vector_ size is sufficient
     ///        and extends it if necessary.
     ///
     /// The problem is as follows: some hooks are initialized statically
index 63dd8ca1e336dfb0e9891ecca02f1eeb352f0501..b8523c253d5067da3e4623706e8d64e8a7a477cd 100644 (file)
@@ -1189,7 +1189,7 @@ Connection::runParserInternal(const boost::system::error_code& ec,
 
 void
 Connection::timerCallback() {
-    // Request timeout occured.
+    // Request timeout occurred.
     terminate(boost::asio::error::timed_out);
 }
 
index 406d34acff2ccbf3de08acee7c3e1a3ac7938a08..abedc3cc4710f086d5ac7cc155ae3d3e766a8e20 100644 (file)
@@ -76,7 +76,7 @@ public:
     struct RequestTimeout {
         /// @brief Constructor.
         ///
-        /// @param value Reuqest/response timeout value in milliseconds.
+        /// @param value Request/response timeout value in milliseconds.
         explicit RequestTimeout(long value)
             : value_(value) {
         }
@@ -118,7 +118,7 @@ public:
     /// transaction is still in progress, the new transaction is queued. The
     /// queued transactions are started in the FIFO order one after another. If
     /// the connection is idle or the connection doesn't exist, the new
-    /// transaction is started immediatelly.
+    /// transaction is started immediately.
     ///
     /// The existing connection is tested before it is used for the new
     /// transaction by attempting to read (with message peeking) from the open
@@ -142,7 +142,7 @@ public:
     ///
     /// The callback function provided by the caller is invoked when the
     /// transaction terminates, i.e. when the server has responded or when an
-    /// error occured. The callback is expected to be exception safe, but the
+    /// error occurred. The callback is expected to be exception safe, but the
     /// client internally guards against exceptions thrown by the callback.
     ///
     /// The first argument of the callback indicates an IO error during
index cc843e78da01ddf6ee3585edd2477fa7f85ccf0a..673e4466c691416f99b19184674ca03da974dce2 100644 (file)
@@ -387,7 +387,7 @@ HttpConnection::requestTimeoutCallback(TransactionPtr transaction) {
     // if such transaction exists.
     auto request = spawned_transaction->getRequest();
 
-    // Depending on when the timeout occured, the HTTP version of the request
+    // Depending on when the timeout occurred, the HTTP version of the request
     // may or may not be available. Therefore we check if the HTTP version is
     // set in the request. If it is not available, we need to create a dummy
     // request with the default HTTP/1.0 version. This version will be used
index a24f32303ae158cac2bda35cb3d379ce7f1c4017..401f56da6e62c80c7f8718eadd183ecbe0c5cff3 100644 (file)
@@ -335,7 +335,7 @@ protected:
     /// @param transaction Pointer to the transaction to be guarded by the timeout.
     void setupRequestTimer(TransactionPtr transaction = TransactionPtr());
 
-    /// @brief Reset timer for detecing idle timeout in persistent connections.
+    /// @brief Reset timer for detecting idle timeout in persistent connections.
     void setupIdleTimer();
 
     /// @brief Callback invoked when the HTTP Request Timeout occurs.
index 0514d6ff744e1e2be60dfd462cd4eba18ce31d81..df4f46e7b8f87a17c4877c8203b9c821266216ea 100644 (file)
@@ -89,7 +89,7 @@ protected:
 
     /// @brief Creates an instance of the @c HttpConnection.
     ///
-    /// This method is virtual so as it can be overriden when customized
+    /// This method is virtual so as it can be overridden when customized
     /// connections are to be used, e.g. in case of unit testing.
     ///
     /// @param response_creator Pointer to the response creator object used to
index 851e73f1793de9adafb04338a2a54daf468552f9..410ef32efe7b672254f9cf0e0bdc33f4ba4843cc 100644 (file)
@@ -203,7 +203,7 @@ private:
     /// If the next_state is HTTP_PARSE_OK_ST it indicates that the parsed
     /// value is a 3rd new line within request HTTP message. In this case the
     /// handler calls @ref HttpRequest::create to validate the received message
-    /// (excluding body). The hander then reads the "Content-Length" header to
+    /// (excluding body). The handler then reads the "Content-Length" header to
     /// check if the request contains a body. If the "Content-Length" is greater
     /// than zero, the parser transitions to HTTP_BODY_ST. If the
     /// "Content-Length" doesn't exist the parser transitions to
index fa51caa9103c8a41992616c0fd094c602832b06f..b9a3744c45825b5656ec2066bc8b59b68c96487e 100644 (file)
@@ -201,7 +201,7 @@ private:
     /// If the next_state is HTTP_PARSE_OK_ST it indicates that the parsed
     /// value is a 3rd new line within request HTTP message. In this case the
     /// handler calls @ref HttpRequest::create to validate the received message
-    /// (excluding body). The hander then reads the "Content-Length" header to
+    /// (excluding body). The handler then reads the "Content-Length" header to
     /// check if the request contains a body. If the "Content-Length" is greater
     /// than zero, the parser transitions to HTTP_BODY_ST. If the
     /// "Content-Length" doesn't exist the parser transitions to
index 13c4bd52bb1c1316570374758522559c85fa6037..255a1a496f5a52dc5997396f30f6812852fcdee4 100644 (file)
@@ -33,7 +33,7 @@ typedef boost::shared_ptr<Response> ResponsePtr;
 /// @brief Request timeout used in tests.
 const long CONN_REQUEST_TIMEOUT = 1000;
 
-/// @brief Idle connecion timeout used in tests.
+/// @brief Idle connection timeout used in tests.
 const long CONN_IDLE_TIMEOUT = 1000;
 
 /// @brief Implementation of the @ref HttpResponseCreator.
index ebb53b0d7b1946def6a4c65fd7f69d72178ffdf8..fe07f705bbf4a93dd283a48af025101d5794b349 100644 (file)
@@ -221,7 +221,7 @@ protected:
 
     /// @brief Creates an instance of the @c HttpConnection.
     ///
-    /// This method is virtual so as it can be overriden when customized
+    /// This method is virtual so as it can be overridden when customized
     /// connections are to be used, e.g. in case of unit testing.
     ///
     /// @param io_service IO service to be used by the connection.
@@ -694,7 +694,7 @@ public:
         return (s.str());
     }
 
-    /// @brief Tests that HTTP request tiemout status is returned when the
+    /// @brief Tests that HTTP request timeout status is returned when the
     /// server does not receive the entire request.
     ///
     /// @param request Partial request for which the parser will be waiting for
@@ -818,7 +818,7 @@ TEST_F(HttpListenerTest, listen) {
 
 
 // This test verifies that persistent HTTP connection can be established when
-// "Conection: Keep-Alive" header value is specified.
+// "Connection: Keep-Alive" header value is specified.
 TEST_F(HttpListenerTest, keepAlive) {
 
     // The first request contains the keep-alive header which instructs the server
@@ -1697,9 +1697,9 @@ public:
     }
 
     /// @brief Tests that underlying TCP socket can be registered and
-    /// unregsitered via connection and close callbacks.
+    /// unregistered via connection and close callbacks.
     ///
-    /// It conducts to consequetive requests over the same client.
+    /// It conducts to consecutive requests over the same client.
     ///
     /// @param version HTTP version to be used.
     void testConnectCloseCallbacks(const HttpVersion& version) {
index a03d2bd5b5c4a1590ee99e53501dfce06d6c5a40..e0b9f2170497cb07ce1f7fb149795f0a7aa8b4e1 100644 (file)
@@ -28,7 +28,7 @@ using namespace std;
 // Older log4cplus versions (1.2.0) don't have the initializer.h header that
 // would allow explicit initialization. Newer versions (2.0.4 for sure, possibly
 // older as well) have it and it's recommended to use it. We detect whether
-// it's present or not and do explicit initalization if possible.
+// it's present or not and do explicit initialization if possible.
 #ifdef LOG4CPLUS_INITIALIZER_H
 #include <log4cplus/initializer.h>
 namespace {
index d26f28621de55e54f35716a588fd7d284ac21087..f1f03d849e91edbc251586c1c5ca135495980720 100644 (file)
@@ -222,7 +222,7 @@ public:
     /// @throw InvalidOperation if the value is NULL or the binding
     /// type is not @c MYSQL_TYPE_BLOB.
     ///
-    /// @return Blob in a vactor.
+    /// @return Blob in a vector.
     std::vector<uint8_t> getBlob() const;
 
     /// @brief Returns value held in the binding as blob.
@@ -233,7 +233,7 @@ public:
     ///
     /// @throw InvalidOperation if the binding type is not @c MYSQL_TYPE_BLOB.
     ///
-    /// @return Blob in a vactor.
+    /// @return Blob in a vector.
     std::vector<uint8_t>
     getBlobOrDefault(const std::vector<uint8_t>& default_value) const;
 
index d59cab784a4683c6914a7772c70c79e23cef2db8..c5e9a46e840783050f0b7f802c71e24104be6cae 100644 (file)
@@ -31,7 +31,7 @@ validMySQLConnectionString() {
 }
 
 void destroyMySQLSchema(bool show_err, bool force) {
-    // If force is true or wipeMySQLData() fails, destory the schema.
+    // If force is true or wipeMySQLData() fails, destroy the schema.
     if (force || (!softWipeEnabled()) || wipeMySQLData(show_err)) {
         runMySQLScript(DATABASE_SCRIPTS_DIR, "mysql/dhcpdb_drop.mysql", show_err);
     }
index 5f1f5764238825c1b1286ff866f6fa54b80d7f06..1472162cf9f46858ca4e6edd325a77980e0073b9 100644 (file)
@@ -43,7 +43,7 @@ ConfigDbInfo::getParameterValue(const std::string& name, std::string& value) con
     return(true);
 }
 
-//********* ConfiControlInfo ************//
+//******** ConfigControlInfo ********//
 
 ConfigControlInfo::ConfigControlInfo(const ConfigControlInfo& other)
     : config_fetch_wait_time_(other.config_fetch_wait_time_) {
index a450d6357c571c04d19a4c88e98ed03125e760f0..24d174405661dfcce4a963193ae38142663bed51 100644 (file)
@@ -149,7 +149,7 @@ DControllerBase::launch(int argc, char* argv[], const bool test_mode) {
     // Everything is clear for launch, so start the application's
     // event loop.
     try {
-        // Now that we have a proces, we can set up signal handling.
+        // Now that we have a process, we can set up signal handling.
         initSignalHandling();
         runProcess();
     } catch (const std::exception& ex) {
@@ -392,7 +392,7 @@ DControllerBase::configFromFile() {
         // Temporary storage for logging configuration
         ConfigPtr storage(new ConfigBase());
 
-        // Configure logging to the tempoary storage.
+        // Configure logging to the temporary storage.
         Daemon::configureLogger(module_config, storage);
 
         // Let's apply the new logging. We do it early, so we'll be able
@@ -622,7 +622,7 @@ DControllerBase::configSetHandler(const std::string&, ConstElementPtr args) {
         // Temporary storage for logging configuration
         ConfigPtr storage(new ConfigBase());
 
-        // Configure logging to the tempoary storage.
+        // Configure logging to the temporary storage.
         Daemon::configureLogger(module_config, storage);
 
         // Let's apply the new logging. We do it early, so we'll be able
index 7ace9aafb4f4cef25726089200fdb0322d256394..9932cf17c75dbcb6fa9906735c2c8813a404a8ed 100644 (file)
@@ -66,7 +66,7 @@ public:
     ///
     /// Performs configuration backend specific final clean-up. This is called
     /// shortly before the daemon terminates. Depending on backend, it may
-    /// terminat existing msgq session, close LDAP connection or similar.
+    /// terminate existing msgq session, close LDAP connection or similar.
     ///
     /// The daemon is not expected to receive any further commands or
     /// configuration updates as it is in final stages of shutdown.
index d7416592bb226b7472f9b022160581cea7e0dc35..1eaa16107c75f9cba400148dde5a5bef59c5e82b 100644 (file)
@@ -19,7 +19,7 @@ using namespace isc::util;
 
 // Verifies initializing via an access string and unparsing into elements
 // We just test basic unparsing, as more rigorous testing is done in
-// libkea-db testing which ConfibDBInfo uses.
+// libkea-db testing which ConfigDBInfo uses.
 TEST(ConfigDbInfo, basicOperation) {
     ConfigDbInfo db;
     std::string access = "type=mysql user=tom password=terrific";
@@ -144,7 +144,7 @@ TEST(ConfigControlInfo, basicOperation) {
     EXPECT_FALSE(db_info2 == ConfigControlInfo::EMPTY_DB());
     EXPECT_EQ (access_str2, db_info2.getAccessString());
 
-    // Verify not finding a db reutrns EMPTY_DB().
+    // Verify not finding a db returns EMPTY_DB().
     const ConfigDbInfo& db_info3 = ctl.findConfigDb("type", "bogus");
     EXPECT_TRUE(db_info3 == ConfigControlInfo::EMPTY_DB());
 
index 7d2a8e8d2666d94996c666e3ba9702407d73f21c..0561f21af784f293e7e3cec236a45dfa1e060de6 100644 (file)
@@ -313,7 +313,7 @@ TEST_F(LoggingTest, multipleLoggingDestinations) {
 // Verifies that log rotation occurs when configured.  We do not
 // worry about contents of the log files, only that rotation occurs.
 // Such details are tested in lib/log.  This test verifies that
-// we can correcty configure logging such that rotation occurs as
+// we can correctly configure logging such that rotation occurs as
 // expected.
 TEST_F(LoggingTest, logRotate) {
     wipeFiles();
index 7a8d1f113fb2f2f0f060d3647678dcb1c43a1c93..f69b7193f88e46070cb0f533f8648d002cbb1904 100644 (file)
@@ -66,7 +66,7 @@ public:
 TEST_F(LoggingInfoTest, defaults) {
 
     // We now need to set the default logger explicitly.
-    // Otherwise leftovers from pervious tests that use DController
+    // Otherwise leftovers from previous tests that use DController
     // would leave the default logger set to TestBin.
     Daemon::setDefaultLoggerName("kea");
 
index 01531c76eb93abe92a5440f1d497919ada19eba2..ccd4f4109d3be2b5b1aa81a8325a7c75aff9a60e 100644 (file)
@@ -261,7 +261,7 @@ protected:
 
     /// @brief Provides alternate parse file implementation
     ///
-    /// Overrides the base class implementation to mimick controllers which
+    /// Overrides the base class implementation to mimic controllers which
     /// implement alternate file parsing.  If enabled via useAlternateParser()
     /// the method will return a fixed map of elements reflecting the following
     /// JSON:
@@ -284,7 +284,7 @@ public:
     ///
     /// Overrides the base class implementation so we can
     /// verify the getting the extended version text
-    /// contains derivaiton specific contributions.
+    /// contains derivation specific contributions.
     virtual std::string getVersionAddendum() {
         return ("StubController Version Text");
     }
index b360cfa0eb637ba04e08cb6fb5eadaaeb1a3439b..ccd48a92534fb21a905b1d9d32edf8e88b5862c8 100644 (file)
@@ -292,7 +292,7 @@ TEST_F(ObservationTest, setCountLimit) {
     ASSERT_EQ(c.getSize(), 20);
     ASSERT_EQ(d.getSize(), 20);
 
-    // And whether storaged values are correct
+    // And whether stored values are correct
     uint32_t i = 20; // index of the last element in array of test's samples
     for (std::list<IntegerSample>::iterator it = samples_int.begin(); it != samples_int.end(); ++it) {
         EXPECT_EQ((*it).first, int_samples[i]);
index f0df176be48edfee1943cac3a62c82326c0aa320..ffa063ef8fe619c454ef270762b7524c369a662c 100644 (file)
@@ -48,7 +48,7 @@ public:
     ~Sandbox() {
         // Delete content of path_ recursively.
         if (nftw(path_.c_str(), Sandbox::rmFile, 10, FTW_DEPTH | FTW_MOUNT | FTW_PHYS) < 0) {
-            auto msg = "Some error occured while deleting unit test sandbox " + path_;
+            auto msg = "Some error occurred while deleting unit test sandbox " + path_;
             std::perror(msg.c_str());
             exit(1);
         }
index 7b0a97287141c5748b8a0df6826711a25c647be1..2db98cb3149ba7046a0367d5dc28579284262c1a 100644 (file)
@@ -68,7 +68,7 @@ protected:
     /// @brief Mutex used to synchronize threads.
     std::mutex mutex_;
 
-    /// Condtional variable for thread waits.
+    /// Conditional variable for thread waits.
     std::condition_variable condvar_;
 
     /// Flag indicating that the thread is ready.
index d7813fa453dd3722bf47174bad7f35b46d122ec2..a0af090d793a5ee8ca9b00a1ec0d86729cb1cc82 100644 (file)
@@ -318,7 +318,7 @@ _create_xml() {
 }
 
 # Print the lines between two matching regex patterns from a file. Excludes the
-# lines that contain the patterns themselves. Matches only the first occurence.
+# lines that contain the patterns themselves. Matches only the first occurrence.
 _print_lines_between_matching_patterns() {
     local start_pattern=${1}; shift
     local end_pattern=${1}; shift
index 0e0beb28ba2813f64aee56af7e3a441804dfa603..b3472085ab0ea3574cf27181b1b7bf2239f813cd 100644 (file)
@@ -18,7 +18,7 @@ namespace util {
 ///
 /// This template class encapsulates an optional value. The default implementation
 /// encapsulates numeric values, but additional specializations are defined
-/// as neccessary to support other types od data.
+/// as necessary to support other types od data.
 ///
 /// This class includes a boolean flag which indicates if the encapsulated
 /// value is specified or unspecified. For example, a configuration parser
index 8988906d3a9e9aa5fcbc2de610e0cde2ba367ae9..8d2efae9e0b83612085aab17676c32b19bce33c3 100644 (file)
@@ -24,7 +24,7 @@ TEST(Doubles, areDoublesEquivalent) {
     EXPECT_TRUE(areDoublesEquivalent( 1.0000000, 1.0000005));
     EXPECT_FALSE(areDoublesEquivalent(1.0000000, 1.000005));
 
-    // Check custome tolerance.
+    // Check custom tolerance.
     EXPECT_TRUE(areDoublesEquivalent( 1.000, 1.005, 0.01));
     EXPECT_FALSE(areDoublesEquivalent(1.000, 1.005, 0.001));
 }
index 10abef2052bea5de67b341513d7f2e9cd78948f8..4c26f3620320216f2f7a89a5f7661ddc4335e551 100644 (file)
@@ -244,7 +244,7 @@ TEST_F(StopwatchTest, realTime) {
     // Start it again.
     stopwatch.start();
 
-    // Slee for 1 ms.
+    // Sleep for 1 ms.
     usleep(1000);
 
     // The durations should get updated as appropriate.
index c64caa425a93e7ff1523eea6992ed067b71a5e44..f5acea0173882bea5966f61e4e8b1bc53cf54264 100644 (file)
@@ -73,7 +73,7 @@ public:
         }
         if (lock_ == 1) {
             // only one thread has the lock
-            // self healing mutex reseting the dead lock flag
+            // self healing mutex resetting the dead lock flag
             dead_lock_ = false;
             // reset the thread id
             id_ = std::thread::id();
index 594c8838823ebb8504bf73accf12a15c2c03adbf..a7e8d5ce7c45c1fccecd671e7f7fced5484c93d8 100644 (file)
@@ -73,7 +73,7 @@ public:
     /// @brief Collect definition.
     ///
     /// This method looks at an option definition and adds the
-    /// space+name to code maping into the OptionCodes codes store
+    /// space+name to code mapping into the OptionCodes codes store
     /// aka definitions.
     ///
     /// @param option The option definition.
index 1405ee53a0dd87a9c403db84afcea0b6eb8cc498..b1df18ee6f2cb1b4a4ee4e5b805420fa90c23be9 100644 (file)
@@ -285,7 +285,7 @@ YangRepr::set(const Tree& tree, S_Session session) const {
 
             default:
                 isc_throw(NotImplemented,
-                          "YangRepr::set called with unupported type: "
+                          "YangRepr::set called with unsupported type: "
                           << item.type_);
             }
             session->set_item(item.xpath_.c_str(), s_val);
index 3cac6fa6b0d102489809d57c3acd1f5a842fedf1..1352ba6b802c70b4f527d973a061cf75a6125b0d 100644 (file)
@@ -103,7 +103,7 @@ TranslatorBasic::value(S_Val s_val) {
 
     default:
         isc_throw(NotImplemented,
-                  "value called with unupported type: " << s_val->type());
+                  "value called with unsupported type: " << s_val->type());
     }
 }
 
@@ -278,7 +278,7 @@ TranslatorBasic::value(ConstElementPtr elem, sr_type_t type) {
 
     default:
         isc_throw(NotImplemented,
-                  "value called with unupported type: " << type);
+                  "value called with unsupported type: " << type);
     }
 
     return (s_val);
index a027d4a7247fc3f5282b627b472ac53e29404d0d..b6a9926099b5ddc76fb99b2a0e915145630ba14a 100644 (file)
@@ -25,7 +25,7 @@ namespace yang {
 ///     "option-data": <option data list>,
 ///     (DHCPv4 only)
 ///     "option-def": <option definition list>,
-///     "next-server": <next server addresss>,
+///     "next-server": <next server address>,
 ///     "server-hostname": <server hostname>,
 ///     "boot-file-name": <boot filename>,
 ///     "user-context": { <json map> },
@@ -67,8 +67,8 @@ namespace yang {
 /// @brief A translator class for converting a client class between
 /// YANG and JSON.
 ///
-/// Currently supports on kea-dhcp[46]-server. Ietf-dhcpv6-server does
-/// not define client classe contents.
+/// Currently supports only kea-dhcp[46]-server. Ietf-dhcpv6-server does
+/// not define client class contents.
 class TranslatorClass : virtual public TranslatorOptionDataList,
     virtual public TranslatorOptionDefList  {
 public:
@@ -118,8 +118,8 @@ protected:
 /// @brief A translator class for converting a client class list between
 /// YANG and JSON.
 ///
-/// Currently supports on kea-dhcp[46]-server. Ietf-dhcpv6-server does
-/// not define client classe contents.
+/// Currently supports only kea-dhcp[46]-server. Ietf-dhcpv6-server does
+/// not define client class contents.
 class TranslatorClasses : virtual public TranslatorClass {
 public:
 
index 5354d77c76b784ef4b5cf5d341ec94004a19a8b7..8abd659604dfe5bcf3307d73d4bb7931c308dab8 100644 (file)
@@ -154,7 +154,7 @@ protected:
     /// @param xpath The xpath of the database access.
     /// @param elem The JSON element.
     /// @param skip The skip type field flag.
-    /// @throw BadValue on database without tyoe,
+    /// @throw BadValue on database without type,
     void setDatabaseKea(const std::string& xpath,
                         isc::data::ConstElementPtr elem,
                         bool skip);
@@ -208,7 +208,7 @@ protected:
     ///
     /// @param xpath The xpath of databases including the list name.
     /// @param elem The JSON element.
-    /// @throw BadValue on database without tyoe,
+    /// @throw BadValue on database without type,
     void setDatabasesKea(const std::string& xpath,
                          isc::data::ConstElementPtr elem);
 };
index a820b1dbddc1fe1c60b0abf53332d4f2d2891ed2..9782a5ccfc9b58f259a716fd42bca7019ebf5509 100644 (file)
@@ -32,7 +32,7 @@ namespace yang {
 /// {
 ///    "output": <output, e.g. log file name>,
 ///    "maxver": <maximum file version>,
-///    "maxsize": <maxium file size>,
+///    "maxsize": <maximum file size>,
 ///    "flush": <flush flag>,
 ///    "pattern": <custom layout>
 /// }
@@ -169,7 +169,7 @@ protected:
 /// @brief A translator class for converting a logger list between
 /// YANG and JSON.
 ///
-/// Currently supports all kea servers and agents. Speficic to Kea.
+/// Currently supports all kea servers and agents. Specific to Kea.
 class TranslatorLoggers : virtual public TranslatorLogger {
 public:
 
index e6a2d9872780f3ef2b1c03d9de1f6ce4820e9a94..91757a99566d17e86d419abcdbb3c9450eacb314 100644 (file)
@@ -43,9 +43,9 @@ namespace yang {
 ///     "next-server": "<next server>",
 ///     "server-hostname": "<server hostname>",
 ///     "boot-file-name": "<boot file name>",
-///     "4o6-interface": "<dhpv4-over-dhcpv6 interface>",
-///     "4o6-interface-id": "<dhpv4-over-dhcpv6 interface id>",
-///     "4o6-subnet": "<dhpv4-over-dhcpv6 subnet>",
+///     "4o6-interface": "<dhcpv4-over-dhcpv6 interface>",
+///     "4o6-interface-id": "<dhcpv4-over-dhcpv6 interface id>",
+///     "4o6-subnet": "<dhcpv4-over-dhcpv6 subnet>",
 ///     "authoritative": <authoritative flag>,
 ///     "user-context": { <json map> },
 ///     "comment": "<comment>"
index ebc7408e29bd183032c59a665d6f28427d12dc24..84953348f3f0ae97b8912deb0f854a583eb466d0 100644 (file)
@@ -167,7 +167,7 @@ check_column() {
 # for each row that needs at least one of the columns updated. In other
 # words, if at least one of the subnet ID columns in a row is 0, an
 # update statement for that row will be emitted.  The update statements
-# are captured in a second temprory file, the "update" file.
+# are captured in a second temporary file, the "update" file.
 #
 # After exhausting the export file, the update file is submitted to
 # cqlsh for execution.
index 5ff88e91f9538fb8977cc217ad2a3ae5ff3732cd..43e75a2dc914798c1826c5102d65e249f14164c4 100644 (file)
@@ -1021,7 +1021,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet_server (
 # Modify the primary key to BINGINT as other tables have.
 ALTER TABLE dhcp4_options MODIFY option_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
 
-# Add conifguration backend specific columns.
+# Add configuration backend specific columns.
 ALTER TABLE dhcp4_options
     ADD COLUMN shared_network_name VARCHAR(128) DEFAULT NULL,
     ADD COLUMN pool_id BIGINT(20) UNSIGNED DEFAULT NULL,
@@ -1291,7 +1291,7 @@ CREATE TABLE IF NOT EXISTS dhcp6_pool (
 # Modify the primary key to BINGINT as other tables have.
 ALTER TABLE dhcp6_options MODIFY option_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
 
-# Add conifguration backend specific columns.
+# Add configuration backend specific columns.
 ALTER TABLE dhcp6_options
     ADD COLUMN shared_network_name VARCHAR(128) DEFAULT NULL,
     ADD COLUMN pool_id BIGINT(20) UNSIGNED DEFAULT NULL,
index 3ec7a0906e504b5234beaded5651cab377d75e53..7c71bd38009f8fc53b2a50ed7a8370724a9e6bc1 100644 (file)
@@ -366,7 +366,7 @@ CREATE TABLE IF NOT EXISTS dhcp4_subnet_server (
 #
 ALTER TABLE dhcp4_options MODIFY option_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
 
-# Add conifguration backend specific columns.
+# Add configuration backend specific columns.
 ALTER TABLE dhcp4_options
     ADD COLUMN shared_network_name VARCHAR(128) DEFAULT NULL,
     ADD COLUMN pool_id BIGINT(20) UNSIGNED DEFAULT NULL,
@@ -619,7 +619,7 @@ CREATE TABLE IF NOT EXISTS dhcp6_pool (
 # Modify the primary key to BINGINT as other tables have.
 ALTER TABLE dhcp6_options MODIFY option_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
 
-# Add conifguration backend specific columns.
+# Add configuration backend specific columns.
 ALTER TABLE dhcp6_options
     ADD COLUMN shared_network_name VARCHAR(128) DEFAULT NULL,
     ADD COLUMN pool_id BIGINT(20) UNSIGNED DEFAULT NULL,
index 868e779edaac98bb368e2b8b7b976f789c862235..e4d0ffed13888defe059d9408f68eda9ccf98d07 100644 (file)
@@ -47,7 +47,7 @@ psql "$@" >/dev/null <<EOF
 -- Note we have introduced a bug a while ago which causes the index to have
 -- different names depending on whether the schema was created via the
 -- dhcpdb_create.pgsql script or via updates. Therefore, let's make sure
--- that we drop the index regarless of its current name.
+-- that we drop the index regardless of its current name.
 DROP INDEX IF EXISTS key_dhcp4_ipv4_address_subnet_id;
 DROP INDEX IF EXISTS hosts_dhcp4_ipv4_address_subnet_id;
 CREATE INDEX key_dhcp4_ipv4_address_subnet_id
index 6ba2d6693ca2fd4fbb6cf6423e2ff935125d0e25..dcd8d7a34c2c3869119322690a911595379cb3b1 100755 (executable)
@@ -16,7 +16,7 @@
 # shellcheck disable=SC1004
 # SC1004: This backslash+linefeed is literal. Break outside single quotes if you
 # just want to break the line.
-# Reason: blackslash+linefeed inside single quotes in sed are needed for
+# Reason: backslash+linefeed inside single quotes in sed are needed for
 # POSIX-compliance. \n works only with GNU sed.
 
 # Exit with error if commands exit with non-zero and if undefined variables are
index d720c3637d8c35fe78e97233e265a1206fba6ed0..1a767d4d32647f4b3f88b1bce50593662960c051 100755 (executable)
@@ -91,7 +91,7 @@ mandatory_commands() {
 }
 
 # Print the lines between two matching regex patterns from a file. Excludes the
-# lines that contain the patterns themselves. Matches only the first occurence.
+# lines that contain the patterns themselves. Matches only the first occurrence.
 print_lines_between_matching_patterns() {
   mandatory_commands sed