<testsuites tests="524" failures="166">
    <testsuite name="AblyTests" tests="524" failures="166" skipped="0" time="1683.7882641553879">
        <properties>
          <property name="Configuration" value="Test Scheme Action"/>
        </properties>
        <testcase classname="ARTDefaultTests" name="testVersions()" time="0.005187034606933594">
        </testcase>
        <testcase classname="AttachRetryStateTests" name="test_addRetryAttempt()" time="0.0007690191268920898">
        </testcase>
        <testcase classname="AttachRetryStateTests" name="test_transitionToAttachingOrSuspendedStateDoesNotResetRetrySequence()" time="0.0005130767822265625">
        </testcase>
        <testcase classname="AttachRetryStateTests" name="test_transitionToNonAttachingOrSuspendedStateResetsRetrySequence()" time="0.0009289979934692383">
        </testcase>
        <testcase classname="AuthTests" name="test__001__should_not_force_token_auth_when_clientId_is_set()" time="3.83243191242218">
        </testcase>
        <testcase classname="AuthTests" name="test__002__should_accept_authURL_response_with_timestamp_argument_as_string()" time="0.7400180101394653">
            <failure message="XCTAssertNil failed: &quot;Error -1002 - unsupported URL (reason: NSURLErrorDomain)&quot; (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=4531&amp;StartingLineNumber=4531)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__004__Basic__should_send_the_API_key_in_the_Authorization_header()" time="0.15865600109100342">
        </testcase>
        <testcase classname="AuthTests" name="test__005__Basic__should_be_default_when_an_API_key_is_set()" time="0.0019010305404663086">
        </testcase>
        <testcase classname="AuthTests" name="test__006__Token__TTL_should_default_to_be_omitted()" time="0.0007659196853637695">
        </testcase>
        <testcase classname="AuthTests" name="test__007__Token__should_URL_query_be_correctly_encoded()" time="0.0047789812088012695">
            <failure message="failed - expected to param &lt;capability=%7B%22*%22:%5B%22*%22%5D%7D&gt; exists, got &lt;capability=%7B%22*%22:%5B%22*%22%5D%7D&amp;timestamp=1475965860000&amp;format=msgpack&gt;
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=1061&amp;StartingLineNumber=1061)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__008__Token__should_omit_capability_field_if_it_is_not_specified()" time="0.1341179609298706">
        </testcase>
        <testcase classname="AuthTests" name="test__009__Token__should_add_capability_field_if_the_user_specifies_it()" time="0.1308079957962036">
        </testcase>
        <testcase classname="AuthTests" name="test__010__Token__token_auth__should_work_over_HTTP()" time="0.23923301696777344">
        </testcase>
        <testcase classname="AuthTests" name="test__011__Token__token_auth__should_work_over_HTTPS()" time="0.26424992084503174">
        </testcase>
        <testcase classname="AuthTests" name="test__012__Token__token_auth__for_REST_requests__should_send_the_token_in_the_Authorization_header()" time="0.280398964881897">
        </testcase>
        <testcase classname="AuthTests" name="test__013__Token__token_auth__for_Realtime_connections__should_send_the_token_in_the_querystring_as_a_param_named_accessToken()" time="0.12339997291564941">
            <failure message="failed - expected to param &lt;accessToken=_tmp_KpYE7A.DN4XTByp9yi57hrnyJPsYc6fp-Enrq6MnOccSR8dRSaVZl4gxnrLByLBpCKNrlWaKulcxBweOUh4DjclURAORmOLrMArIaBttv7GY7akTc14u8n7Dx1xqublZodDBR5Oj&gt; exists, got &lt;agent=ably-cocoa/1.2.44%20macOS/15.6.0&amp;format=msgpack&amp;accessToken=_tmp_KpYE7A.DN4XTByp9yi57hrnyJPsYc6fp-Enrq6MnOccSR8dRSaVZl4gxnrLByLBpCKNrlWaKulcxBweOUh4DjclURAORmOLrMArIaBttv7GY7akTc14u8n7Dx1xqublZodDBR5Oj&amp;v=2&amp;echo=true&gt;
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=206&amp;StartingLineNumber=206)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__014__Token__authentication_method__should_be_default_auth_method_when_options__useTokenAuth_is_set()" time="0.001999974250793457">
        </testcase>
        <testcase classname="AuthTests" name="test__015__Token__authentication_method__should_be_default_auth_method_when_options__authUrl_is_set()" time="0.0006139278411865234">
        </testcase>
        <testcase classname="AuthTests" name="test__016__Token__authentication_method__should_be_default_auth_method_when_options__authCallback_is_set()" time="0.0007899999618530273">
        </testcase>
        <testcase classname="AuthTests" name="test__017__Token__authentication_method__should_be_default_auth_method_when_options__tokenDetails_is_set()" time="0.0006780624389648438">
        </testcase>
        <testcase classname="AuthTests" name="test__018__Token__authentication_method__should_be_default_auth_method_when_options__token_is_set()" time="0.0005189180374145508">
        </testcase>
        <testcase classname="AuthTests" name="test__019__Token__authentication_method__should_be_default_auth_method_when_options__key_is_set()" time="0.0008220672607421875">
        </testcase>
        <testcase classname="AuthTests" name="test__020__Token__authentication_method__should_indicate_an_error_and_not_retry_the_request_when_the_server_responds_with_a_token_error_and_there_is_no_way_to_renew_the_token()" time="0.12786197662353516">
        </testcase>
        <testcase classname="AuthTests" name="test__021__Token__authentication_method__should_transition_the_connection_to_the_FAILED_state_when_the_server_responds_with_a_token_error_and_there_is_no_way_to_renew_the_token()" time="2.5266369581222534">
        </testcase>
        <testcase classname="AuthTests" name="test__022__Token__authentication_method__on_token_error__reissues_token_and_retries_REST_requests()" time="0.37631893157958984">
        </testcase>
        <testcase classname="AuthTests" name="test__023__Token__authentication_method__in_REST__if_the_token_creation_failed_or_the_subsequent_request_with_the_new_token_failed_due_to_a_token_error__then_the_request_should_result_in_an_error()" time="0.0019840002059936523">
        </testcase>
        <testcase classname="AuthTests" name="test__024__Token__authentication_method__in_Realtime__if_the_token_creation_failed_then_the_connection_should_move_to_the_DISCONNECTED_state_and_reports_the_error()" time="0.0018770694732666016">
        </testcase>
        <testcase classname="AuthTests" name="test__025__Token__authentication_method__in_Realtime__if_the_connection_fails_due_to_a_terminal_token_error__then_the_connection_should_move_to_the_FAILED_state_and_reports_the_error()" time="0.33083999156951904">
        </testcase>
        <testcase classname="AuthTests" name="test__026__Token__authentication_method__if_a_request_by_a_realtime_client_to_an_authUrl_results_in_an_HTTP_403_the_client_library_should_transition_to_the_FAILED_state()" time="20.017450094223022">
            <failure message="failed - Waited more than 20.0 seconds
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=532&amp;StartingLineNumber=532)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__027__Token__authentication_method__if_an_authCallback_results_in_an_HTTP_403_the_client_library_should_transition_to_the_FAILED_state()" time="0.011120080947875977">
        </testcase>
        <testcase classname="AuthTests" name="test__028__Token__authentication_method__local_token_validity_check__should_be_done_if_queryTime_is_true_and_local_time_is_in_sync_with_server()" time="5.63031804561615">
        </testcase>
        <testcase classname="AuthTests" name="test__029__Token__authentication_method__local_token_validity_check__should_NOT_be_done_if_queryTime_is_false_and_local_time_is_NOT_in_sync_with_server()" time="5.355605959892273">
        </testcase>
        <testcase classname="AuthTests" name="test__032__Token__options__if_an_attempt_by_the_realtime_client_library_to_authenticate_is_made_using_the_authUrl_or_authCallback__the_request_to_authUrl_fails__if_the_connection_is_CONNECTING__then_the_connection_attempt_should_be_treated_as_unsuccessful()" time="0.01613306999206543">
            <failure message="XCTUnwrap failed: expected non-nil value of type &quot;ARTErrorInfo&quot; - ErrorInfo is empty (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=601&amp;StartingLineNumber=601)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__033__Token__options__if_an_attempt_by_the_realtime_client_library_to_authenticate_is_made_using_the_authUrl_or_authCallback__the_request_to_authUrl_fails__if_the_connection_is_CONNECTED__then_the_connection_should_remain_CONNECTED()" time="20.15055000782013">
            <failure message="failed - Waited more than 20.0 seconds
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=620&amp;StartingLineNumber=620)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__034__Token__options__if_an_attempt_by_the_realtime_client_library_to_authenticate_is_made_using_the_authUrl_or_authCallback__the_request_to_authCallback_fails__if_the_connection_is_CONNECTING__then_the_connection_attempt_should_be_treated_as_unsuccessful()" time="0.02572798728942871">
        </testcase>
        <testcase classname="AuthTests" name="test__035__Token__options__if_an_attempt_by_the_realtime_client_library_to_authenticate_is_made_using_the_authUrl_or_authCallback__the_request_to_authCallback_fails__if_the_connection_is_CONNECTED__then_the_connection_should_remain_CONNECTED()" time="0.3903210163116455">
        </testcase>
        <testcase classname="AuthTests" name="test__036__Token__options__if_an_attempt_by_the_realtime_client_library_to_authenticate_is_made_using_the_authUrl_or_authCallback__the_provided_token_is_in_an_invalid_format__if_the_connection_is_CONNECTING__then_the_connection_attempt_should_be_treated_as_unsuccessful()" time="0.030278921127319336">
            <failure message="failed - expected to contain &lt;content response cannot be used for token request&gt;, got &lt;Error Domain=NSURLErrorDomain Code=-1002 &quot;unsupported URL&quot; UserInfo={_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask &lt;D9A6B5C7-4ED9-4862-9AD8-676C54057767&gt;.&lt;1&gt;, NSLocalizedDescription=unsupported URL, _NSURLErrorRelatedURLSessionTaskErrorKey=(&quot;LocalDataTask &lt;D9A6B5C7-4ED9-4862-9AD8-676C54057767&gt;.&lt;1&gt;&quot;), NSUnderlyingError=0x600003b53c00 {Error Domain=kCFErrorDomainCFNetwork Code=-1002 &quot;(null)&quot;}}&gt;
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=742&amp;StartingLineNumber=742)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__037__Token__options__if_an_attempt_by_the_realtime_client_library_to_authenticate_is_made_using_the_authUrl_or_authCallback__the_provided_token_is_in_an_invalid_format__if_the_connection_is_CONNECTED__then_the_connection_should_remain_CONNECTED()" time="20.128982067108154">
            <failure message="failed - Waited more than 20.0 seconds
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=761&amp;StartingLineNumber=761)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__038__Token__options__if_an_attempt_by_the_realtime_client_library_to_authenticate_is_made_using_the_authUrl_or_authCallback__the_attempt_times_out_after_realtimeRequestTimeout__if_the_connection_is_CONNECTING__then_the_connection_attempt_should_be_treated_as_unsuccessful()" time="0.612758994102478">
        </testcase>
        <testcase classname="AuthTests" name="test__039__Token__options__if_an_attempt_by_the_realtime_client_library_to_authenticate_is_made_using_the_authUrl_or_authCallback__the_attempt_times_out_after_realtimeRequestTimeout__if_the_connection_is_CONNECTED__then_the_connection_should_remain_CONNECTED()" time="1.8565009832382202">
        </testcase>
        <testcase classname="AuthTests" name="test__040__Token__token_auth_and_clientId__should_permit_to_be_unauthenticated()" time="0.22599101066589355">
        </testcase>
        <testcase classname="AuthTests" name="test__041__Token__token_auth_and_clientId__should_check_clientId_consistency__on_rest()" time="0.11520099639892578">
        </testcase>
        <testcase classname="AuthTests" name="test__042__Token__token_auth_and_clientId__should_check_clientId_consistency__on_realtime()" time="0.26427698135375977">
        </testcase>
        <testcase classname="AuthTests" name="test__044__Token__token_auth_and_clientId__Incompatible_client__with_Realtime__it_should_change_the_connection_state_to_FAILED_and_emit_an_error()" time="0.0">
            <failure message="Crash: xctest (10389) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__045__Token__token_auth_and_clientId__Incompatible_client__with_Rest__it_should_result_in_an_appropriate_error_response()" time="4.431610941886902">
        </testcase>
        <testcase classname="AuthTests" name="test__046__Token__clientId_and_authenticated_clients__should_not_pass_clientId_with_published_message()" time="0.1554960012435913">
        </testcase>
        <testcase classname="AuthTests" name="test__047__Token__clientId_and_authenticated_clients__should_obtain_a_token_if_clientId_is_assigned()" time="0.14310503005981445">
        </testcase>
        <testcase classname="AuthTests" name="test__048__Token__clientId_and_authenticated_clients__should_convenience_clientId_return_a_string()" time="0.0007549524307250977">
        </testcase>
        <testcase classname="AuthTests" name="test__049__Token__clientId_and_authenticated_clients__ClientOptions_clientId_takes_precendence_when_a_clientId_value_is_provided_in_both_ClientOptions_clientId_and_ClientOptions_defaultTokenParams()" time="0.3314739465713501">
        </testcase>
        <testcase classname="AuthTests" name="test__051__Token__clientId_and_authenticated_clients__Auth_clientId_attribute_is_null__identity_should_be_anonymous_for_all_operations()" time="0.2750740051269531">
        </testcase>
        <testcase classname="AuthTests" name="test__052__Token__clientId_and_authenticated_clients__Auth_clientId_attribute_is_null__identity_may_change_and_become_identified()" time="0.2914750576019287">
        </testcase>
        <testcase classname="AuthTests" name="test__053__Token__clientId_and_authenticated_clients__auth_clientId_not_null__when_clientId_attribute_is_assigned_on_client_options()" time="0.0008829832077026367">
        </testcase>
        <testcase classname="AuthTests" name="test__054__Token__clientId_and_authenticated_clients__auth_clientId_not_null__when_tokenRequest_or_tokenDetails_has_clientId_not_null_or_wildcard_string()" time="0.11390292644500732">
        </testcase>
        <testcase classname="AuthTests" name="test__055__Token__clientId_and_authenticated_clients__auth_clientId_not_null__should_CONNECTED_ProtocolMessages_contain_a_clientId()" time="0.29828310012817383">
        </testcase>
        <testcase classname="AuthTests" name="test__056__Token__clientId_and_authenticated_clients__auth_clientId_not_null__client_does_not_have_an_identity_when_a_wildcard_string_____is_present()" time="0.30099809169769287">
        </testcase>
        <testcase classname="AuthTests" name="test__058__requestToken__ensure_the_message_published_does_not_have_a_clientId()" time="0.36160194873809814">
        </testcase>
        <testcase classname="AuthTests" name="test__059__requestToken__ensure_that_the_message_is_rejected()" time="0.22517502307891846">
        </testcase>
        <testcase classname="AuthTests" name="test__060__requestToken__ensure_the_message_published_with_a_wildcard_____does_not_have_a_clientId()" time="0.32143497467041016">
        </testcase>
        <testcase classname="AuthTests" name="test__061__requestToken__ensure_the_message_published_with_a_wildcard_____has_the_provided_clientId()" time="0.3291950225830078">
        </testcase>
        <testcase classname="AuthTests" name="test__062__requestToken__arguments__should_not_merge_with_the_configured_params_and_options_but_instead_replace_all_corresponding_values__even_when__null_()" time="0.2511320114135742">
        </testcase>
        <testcase classname="AuthTests" name="test__063__requestToken__arguments__should_use_configured_defaults_if_the_object_arguments_are_omitted()" time="0.2881190776824951">
        </testcase>
        <testcase classname="AuthTests" name="test__064__requestToken__authUrl__query_will_provide_a_token_string()" time="0.6575779914855957">
            <failure message="XCTAssertEqual failed: (&quot;nil&quot;) is not equal to (&quot;Optional(&quot;echo.ably.io&quot;)&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=1503&amp;StartingLineNumber=1503)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__065__requestToken__authUrl__query_will_provide_a_TokenDetails()" time="0.1193159818649292">
            <failure message="XCTUnwrap failed: throwing &quot;NSInvalidArgumentException: *** +[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write&quot; - Invalid TokenDetails (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=1515&amp;StartingLineNumber=1515)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__066__requestToken__authUrl__query_will_provide_a_TokenRequest()" time="0.0023529529571533203">
            <failure message="XCTUnwrap failed: throwing &quot;NSInvalidArgumentException: *** +[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write&quot; - Invalid TokenRequest (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=1571&amp;StartingLineNumber=1571)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__067__requestToken__authUrl__TokenParams_should_take_precedence_over_any_configured_authParams_when_a_name_conflict_occurs()" time="0.0">
            <failure message="Crash: xctest (13686) closure #1 in closure #2 in AuthTests.test__067__requestToken__authUrl__TokenParams_should_take_precedence_over_any_configured_authParams_when_a_name_conflict_occurs()">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__068__requestToken__authUrl__should_override_previously_configured_parameters()" time="0.005857944488525391">
        </testcase>
        <testcase classname="AuthTests" name="test__069__requestToken__authUrl__parameters__should_be_added_to_the_URL_when_auth_method_is_GET()" time="0.004181027412414551">
        </testcase>
        <testcase classname="AuthTests" name="test__070__requestToken__authUrl__parameters__should_added_on_the_body_request_when_auth_method_is_POST()" time="0.0016580820083618164">
        </testcase>
        <testcase classname="AuthTests" name="test__071__requestToken__should_support_all_TokenParams__using_defaults()" time="4.538004994392395">
        </testcase>
        <testcase classname="AuthTests" name="test__072__requestToken__should_support_all_TokenParams__overriding_defaults()" time="0.1349869966506958">
        </testcase>
        <testcase classname="AuthTests" name="test__073__requestToken__When_authCallback_option_is_set__it_will_invoke_the_callback__with_a_token_string()" time="0.0012680292129516602">
        </testcase>
        <testcase classname="AuthTests" name="test__074__requestToken__When_authCallback_option_is_set__it_will_invoke_the_callback__with_a_TokenDetails()" time="0.0009520053863525391">
        </testcase>
        <testcase classname="AuthTests" name="test__075__requestToken__When_authCallback_option_is_set__it_will_invoke_the_callback__with_a_TokenRequest()" time="0.7618749141693115">
            <failure message="XCTAssertTrue failed (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=1863&amp;StartingLineNumber=1863)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__077__createTokenRequest__should_override_defaults_if_AuthOptions_provided()" time="0.13920795917510986">
        </testcase>
        <testcase classname="AuthTests" name="test__078__createTokenRequest__should_use_defaults_if_no_AuthOptions_is_provided()" time="0.12560594081878662">
        </testcase>
        <testcase classname="AuthTests" name="test__079__createTokenRequest__should_replace_defaults_if__nil__option_s_field_passed()" time="0.0009429454803466797">
        </testcase>
        <testcase classname="AuthTests" name="test__081__createTokenRequest__should_create_and_sign_a_TokenRequest()" time="0.0010820627212524414">
        </testcase>
        <testcase classname="AuthTests" name="test__082__createTokenRequest__should_support_AuthOptions()" time="0.0013910531997680664">
        </testcase>
        <testcase classname="AuthTests" name="test__083__createTokenRequest__should_generate_a_unique_16_plus_character_nonce_if_none_is_provided()" time="0.0008339881896972656">
        </testcase>
        <testcase classname="AuthTests" name="test__084__createTokenRequest__should_provide_capability_has_json_text()" time="0.0037459135055541992">
        </testcase>
        <testcase classname="AuthTests" name="test__085__createTokenRequest__should_generate_a_valid_HMAC()" time="0.0010418891906738281">
        </testcase>
        <testcase classname="AuthTests" name="test__086__createTokenRequest__should_respect_all_requirements()" time="0.14852893352508545">
        </testcase>
        <testcase classname="AuthTests" name="test__087__createTokenRequest__should_generate_a_timestamp__from_current_time_if_not_provided()" time="0.0009429454803466797">
        </testcase>
        <testcase classname="AuthTests" name="test__089__createTokenRequest__TTL__should_be_optional()" time="0.001412034034729004">
        </testcase>
        <testcase classname="AuthTests" name="test__090__createTokenRequest__TTL__should_be_specified_in_milliseconds()" time="0.0">
            <failure message="Crash: xctest (15071) closure #1 in closure #1 in AuthTests.test__090__createTokenRequest__TTL__should_be_specified_in_milliseconds()">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__091__createTokenRequest__TTL__should_be_valid_to_request_a_token_for_24_hours()" time="3.8905340433120728">
        </testcase>
        <testcase classname="AuthTests" name="test__092__authorize__should_always_create_a_token()" time="0.3722720146179199">
        </testcase>
        <testcase classname="AuthTests" name="test__093__authorize__should_create_a_new_token_if_one_already_exist_and_ensure_Token_Auth_is_used_for_all_future_requests()" time="0.2990989685058594">
        </testcase>
        <testcase classname="AuthTests" name="test__094__authorize__should_create_a_token_immediately_and_ensures_Token_Auth_is_used_for_all_future_requests()" time="0.17716801166534424">
        </testcase>
        <testcase classname="AuthTests" name="test__095__authorize__should_supports_all_TokenParams_and_AuthOptions()" time="0.003527998924255371">
        </testcase>
        <testcase classname="AuthTests" name="test__097__authorize__should_return_TokenDetails_with_valid_token_metadata()" time="0.15193796157836914">
        </testcase>
        <testcase classname="AuthTests" name="test__098__authorize__should_use_the_configured_Auth_clientId__if_not_null__by_default()" time="0.23910093307495117">
        </testcase>
        <testcase classname="AuthTests" name="test__099__authorize__on_subsequent_authorisations__should_store_the_AuthOptions_with_authUrl()" time="0.7459909915924072">
            <failure message="XCTAssertNil failed: &quot;Error Domain=NSURLErrorDomain Code=-1002 &quot;unsupported URL&quot; UserInfo={NSUnderlyingError=0x600002420c60 {Error Domain=kCFErrorDomainCFNetwork Code=-1002 &quot;(null)&quot;}, NSLocalizedDescription=unsupported URL, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask &lt;D2ED4731-7E0C-4691-AC90-D4B9172B04D6&gt;.&lt;1&gt;, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    &quot;LocalDataTask &lt;D2ED4731-7E0C-4691-AC90-D4B9172B04D6&gt;.&lt;1&gt;&quot;
)}&quot; (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=2742&amp;StartingLineNumber=2742)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__100__authorize__on_subsequent_authorisations__should_store_the_AuthOptions_with_authCallback()" time="0.002254962921142578">
        </testcase>
        <testcase classname="AuthTests" name="test__102__authorize__on_subsequent_authorisations__should_store_the_TokenParams()" time="2.348981022834778">
        </testcase>
        <testcase classname="AuthTests" name="test__103__authorize__on_subsequent_authorisations__should_use_configured_defaults_if_the_object_arguments_are_omitted()" time="0.43784797191619873">
        </testcase>
        <testcase classname="AuthTests" name="test__104__authorize__should_adhere_to_all_requirements_relating_to__TokenParams()" time="0.12573599815368652">
        </testcase>
        <testcase classname="AuthTests" name="test__105__authorize__should_adhere_to_all_requirements_relating_to__authCallback()" time="0.13863110542297363">
        </testcase>
        <testcase classname="AuthTests" name="test__106__authorize__should_adhere_to_all_requirements_relating_to__authUrl()" time="0.002682924270629883">
            <failure message="failed - Error is nil
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=3013&amp;StartingLineNumber=3013)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__107__authorize__should_adhere_to_all_requirements_relating_to__authUrl_with_json()" time="0.11809408664703369">
            <failure message="XCTUnwrap failed: throwing &quot;NSInvalidArgumentException: *** +[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write&quot; - Couldn&apos;t encode token details (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=3026&amp;StartingLineNumber=3026)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__108__authorize__should_adhere_to_all_requirements_relating_to__authUrl_returning_TokenRequest_decodes_TTL_as_expected()" time="0.003000974655151367">
            <failure message="XCTUnwrap failed: throwing &quot;NSInvalidArgumentException: *** +[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write&quot; - Encode failure (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=3080&amp;StartingLineNumber=3080)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__109__authorize__should_adhere_to_all_requirements_relating_to__authUrl_with_plain_text()" time="0.14284706115722656">
            <failure message="XCTAssertNil failed: &quot;Error Domain=NSURLErrorDomain Code=-1002 &quot;unsupported URL&quot; UserInfo={_NSURLErrorRelatedURLSessionTaskErrorKey=(
    &quot;LocalDataTask &lt;C5DF8C46-E911-4BC0-9948-206F38FD657D&gt;.&lt;1&gt;&quot;
), NSUnderlyingError=0x600002435140 {Error Domain=kCFErrorDomainCFNetwork Code=-1002 &quot;(null)&quot;}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask &lt;C5DF8C46-E911-4BC0-9948-206F38FD657D&gt;.&lt;1&gt;, NSLocalizedDescription=unsupported URL}&quot; (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=3127&amp;StartingLineNumber=3127)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__110__authorize__when_TokenParams_and_AuthOptions_are_provided__should_supersede_configured_AuthOptions__using_key__even_if_arguments_objects_are_empty()" time="1.2401469945907593">
        </testcase>
        <testcase classname="AuthTests" name="test__111__authorize__when_TokenParams_and_AuthOptions_are_provided__should_supersede_configured_AuthOptions__using_authUrl__even_if_arguments_objects_are_empty()" time="0.12998807430267334">
            <failure message="XCTUnwrap failed: throwing &quot;NSInvalidArgumentException: *** +[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write&quot; - Encode failure (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=3192&amp;StartingLineNumber=3192)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__112__authorize__when_TokenParams_and_AuthOptions_are_provided__should_supersede_configured_AuthOptions__using_authCallback__even_if_arguments_objects_are_empty()" time="0.0018709897994995117">
        </testcase>
        <testcase classname="AuthTests" name="test__114__authorize__when_TokenParams_and_AuthOptions_are_provided__example__if_a_client_is_initialised_with_TokenParams_ttl_configured_with_a_custom_value__and_a_TokenParams_object_is_passed_in_as_an_argument_to__authorize_with_a_null_value_for_ttl__then_the_ttl_used_for_every_subsequent_authorization_will_be_null()" time="0.1721329689025879">
        </testcase>
        <testcase classname="AuthTests" name="test__118__authorize__server_time_offset__should_use_the_local_clock_offset_to_calculate_the_server_time()" time="0.0012530088424682617">
        </testcase>
        <testcase classname="AuthTests" name="test__121__authorize__two_consecutive_authorizations__using_REST__should_call_each_authorize_callback()" time="0.11474895477294922">
        </testcase>
        <testcase classname="AuthTests" name="test__122__authorize__two_consecutive_authorizations__using_Realtime_and_connection_is_CONNECTING__should_call_each_Realtime_authorize_callback()" time="0.4993760585784912">
            <failure message="failed - expected to param &lt;accessToken=_tmp_Civ5vA.DjiZ3Q-T9Oy-N4QhbDlugUZ8d3q6aVrwmYNJGoB_1oWHzZfgU6wsi8ZbY3be2hYYiskX8tOGA5rMUn2mStJ6hsIeVShSmxVZvFoljFBUfw2pwTj8hxtaJgbnqgQBMK8tC&gt; exists, got &lt;echo=true&amp;v=2&amp;accessToken=_tmp_Civ5vA.DjiZ3Q-T9Oy-N4QhbDlugUZ8d3q6aVrwmYNJGoB_1oWHzZfgU6wsi8ZbY3be2hYYiskX8tOGA5rMUn2mStJ6hsIeVShSmxVZvFoljFBUfw2pwTj8hxtaJgbnqgQBMK8tC&amp;agent=ably-cocoa/1.2.44%20macOS/15.6.0&amp;format=msgpack&gt;
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=3791&amp;StartingLineNumber=3791)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__123__authorize__two_consecutive_authorizations__using_Realtime_and_connection_is_CONNECTED__should_call_each_Realtime_authorize_callback()" time="0.46101701259613037">
        </testcase>
        <testcase classname="AuthTests" name="test__124__TokenParams__timestamp__if_explicitly_set__should_be_returned_by_the_getter()" time="0.00047898292541503906">
        </testcase>
        <testcase classname="AuthTests" name="test__125__TokenParams__timestamp__if_explicitly_set__the_value_should_stick()" time="0.3990139961242676">
        </testcase>
        <testcase classname="AuthTests" name="test__126__TokenParams__timestamp__object_has_no_timestamp_value_unless_explicitly_set()" time="0.0006170272827148438">
        </testcase>
        <testcase classname="AuthTests" name="test__127__Reauth__should_use_authorize__force__true___to_reauth_with_a_token_with_a_different_set_of_capabilities()" time="0.7798260450363159">
        </testcase>
        <testcase classname="AuthTests" name="test__128__Reauth__for_a_token_change_that_fails_due_to_an_incompatible_token__which_should_result_in_the_connection_entering_the_FAILED_state()" time="0.35386204719543457">
        </testcase>
        <testcase classname="AuthTests" name="test__129__TokenParams__timestamp_should_not_be_a_member_of_any_default_token_params()" time="0.0">
            <failure message="failed - expected to be greater than &lt;0&gt;, got &lt;0&gt;
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=3977&amp;StartingLineNumber=3977)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__130__TokenRequest__fromJson__rejects_invalid_JSON()" time="0.0027589797973632812">
        </testcase>
        <testcase classname="AuthTests" name="test__131__TokenRequest__fromJson__rejects_non_object_JSON()" time="0.0008130073547363281">
        </testcase>
        <testcase classname="AuthTests" name="test__132__TokenRequest__fromJson__with_TTL__accepts_a_string__which_should_be_interpreted_as_JSON()" time="0.0006229877471923828">
        </testcase>
        <testcase classname="AuthTests" name="test__133__TokenRequest__fromJson__with_TTL__accepts_a_NSDictionary()" time="0.0">
            <failure message="Crash: xctest (17255) test__accepts_a_NSDictionary #1 () in AuthTests.reusableTestsTestTokenRequestFromJson(_:testCase:beforeEach:afterEach:check:). libsystem-c.dylib: abort() called">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__134__TokenRequest__fromJson__without_TTL__accepts_a_string__which_should_be_interpreted_as_JSON()" time="0.0008790493011474609">
        </testcase>
        <testcase classname="AuthTests" name="test__135__TokenRequest__fromJson__without_TTL__accepts_a_NSDictionary()" time="0.0">
            <failure message="Crash: xctest (17713) test__accepts_a_NSDictionary #1 () in AuthTests.reusableTestsTestTokenRequestFromJson(_:testCase:beforeEach:afterEach:check:). libsystem-c.dylib: abort() called">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__136__TokenDetails__fromJson__accepts_a_string__which_should_be_interpreted_as_JSON()" time="0.0008649826049804688">
        </testcase>
        <testcase classname="AuthTests" name="test__137__TokenDetails__fromJson__accepts_a_NSDictionary()" time="0.0">
            <failure message="Crash: xctest (18829) AuthTests.test__137__TokenDetails__fromJson__accepts_a_NSDictionary(). libsystem-c.dylib: abort() called">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__138__TokenDetails__fromJson__rejects_invalid_JSON()" time="0.0011830329895019531">
        </testcase>
        <testcase classname="AuthTests" name="test__139__TokenDetails__fromJson__rejects_non_object_JSON()" time="0.0005700588226318359">
        </testcase>
        <testcase classname="AuthTests" name="test__140__JWT_and_realtime__client_initialized_with_a_JWT_token_in_ClientOptions__with_valid_credentials__pulls_stats_successfully()" time="5.797000050544739">
        </testcase>
        <testcase classname="AuthTests" name="test__141__JWT_and_realtime__client_initialized_with_a_JWT_token_in_ClientOptions__with_invalid_credentials__fails_to_connect_with_reason__invalid_signature_()" time="1.1564149856567383">
        </testcase>
        <testcase classname="AuthTests" name="test__142__JWT_and_realtime__when_using_authUrl__with_valid_credentials__fetches_a_channels_and_posts_a_message()" time="20.594550013542175">
            <failure message="failed - Waited more than 20.0 seconds
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=4152&amp;StartingLineNumber=4152)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__143__JWT_and_realtime__when_using_authUrl__with_wrong_credentials__fails_to_connect_with_reason__invalid_signature_()" time="0.18680405616760254">
            <failure message="XCTAssertEqual failed: (&quot;80019&quot;) is not equal to (&quot;40144&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=4181&amp;StartingLineNumber=4181)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__144__JWT_and_realtime__when_using_authUrl__when_token_expires__receives_a_40142_error_from_the_server()" time="20.006538033485413">
            <failure message="failed - Waited more than 20.0 seconds
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=4203&amp;StartingLineNumber=4203)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__145__JWT_and_realtime__when_using_authUrl__when_the_server_sends_and_AUTH_protocol_message__client_reauths_correctly_without_going_through_a_disconnection()" time="20.00635302066803">
            <failure message="failed - Waited more than 20.0 seconds
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=4237&amp;StartingLineNumber=4237)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__146__JWT_and_realtime__when_using_authCallback__with_valid_credentials__pulls_stats_successfully()" time="0.8157550096511841">
        </testcase>
        <testcase classname="AuthTests" name="test__147__JWT_and_realtime__when_using_authCallback__with_invalid_credentials__fails_to_connect()" time="2.23923397064209">
        </testcase>
        <testcase classname="AuthTests" name="test__148__JWT_and_realtime__when_token_expires_and_has_a_means_to_renew__reconnects_using_authCallback_and_obtains_a_new_token()" time="4.3042110204696655">
        </testcase>
        <testcase classname="AuthTests" name="test__149__JWT_and_realtime__when_the_token_request_includes_a_clientId__the_clientId_is_the_same_specified_in_the_JWT_token_request()" time="0.8454970121383667">
        </testcase>
        <testcase classname="AuthTests" name="test__150__JWT_and_realtime__when_the_token_request_includes_subscribe_only_capabilities__fails_to_publish_to_a_channel_with_subscribe_only_capability()" time="1.021041989326477">
        </testcase>
        <testcase classname="AuthTests" name="test__151__currentTokenDetails__should_hold_a__TokenDetails__instance_in_which_only_the__token__attribute_is_populated_with_that_token_string()" time="0.20332598686218262">
        </testcase>
        <testcase classname="AuthTests" name="test__152__currentTokenDetails__should_be_set_with_the_current_token__if_applicable__on_instantiation_and_each_time_it_is_replaced()" time="0.1948850154876709">
        </testcase>
        <testcase classname="AuthTests" name="test__153__currentTokenDetails__should_be_empty_if_there_is_no_current_token()" time="0.0007709264755249023">
        </testcase>
        <testcase classname="AuthTests" name="test__154__JWT_and_rest__when_the_JWT_token_embeds_an_Ably_token__pulls_stats_successfully()" time="0.8189399242401123">
        </testcase>
        <testcase classname="AuthTests" name="test__155__JWT_and_rest__when_the_JWT_token_embeds_an_Ably_token_and_it_is_requested_as_encrypted__pulls_stats_successfully()" time="0.7115250825881958">
        </testcase>
        <testcase classname="AuthTests" name="test__156__JWT_and_rest__when_the_JWT_token_is_returned_with_application_jwt_content_type__the_client_successfully_connects_and_pulls_stats()" time="0.19325101375579834">
            <failure message="XCTAssertNil failed: &quot;Error 40400 - Could not find path: /createJWT&quot; (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/AuthTests.swift#EndingLineNumber=4452&amp;StartingLineNumber=4452)">
            </failure>
        </testcase>
        <testcase classname="AuthTests" name="test__157__JWT_and_rest__when_the_JWT_token_is_returned_with_application_jwt_content_type__the_client_can_request_a_new_token_to_initilize_another_client_that_connects_and_pulls_stats()" time="0.0">
            <failure message="Crash: xctest (19358) closure #1 in closure #1 in AuthTests.test__157__JWT_and_rest__when_the_JWT_token_is_returned_with_application_jwt_content_type__the_client_can_request_a_new_token_to_initilize_another_client_that_connects_and_pulls_stats()">
            </failure>
        </testcase>
        <testcase classname="BackoffRetryDelayCalculatorTests" name="test_delay()" time="0.013206005096435547">
        </testcase>
        <testcase classname="ChannelOptionsTests" name="test_copyChannelOptions()" time="0.0">
            <failure message="Crash: xctest (22686) static ARTCrypto.getDefaultParams(_:)">
            </failure>
        </testcase>
        <testcase classname="ChannelOptionsTests" name="test_copyingFrozenChannelOptions_createsUnfrozenCopy()" time="0.0006670951843261719">
        </testcase>
        <testcase classname="ChannelOptionsTests" name="test_copyingFrozenRealtimeChannelOptions_createsUnfrozenCopy()" time="0.00047600269317626953">
        </testcase>
        <testcase classname="ChannelOptionsTests" name="test_copyRealtimeChannelOptions()" time="0.0">
            <failure message="Crash: xctest (23155) static ARTCrypto.getDefaultParams(_:)">
            </failure>
        </testcase>
        <testcase classname="ClientInformationTests" name="testAgentIdentifierWithAdditionalAgents_withNilAdditionalAgents()" time="0.0007760524749755859">
        </testcase>
        <testcase classname="ClientInformationTests" name="testAgentIdentifierWithAdditionalAgents_withNonNilAdditionalAgents()" time="0.0011010169982910156">
        </testcase>
        <testcase classname="ClientInformationTests" name="testAgents()" time="0.00048100948333740234">
        </testcase>
        <testcase classname="ConnectRetryStateTests" name="test_addRetryAttempt()" time="0.0007280111312866211">
        </testcase>
        <testcase classname="ConnectRetryStateTests" name="test_transitionToConnectingOrDisconnectedStateDoesNotResetRetrySequence()" time="0.0004780292510986328">
        </testcase>
        <testcase classname="ConnectRetryStateTests" name="test_transitionToNonConnectingOrDisconnectedStateResetsRetrySequence()" time="0.0008499622344970703">
        </testcase>
        <testcase classname="ContinuousClockTests" name="test_advancedBy()" time="0.5070300102233887">
        </testcase>
        <testcase classname="ContinuousClockTests" name="test_isAfter()" time="0.2793160676956177">
        </testcase>
        <testcase classname="CryptoTests" name="test__002__Crypto__getDefaultParams__calculates_a_keyLength_from_the_key__its_size_in_bits_()" time="0.0">
            <failure message="Crash: xctest (24353) static ARTCrypto.getDefaultParams(_:)">
            </failure>
        </testcase>
        <testcase classname="CryptoTests" name="test__004__Crypto__getDefaultParams__key_parameter__can_be_a_binary()" time="0.0">
            <failure message="Crash: xctest (24986) static ARTCrypto.getDefaultParams(_:)">
            </failure>
        </testcase>
        <testcase classname="CryptoTests" name="test__005__Crypto__getDefaultParams__key_parameter__can_be_a_base64_encoded_string_with_standard_encoding()" time="0.0007039308547973633">
        </testcase>
        <testcase classname="CryptoTests" name="test__006__Crypto__getDefaultParams__key_parameter__can_be_a_base64_encoded_string_with_URL_encoding()" time="0.0004780292510986328">
        </testcase>
        <testcase classname="CryptoTests" name="test__007__Crypto__generateRandomKey__takes_a_single_length_argument_and_returns_a_binary()" time="0.0004069805145263672">
        </testcase>
        <testcase classname="CryptoTests" name="test__008__Crypto__generateRandomKey__takes_no_arguments_and_returns_the_default_algorithm_s_default_length()" time="0.00037992000579833984">
        </testcase>
        <testcase classname="CryptoTests" name="test__009__Crypto__generateHashSHA256__takes_data_and_returns_a_SHA256_digest()" time="0.000538945198059082">
        </testcase>
        <testcase classname="CryptoTests" name="test__010__Crypto__encrypt__should_generate_a_new_IV_every_time_it_s_called__and_should_be_the_first_block_encrypted()" time="0.0006750822067260742">
        </testcase>
        <testcase classname="CryptoTests" name="test__011__Crypto__with_fixtures_from_crypto_data_128_json__should_encrypt_messages_as_expected_in_the_fixtures()" time="0.46134698390960693">
            <failure message="XCTAssertEqual failed: (&quot;&lt;ARTMessage: 0x000000011d61c4f0&gt; {
 id: nil,
 clientId: nil,
 connectionId: nil,
 timestamp: nil,
 encoding: Optional(&quot;utf-8/cipher+aes-128-cbc/base64&quot;),
 data: Optional(&quot;HO4cYSP8LybPYBPZPHQOtmHItcxYdSvcNUC6kXVpMn0VFL+9z2/5tJ6WFbR0SBT1xhFRuJ+MeBGTU3yOY9P5ow==&quot;)
 extras: nil,
 name: example
 action: Create
 serial: nil
 updateSerial: nil
 version: nil
 createdAt: nil
 updatedAt: nil
 refType: nil
 refSerial: nil
 operation: nil
 summary: nil
}&quot;) is not equal to (&quot;&lt;ARTMessage: 0x000000011d61f590&gt; {
 id: nil,
 clientId: nil,
 connectionId: nil,
 timestamp: nil,
 encoding: Optional(&quot;utf-8/cipher+aes-128-cbc/base64&quot;),
 data: Optional(&quot;HO4cYSP8LybPYBPZPHQOtmHItcxYdSvcNUC6kXVpMn0VFL+9z2/5tJ6WFbR0SBT1xhFRuJ+MeBGTU3yOY9P5ow==&quot;)
 extras: nil,
 name: example
 action: Create
 serial: nil
 updateSerial: nil
 version: nil
 createdAt: nil
 updatedAt: nil
 refType: nil
 refSerial: nil
 operation: nil
 summary: nil
}&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/CryptoTests.swift#EndingLineNumber=162&amp;StartingLineNumber=162)">
            </failure>
        </testcase>
        <testcase classname="CryptoTests" name="test__012__Crypto__with_fixtures_from_crypto_data_128_json__should_decrypt_messages_as_expected_in_the_fixtures()" time="0.007794976234436035">
            <failure message="XCTAssertEqual failed: (&quot;&lt;ARTMessage: 0x000000011d61f970&gt; {
 id: nil,
 clientId: nil,
 connectionId: nil,
 timestamp: nil,
 encoding: nil,
 data: Optional(Optional(&quot;The quick brown fox jumped over the lazy dog&quot;))
 extras: nil,
 name: example
 action: Create
 serial: nil
 updateSerial: nil
 version: nil
 createdAt: nil
 updatedAt: nil
 refType: nil
 refSerial: nil
 operation: nil
 summary: nil
}&quot;) is not equal to (&quot;&lt;ARTMessage: 0x000000011d6044a0&gt; {
 id: nil,
 clientId: nil,
 connectionId: nil,
 timestamp: nil,
 encoding: nil,
 data: Optional(&quot;The quick brown fox jumped over the lazy dog&quot;)
 extras: nil,
 name: example
 action: Create
 serial: nil
 updateSerial: nil
 version: nil
 createdAt: nil
 updatedAt: nil
 refType: nil
 refSerial: nil
 operation: nil
 summary: nil
}&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/CryptoTests.swift#EndingLineNumber=179&amp;StartingLineNumber=179)">
            </failure>
        </testcase>
        <testcase classname="CryptoTests" name="test__013__Crypto__with_fixtures_from_crypto_data_256_json__should_encrypt_messages_as_expected_in_the_fixtures()" time="0.06840991973876953">
            <failure message="XCTAssertEqual failed: (&quot;&lt;ARTMessage: 0x000000011d6044a0&gt; {
 id: nil,
 clientId: nil,
 connectionId: nil,
 timestamp: nil,
 encoding: Optional(&quot;utf-8/cipher+aes-256-cbc/base64&quot;),
 data: Optional(&quot;NMDl1Acnel8HVdu1cEWdr9CGPYFoBoLgJCzoybbQbnyfwx3UQ8CGuKyP/g56Za/JB3xW6XGkNzrHYvZwad4fvA==&quot;)
 extras: nil,
 name: example
 action: Create
 serial: nil
 updateSerial: nil
 version: nil
 createdAt: nil
 updatedAt: nil
 refType: nil
 refSerial: nil
 operation: nil
 summary: nil
}&quot;) is not equal to (&quot;&lt;ARTMessage: 0x000000011d61b700&gt; {
 id: nil,
 clientId: nil,
 connectionId: nil,
 timestamp: nil,
 encoding: Optional(&quot;utf-8/cipher+aes-256-cbc/base64&quot;),
 data: Optional(&quot;NMDl1Acnel8HVdu1cEWdr9CGPYFoBoLgJCzoybbQbnyfwx3UQ8CGuKyP/g56Za/JB3xW6XGkNzrHYvZwad4fvA==&quot;)
 extras: nil,
 name: example
 action: Create
 serial: nil
 updateSerial: nil
 version: nil
 createdAt: nil
 updatedAt: nil
 refType: nil
 refSerial: nil
 operation: nil
 summary: nil
}&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/CryptoTests.swift#EndingLineNumber=162&amp;StartingLineNumber=162)">
            </failure>
        </testcase>
        <testcase classname="CryptoTests" name="test__014__Crypto__with_fixtures_from_crypto_data_256_json__should_decrypt_messages_as_expected_in_the_fixtures()" time="0.16096699237823486">
            <failure message="XCTAssertEqual failed: (&quot;&lt;ARTMessage: 0x000000011d61bcb0&gt; {
 id: nil,
 clientId: nil,
 connectionId: nil,
 timestamp: nil,
 encoding: nil,
 data: Optional(Optional(&quot;The quick brown fox jumped over the lazy dog&quot;))
 extras: nil,
 name: example
 action: Create
 serial: nil
 updateSerial: nil
 version: nil
 createdAt: nil
 updatedAt: nil
 refType: nil
 refSerial: nil
 operation: nil
 summary: nil
}&quot;) is not equal to (&quot;&lt;ARTMessage: 0x000000011d6044a0&gt; {
 id: nil,
 clientId: nil,
 connectionId: nil,
 timestamp: nil,
 encoding: nil,
 data: Optional(&quot;The quick brown fox jumped over the lazy dog&quot;)
 extras: nil,
 name: example
 action: Create
 serial: nil
 updateSerial: nil
 version: nil
 createdAt: nil
 updatedAt: nil
 refType: nil
 refSerial: nil
 operation: nil
 summary: nil
}&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/CryptoTests.swift#EndingLineNumber=179&amp;StartingLineNumber=179)">
            </failure>
        </testcase>
        <testcase classname="CryptoTests" name="test__015__Crypto__with_fixtures_from_crypto_data_128_json__manual_decrypt_messages_as_expected_in_the_fixtures()" time="0.0709160566329956">
            <failure message="XCTAssertEqual failed: (&quot;&lt;ARTMessage: 0x000000011e04ade0&gt; {
 id: nil,
 clientId: nil,
 connectionId: nil,
 timestamp: nil,
 encoding: nil,
 data: Optional(Optional(&quot;The quick brown fox jumped over the lazy dog&quot;))
 extras: nil,
 name: example
 action: Create
 serial: nil
 updateSerial: nil
 version: nil
 createdAt: nil
 updatedAt: nil
 refType: nil
 refSerial: nil
 operation: nil
 summary: nil
}&quot;) is not equal to (&quot;&lt;ARTMessage: 0x000000011e04d210&gt; {
 id: nil,
 clientId: nil,
 connectionId: nil,
 timestamp: nil,
 encoding: nil,
 data: Optional(&quot;The quick brown fox jumped over the lazy dog&quot;)
 extras: nil,
 name: example
 action: Create
 serial: nil
 updateSerial: nil
 version: nil
 createdAt: nil
 updatedAt: nil
 refType: nil
 refSerial: nil
 operation: nil
 summary: nil
}&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/CryptoTests.swift#EndingLineNumber=216&amp;StartingLineNumber=216)">
            </failure>
        </testcase>
        <testcase classname="CryptoTests" name="test__016__Crypto__with_fixtures_from_crypto_data_256_json__manual_decrypt_messages_as_expected_in_the_fixtures()" time="0.22363793849945068">
            <failure message="XCTAssertEqual failed: (&quot;&lt;ARTMessage: 0x000000011d791690&gt; {
 id: nil,
 clientId: nil,
 connectionId: nil,
 timestamp: nil,
 encoding: nil,
 data: Optional(Optional(&quot;The quick brown fox jumped over the lazy dog&quot;))
 extras: nil,
 name: example
 action: Create
 serial: nil
 updateSerial: nil
 version: nil
 createdAt: nil
 updatedAt: nil
 refType: nil
 refSerial: nil
 operation: nil
 summary: nil
}&quot;) is not equal to (&quot;&lt;ARTMessage: 0x000000011d787740&gt; {
 id: nil,
 clientId: nil,
 connectionId: nil,
 timestamp: nil,
 encoding: nil,
 data: Optional(&quot;The quick brown fox jumped over the lazy dog&quot;)
 extras: nil,
 name: example
 action: Create
 serial: nil
 updateSerial: nil
 version: nil
 createdAt: nil
 updatedAt: nil
 refType: nil
 refSerial: nil
 operation: nil
 summary: nil
}&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/CryptoTests.swift#EndingLineNumber=216&amp;StartingLineNumber=216)">
            </failure>
        </testcase>
        <testcase classname="DefaultErrorCheckerTests" name="test_isTokenError_statusCode401AndCodeBetween40140And40150()" time="0.0012639760971069336">
        </testcase>
        <testcase classname="DefaultErrorCheckerTests" name="test_isTokenError_statusCode401ButCodeGreaterThanOrEqualTo40150()" time="0.0009059906005859375">
        </testcase>
        <testcase classname="DefaultErrorCheckerTests" name="test_isTokenError_statusCode401ButCodeLessThan40140()" time="0.001194000244140625">
        </testcase>
        <testcase classname="DefaultErrorCheckerTests" name="test_isTokenError_statusCodeNot401()" time="0.0020369291305541992">
        </testcase>
        <testcase classname="DefaultInternalLogCoreTests" name="test_initWithClientOptions_whenClientOptionsLogLevelIsNone()" time="0.0011659860610961914">
        </testcase>
        <testcase classname="DefaultInternalLogCoreTests" name="test_initWithClientOptions_whenClientOptionsLogLevelIsNotNone()" time="0.0011230707168579102">
        </testcase>
        <testcase classname="DefaultInternalLogCoreTests" name="test_logLevel()" time="0.15729892253875732">
        </testcase>
        <testcase classname="DefaultInternalLogCoreTests" name="test_logMessage()" time="0.022030949592590332">
        </testcase>
        <testcase classname="DefaultInternalLogCoreTests" name="test_setLogLevel()" time="0.0073860883712768555">
        </testcase>
        <testcase classname="DefaultJitterCoefficientGeneratorTests" name="test_generatesAVarietyOfValues()" time="0.002079010009765625">
        </testcase>
        <testcase classname="DefaultJitterCoefficientGeneratorTests" name="test_generatesValuesInExpectedRange()" time="0.0005450248718261719">
        </testcase>
        <testcase classname="DeltaCodecTests" name="test__001__withBinaryProtocol_DeltaCodec__decoding__should_decode_vcdiff_encoded_messages()" time="10.078459024429321">
        </testcase>
        <testcase classname="DeltaCodecTests" name="test__001__withoutBinaryProtocol_DeltaCodec__decoding__should_decode_vcdiff_encoded_messages()" time="5.201142072677612">
        </testcase>
        <testcase classname="DeltaCodecTests" name="test__002__DeltaCodec__decoding__should_fail_and_recover_when_the_vcdiff_messages_are_out_of_order()" time="20.56707799434662">
            <failure message="failed - Waited more than 20.0 seconds
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/DeltaCodecTests.swift#EndingLineNumber=181&amp;StartingLineNumber=181)">
            </failure>
        </testcase>
        <testcase classname="DeltaCodecTests" name="test__003__DeltaCodec__decoding__should_recover_when_the_vcdiff_message_decoding_fails()" time="20.585911989212036">
            <failure message="failed - Waited more than 20.0 seconds
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/DeltaCodecTests.swift#EndingLineNumber=236&amp;StartingLineNumber=236)">
            </failure>
        </testcase>
        <testcase classname="GCDTests" name="testScheduledBlockHandleDerefsBlockAfterInvoke()" time="0.000702977180480957">
        </testcase>
        <testcase classname="LogAdapterTests" name="test_logLevel()" time="0.0005559921264648438">
        </testcase>
        <testcase classname="LogAdapterTests" name="test_logMessage()" time="0.0005170106887817383">
        </testcase>
        <testcase classname="LogAdapterTests" name="test_setLogLevel()" time="0.0004420280456542969">
        </testcase>
        <testcase classname="ObjectLifetimesTests" name="test__001__ObjectLifetimes__user_code_releases_public_object__the_object_s_internal_child_s_back_reference_is_released_too()" time="0.0030260086059570312">
        </testcase>
        <testcase classname="ObjectLifetimesTests" name="test__002__ObjectLifetimes__user_code_holds_only_reference_to_public_object_s_public_child__still_can_access_parent_s_internal_object()" time="0.0010620355606079102">
        </testcase>
        <testcase classname="ObjectLifetimesTests" name="test__003__ObjectLifetimes__user_code_holds_only_reference_to_public_object_s_public_child__when_it_s_released__schedules_async_release_of_parent_s_internal_object_in_internal_queue()" time="0.001381993293762207">
        </testcase>
        <testcase classname="ObjectLifetimesTests" name="test__004__ObjectLifetimes__when_user_leaves_Realtime_open__still_works()" time="0.0">
            <failure message="Crash: xctest (26157) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="ObjectLifetimesTests" name="test__005__ObjectLifetimes__when_Realtime_is_closed_and_user_loses_its_reference__channels_don_t_leak()" time="0.0">
            <failure message="Crash: xctest (28310) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientChannelsTests" name="test__001__Channels__should_exist_methods_to_check_if_a_channel_exists_or_iterate_through_the_existing_channels()" time="4.758279919624329">
        </testcase>
        <testcase classname="RealtimeClientChannelsTests" name="test__002__Channels__get__should_create_a_new_Channel_if_none_exists_or_return_the_existing_one()" time="0.0035589933395385742">
        </testcase>
        <testcase classname="RealtimeClientChannelsTests" name="test__003__Channels__get__should_be_possible_to_specify_a_ChannelOptions()" time="0.005460023880004883">
        </testcase>
        <testcase classname="RealtimeClientChannelsTests" name="test__004__Channels__get__accessing_an_existing_Channel_with_options_should_update_the_options_and_then_return_the_object()" time="0.7717900276184082">
            <failure message="XCTAssertNil failed: &quot;&lt;AblySwift.ARTRealtimeChannelOptions: 0x60000056ee20&gt;&quot; (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RealtimeClientChannelsTests.swift#EndingLineNumber=80&amp;StartingLineNumber=80)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientChannelsTests" name="test__005__Channels__release__should_release_a_channel()" time="1.3195409774780273">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__002__Presence__should_receive_all_250_members()" time="126.04828000068665">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__003__Presence__should_be_used_a_PresenceMap_to_maintain_a_list_of_members()" time="50.91477596759796">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__004__Presence__callback_can_be_provided_that_will_be_called_upon_success()" time="0.0">
            <failure message="Crash: xctest (28950) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__005__Presence__callback_can_be_provided_that_will_be_called_upon_failure()" time="0.0">
            <failure message="Crash: xctest (34595) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__006__Presence__should_also_ensure_that_using_updateClient_has_no_side_effects_on_a_client_that_has_entered_normally_using_Presence_enter()" time="0.0">
            <failure message="Crash: xctest (35565) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__007__Presence__should_indicate_an_error_if_the_client_is_identified_and_has_a_valid_clientId_and_the_clientId_argument_does_not_match_the_client_s_clientId()" time="0.0">
            <failure message="Crash: xctest (36746) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__008__Presence__Presence_syncComplete_returns_true_if_the_initial_SYNC_operation_has_completed()" time="130.28340101242065">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__010__Presence__ProtocolMessage_bit_flag__when_members_are_present()" time="126.13712000846863">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__011__Presence__realtime_system-reserves_the_right_to_initiate_a_sync_of_the_presence_members_at_any_point_once_a_channel_is_attached__should_do_a_new_sync_whenever_a_SYNC_ProtocolMessage_is_received_with_a_channel_attribute_and_a_new_sync_sequence_identifier_in_the_channelSerial_attribute()" time="1.2732319831848145">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__012__Presence__realtime_system-reserves_the_right_to_initiate_a_sync_of_the_presence_members_at_any_point_once_a_channel_is_attached__when_a_SYNC_is_sent_with_no_channelSerial_attribute_then_the_sync_data_is_entirely_contained_within_that_ProtocolMessage()" time="0.647102952003479">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__013__Presence__PresenceMap_has_existing_members_when_a_SYNC_is_started__should_ensure_that_members_no_longer_present_on_the_channel_are_removed_from_the_local_PresenceMap_once_the_sync_is_complete()" time="0.0">
            <failure message="Crash: xctest (37464) TestProxyTransport.send(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__014__Presence__PresenceMap_has_existing_members_when_a_SYNC_is_started__should_emit_a_LEAVE_event_for_each_existing_member_if_the_PresenceMap_has_existing_members_when_an_ATTACHED_message_is_received_without_a_HAS_PRESENCE_flag()" time="4.833332896232605">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__015__Presence__subscribe__with_no_arguments_should_subscribe_a_listener_to_all_presence_messages()" time="0.0">
            <failure message="Crash: xctest (44763) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__016__Presence__unsubscribe__with_no_arguments_unsubscribes_the_listener_if_previously_subscribed_with_an_action_specific_subscription()" time="4.055987000465393">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__017__Presence__Channel_state_change_side_effects__if_a_channel_enters_the_ATTACHED_state_then_all_queued_presence_messages_will_be_sent_immediately_and_a_presence_SYNC_may_be_initiated()" time="0.0">
            <failure message="Crash: xctest (46098) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__018__Presence__Channel_state_change_side_effects__if_the_channel_enters_the_FAILED_state__all_queued_presence_messages_should_fail_immediately()" time="0.0">
            <failure message="Crash: xctest (46735) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__019__Presence__Channel_state_change_side_effects__if_the_channel_enters_the_FAILED_state__should_clear_the_PresenceMap_including_local_members_and_does_not_emit_any_presence_events()" time="0.0">
            <failure message="Crash: xctest (47961) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__020__Presence__Channel_state_change_side_effects__if_the_channel_enters_the_DETACHED_state__all_queued_presence_messages_should_fail_immediately()" time="0.0">
            <failure message="Crash: xctest (48466) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__021__Presence__Channel_state_change_side_effects__if_the_channel_enters_the_DETACHED_state__should_clear_the_PresenceMap_including_local_members_and_does_not_emit_any_presence_events()" time="0.0">
            <failure message="Crash: xctest (49748) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__022__Presence__Channel_state_change_side_effects__channel_enters_the_SUSPENDED_state__all_queued_presence_messages_should_fail_immediately()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__023__Presence__Channel_state_change_side_effects__channel_enters_the_SUSPENDED_state__members_map_is_preserved_and_only_members_that_changed_between_ATTACHED_states_should_result_in_presence_events()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__024__Presence__enter__should_enter_the_current_client__optionally_with_the_data_provided()" time="5.069340944290161">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__025__Presence__unsubscribe__with_a_single_action_argument_unsubscribes_the_provided_listener_to_all_presence_messages_for_that_action()" time="0.0015929937362670898">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__026__Presence__subscribe__should_implicitly_attach_the_channel_if_options_attachOnSubscribe_is_true()" time="0.9976249933242798">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__026b__Presence__subscribe__should_not_implicitly_attach_the_channel_if_options_attachOnSubscribe_is_false()" time="1.1071940660476685">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__027__Presence__subscribe__should_result_in_an_error_if_the_channel_is_in_the_FAILED_state_and_options_attachOnSubscribe_is_true()" time="0.005944967269897461">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__027b__Presence__subscribe__should_not_result_in_an_error_if_the_channel_is_in_the_FAILED_state_and_options_attachOnSubscribe_is_false()" time="1.0951130390167236">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__028__Presence__subscribe__should_result_in_an_error_if_the_channel_moves_to_the_FAILED_state()" time="0.002231001853942871">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__029__Presence__subscribe__with_a_single_action_argument()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__030__Presence__enter__optionally_a_callback_can_be_provided_that_is_called_for_success()" time="4.9500579833984375">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__031__Presence__enter__optionally_a_callback_can_be_provided_that_is_called_for_failure()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__032__Presence__enter__entering_without_an_explicit_PresenceMessage_clientId_should_implicitly_use_the_clientId_of_the_current_connection()" time="4.8327330350875854">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__033__Presence__enter__should_result_in_an_error_immediately_if_the_connection_state_is_connected_and_the_client_is_anonymous()" time="0.4647599458694458">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__033__Presence__enter__should_result_in_an_error_immediately_if_the_connection_state_is_connected_and_the_client_is_wildcard()" time="0.4553259611129761">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__034__Presence__enter__should_result_in_an_error_immediately_if_the_channel_is_DETACHED()" time="0.6634770631790161">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__035__Presence__enter__should_result_in_an_error_immediately_if_the_channel_is_FAILED()" time="0.002077937126159668">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__036__Presence__enter__should_result_in_an_error_if_Ably_service_determines_that_the_client_is_unidentified()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__037__Presence__update__should_update_the_data_for_the_present_member_with_a_value()" time="5.4422149658203125">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__038__Presence__update__should_update_the_data_for_the_present_member_with_null()" time="0.77183997631073">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__039__Presence__update__should_enter_current_client_into_the_channel_if_the_client_was_not_already_entered()" time="0.6688369512557983">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__040__Presence__update__optionally_a_callback_can_be_provided_that_is_called_for_success()" time="0.0">
            <failure message="Crash: xctest (58418) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__041__Presence__update__optionally_a_callback_can_be_provided_that_is_called_for_failure()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__042__Presence__update__update_without_an_explicit_PresenceMessage_clientId_should_implicitly_use_the_clientId_of_the_current_connection()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__043__Presence__leave__should_leave_the_current_client_from_the_channel_and_the_data_will_be_updated_with_the_value_provided()" time="5.17116105556488">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__044__Presence__leave__should_leave_the_current_client_with_no_data()" time="0.7635480165481567">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__047__Presence__PresenceMap__if_action_of_UPDATE_arrives__it_should_be_added_to_the_presence_map_with_the_action_set_to_PRESENT()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__049__Presence__PresenceMap__if_a_SYNC_is_not_in_progress__then_when_a_presence_message_with_an_action_of_LEAVE_arrives__that_memberKey_should_be_deleted_from_the_presence_map__if_present()" time="14.864453077316284">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__051__Presence__PresenceMap__any_incoming_presence_message_that_passes_the_newness_check_should_be_emitted_on_the_Presence_object__with_an_event_name_set_to_its_original_action()" time="0.6839820146560669">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__052__Presence__PresenceMap__compare_for_newness__split_the_id_of_both_presence_messages()" time="51.52853000164032">
            <failure message="XCTAssertEqual failed: (&quot;0&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RealtimeClientPresenceTests.swift#EndingLineNumber=1744&amp;StartingLineNumber=1744)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__053__Presence__PresenceMap__compare_for_newness__presence_message_has_a_connectionId_which_is_not_an_initial_substring_of_its_id__compares_them_by_timestamp_numerically()" time="50.64686393737793">
            <failure message="XCTAssertEqual failed: (&quot;0&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RealtimeClientPresenceTests.swift#EndingLineNumber=1666&amp;StartingLineNumber=1666)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__056__Presence__enter__should_result_in_an_error_if_the_client_does_not_have_required_presence_permission()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__057__Presence__update__should_result_in_an_error_immediately_if_the_client_is_anonymous()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__058__Presence__update__should_result_in_an_error_immediately_if_the_channel_is_DETACHED()" time="3.8116860389709473">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__059__Presence__update__should_result_in_an_error_immediately_if_the_channel_is_FAILED()" time="0.008623957633972168">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__060__Presence__update__should_result_in_an_error_if_the_client_does_not_have_required_presence_permission()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__061__Presence__update__should_result_in_an_error_if_Ably_service_determines_that_the_client_is_unidentified()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__062__Presence__leave__optionally_a_callback_can_be_provided_that_is_called_for_success()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__063__Presence__leave__optionally_a_callback_can_be_provided_that_is_called_for_failure()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__064__Presence__leave__should_raise_an_error_if_client_is_not_present()" time="0.0">
            <failure message="Crash: xctest (75727) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__065__Presence__leave__entering_without_an_explicit_PresenceMessage_clientId_should_implicitly_use_the_clientId_of_the_current_connection()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__066__Presence__leave__if_the_client_is_not_currently_ENTERED__Ably_will_respond_with_an_ACK_and_the_request_will_succeed()" time="0.0">
            <failure message="Crash: xctest (78205) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__067__Presence__enter__implicitly_attaches_the_Channel()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__068__Presence__enter__should_result_in_an_error_if_the_channel_is_in_the_FAILED_state()" time="3.7471100091934204">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__069__Presence__enter__should_result_in_an_error_if_the_channel_is_in_the_DETACHED_state()" time="0.3256939649581909">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__070__Presence__leave__should_result_in_an_error_immediately_if_the_client_is_anonymous()" time="0.0">
            <failure message="Crash: xctest (80780) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__071__Presence__leave__should_result_in_an_error_immediately_if_the_channel_is_DETACHED()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__072__Presence__leave__should_result_in_an_error_immediately_if_the_channel_is_FAILED()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__073__Presence__leave__should_result_in_an_error_if_the_client_does_not_have_required_presence_permission()" time="0.0">
            <failure message="Crash: xctest (84588) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__074__Presence__leave__should_result_in_an_error_if_Ably_service_determines_that_the_client_is_unidentified()" time="0.0">
            <failure message="Crash: xctest (85264) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__078__Presence__enter__optional_data_can_be_included_when_entering_a_channel()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__079__Presence__enter__should_emit_the_data_attribute_in_the_LEAVE_event_when_data_is_provided_when_entering_but_no_data_is_provided_when_leaving()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__080__Presence__private_and_internal_PresenceMap_containing_only_members_that_match_the_current_connectionId__any_ENTER__PRESENT__UPDATE_or_LEAVE_event_that_matches_the_current_connectionId_should_be_applied_to_this_object()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__081__Presence__private_and_internal_PresenceMap_containing_only_members_that_match_the_current_connectionId__all_members_belonging_to_the_current_connection_are_published_as_a_PresenceMessage_on_the_Channel_by_the_server_irrespective_of_whether_the_client_has_permission_to_subscribe_or_the_Channel_is_configured_to_publish_presence_events()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__084__Presence__enterClient__should_implicitly_attach_the_Channel()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__085__Presence__enterClient__should_result_in_an_error_if_the_channel_is_in_the_FAILED_state()" time="4.171839952468872">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__086__Presence__enterClient__should_result_in_an_error_if_the_channel_moves_to_the_FAILED_state()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__087__Presence__updateClient__should_implicitly_attach_the_Channel()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__088__Presence__updateClient__should_result_in_an_error_if_the_channel_is_in_the_FAILED_state()" time="4.235917925834656">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__089__Presence__updateClient__should_result_in_an_error_if_the_channel_moves_to_the_FAILED_state()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__090__Presence__leaveClient__should_implicitly_attach_the_Channel()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__091__Presence__leaveClient__should_result_in_an_error_if_the_channel_is_in_the_FAILED_state()" time="0.0">
            <failure message="Crash: xctest (98970) unwrapValueWithAmbiguousObjectiveCNullability&lt;A&gt;(_:)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__092__Presence__leaveClient__should_result_in_an_error_if_the_channel_moves_to_the_FAILED_state()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__093__Presence__Connection_state_conditions__all_presence_messages_are_published_immediately_if_the_connection_is_CONNECTED()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__094__Presence__Connection_state_conditions__all_presence_messages_will_be_queued_and_delivered_as_soon_as_the_connection_state_returns_to_CONNECTED()" time="5.202008962631226">
            <failure message="XCTAssertEqual failed: (&quot;0&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RealtimeClientPresenceTests.swift#EndingLineNumber=3078&amp;StartingLineNumber=3078)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__095__Presence__Connection_state_conditions__all_presence_messages_will_be_lost_if_queueMessages_has_been_explicitly_set_to_false()" time="0.2845660448074341">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__096__Presence__Connection_state_conditions__should_result_in_an_error_if_the_connection_state_is_INITIALIZED_and_queueMessages_has_been_explicitly_set_to_false()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__097__Presence__Connection_state_conditions__should_result_in_an_error_if_the_connection_state_is__suspended()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__098__Presence__Connection_state_conditions__should_result_in_an_error_if_the_connection_state_is__closed()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__099__Presence__Connection_state_conditions__should_result_in_an_error_if_the_connection_state_is__failed()" time="4.629992961883545">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__100__Presence__get__should_return_a_list_of_current_members_on_the_channel()" time="76.05023396015167">
            <failure message="failed - expected to all pass a condition, but failed first at element &lt;&lt;ARTPresenceMessage: 0x0000600000f08790&gt; {id: Optional(&quot;TyZXRen0xT:72:0&quot;),clientId: Optional(&quot;user73&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:54 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}&gt; in &lt;[&lt;ARTPresenceMessage: 0x0000600000f08790&gt; {id: Optional(&quot;TyZXRen0xT:72:0&quot;),clientId: Optional(&quot;user73&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:54 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b4f0&gt; {id: Optional(&quot;TyZXRen0xT:137:0&quot;),clientId: Optional(&quot;user138&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:27 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0fa70&gt; {id: Optional(&quot;TyZXRen0xT:90:0&quot;),clientId: Optional(&quot;user91&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:03 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f346e0&gt; {id: Optional(&quot;TyZXRen0xT:24:0&quot;),clientId: Optional(&quot;user25&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:30 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f080b0&gt; {id: Optional(&quot;TyZXRen0xT:81:0&quot;),clientId: Optional(&quot;user82&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:59 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b7b0&gt; {id: Optional(&quot;TyZXRen0xT:140:0&quot;),clientId: Optional(&quot;user141&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:28 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34790&gt; {id: Optional(&quot;TyZXRen0xT:25:0&quot;),clientId: Optional(&quot;user26&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:31 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b440&gt; {id: Optional(&quot;TyZXRen0xT:136:0&quot;),clientId: Optional(&quot;user137&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:26 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34bb0&gt; {id: Optional(&quot;TyZXRen0xT:30:0&quot;),clientId: Optional(&quot;user31&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:33 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35760&gt; {id: Optional(&quot;TyZXRen0xT:46:0&quot;),clientId: Optional(&quot;user47&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:41 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0be90&gt; {id: Optional(&quot;TyZXRen0xT:149:0&quot;),clientId: Optional(&quot;user150&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:33 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0ab50&gt; {id: Optional(&quot;TyZXRen0xT:124:0&quot;),clientId: Optional(&quot;user125&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:20 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0fde0&gt; {id: Optional(&quot;TyZXRen0xT:86:0&quot;),clientId: Optional(&quot;user87&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:01 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f089a0&gt; {id: Optional(&quot;TyZXRen0xT:69:0&quot;),clientId: Optional(&quot;user70&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:53 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35290&gt; {id: Optional(&quot;TyZXRen0xT:39:0&quot;),clientId: Optional(&quot;user40&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:38 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34420&gt; {id: Optional(&quot;TyZXRen0xT:20:0&quot;),clientId: Optional(&quot;user21&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:28 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08580&gt; {id: Optional(&quot;TyZXRen0xT:75:0&quot;),clientId: Optional(&quot;user76&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:56 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a890&gt; {id: Optional(&quot;TyZXRen0xT:120:0&quot;),clientId: Optional(&quot;user121&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:18 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0aec0&gt; {id: Optional(&quot;TyZXRen0xT:12:0&quot;),clientId: Optional(&quot;user13&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:24 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f354a0&gt; {id: Optional(&quot;TyZXRen0xT:42:0&quot;),clientId: Optional(&quot;user43&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:39 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f358c0&gt; {id: Optional(&quot;TyZXRen0xT:48:0&quot;),clientId: Optional(&quot;user49&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:42 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35a20&gt; {id: Optional(&quot;TyZXRen0xT:49:0&quot;),clientId: Optional(&quot;user50&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:43 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08000&gt; {id: Optional(&quot;TyZXRen0xT:82:0&quot;),clientId: Optional(&quot;user83&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:59 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0f910&gt; {id: Optional(&quot;TyZXRen0xT:92:0&quot;),clientId: Optional(&quot;user93&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:04 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09080&gt; {id: Optional(&quot;TyZXRen0xT:60:0&quot;),clientId: Optional(&quot;user61&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:48 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f091e0&gt; {id: Optional(&quot;TyZXRen0xT:5:0&quot;),clientId: Optional(&quot;user6&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:21 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a260&gt; {id: Optional(&quot;TyZXRen0xT:112:0&quot;),clientId: Optional(&quot;user113&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:14 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09fa0&gt; {id: Optional(&quot;TyZXRen0xT:10:0&quot;),clientId: Optional(&quot;user11&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:23 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f096b0&gt; {id: Optional(&quot;TyZXRen0xT:0:0&quot;),clientId: Optional(&quot;user1&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:19 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08bb0&gt; {id: Optional(&quot;TyZXRen0xT:67:0&quot;),clientId: Optional(&quot;user68&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:52 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a940&gt; {id: Optional(&quot;TyZXRen0xT:121:0&quot;),clientId: Optional(&quot;user122&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:19 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0fb20&gt; {id: Optional(&quot;TyZXRen0xT:89:0&quot;),clientId: Optional(&quot;user90&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:03 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a7e0&gt; {id: Optional(&quot;TyZXRen0xT:119:0&quot;),clientId: Optional(&quot;user120&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:18 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09970&gt; {id: Optional(&quot;TyZXRen0xT:99:0&quot;),clientId: Optional(&quot;user100&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:08 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f356b0&gt; {id: Optional(&quot;TyZXRen0xT:45:0&quot;),clientId: Optional(&quot;user46&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:41 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f086e0&gt; {id: Optional(&quot;TyZXRen0xT:73:0&quot;),clientId: Optional(&quot;user74&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:55 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b910&gt; {id: Optional(&quot;TyZXRen0xT:142:0&quot;),clientId: Optional(&quot;user143&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:29 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34b00&gt; {id: Optional(&quot;TyZXRen0xT:29:0&quot;),clientId: Optional(&quot;user30&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:33 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0aaa0&gt; {id: Optional(&quot;TyZXRen0xT:123:0&quot;),clientId: Optional(&quot;user124&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:20 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34fd0&gt; {id: Optional(&quot;TyZXRen0xT:36:0&quot;),clientId: Optional(&quot;user37&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:36 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f342c0&gt; {id: Optional(&quot;TyZXRen0xT:1:0&quot;),clientId: Optional(&quot;user2&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:19 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b700&gt; {id: Optional(&quot;TyZXRen0xT:139:0&quot;),clientId: Optional(&quot;user140&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:28 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b860&gt; {id: Optional(&quot;TyZXRen0xT:141:0&quot;),clientId: Optional(&quot;user142&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:29 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a520&gt; {id: Optional(&quot;TyZXRen0xT:116:0&quot;),clientId: Optional(&quot;user117&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:16 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a470&gt; {id: Optional(&quot;TyZXRen0xT:115:0&quot;),clientId: Optional(&quot;user116&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:16 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0bbd0&gt; {id: Optional(&quot;TyZXRen0xT:146:0&quot;),clientId: Optional(&quot;user147&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:31 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a5d0&gt; {id: Optional(&quot;TyZXRen0xT:117:0&quot;),clientId: Optional(&quot;user118&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:17 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a680&gt; {id: Optional(&quot;TyZXRen0xT:118:0&quot;),clientId: Optional(&quot;user119&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:17 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09b80&gt; {id: Optional(&quot;TyZXRen0xT:103:0&quot;),clientId: Optional(&quot;user104&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:10 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09d90&gt; {id: Optional(&quot;TyZXRen0xT:106:0&quot;),clientId: Optional(&quot;user107&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:11 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35ad0&gt; {id: Optional(&quot;TyZXRen0xT:50:0&quot;),clientId: Optional(&quot;user51&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:43 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09810&gt; {id: Optional(&quot;TyZXRen0xT:9:0&quot;),clientId: Optional(&quot;user10&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:23 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b9c0&gt; {id: Optional(&quot;TyZXRen0xT:143:0&quot;),clientId: Optional(&quot;user144&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:30 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f351e0&gt; {id: Optional(&quot;TyZXRen0xT:3:0&quot;),clientId: Optional(&quot;user4&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:20 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a3c0&gt; {id: Optional(&quot;TyZXRen0xT:114:0&quot;),clientId: Optional(&quot;user115&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:15 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34580&gt; {id: Optional(&quot;TyZXRen0xT:22:0&quot;),clientId: Optional(&quot;user23&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:29 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34f20&gt; {id: Optional(&quot;TyZXRen0xT:35:0&quot;),clientId: Optional(&quot;user36&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:36 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0fe90&gt; {id: Optional(&quot;TyZXRen0xT:85:0&quot;),clientId: Optional(&quot;user86&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:01 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f344d0&gt; {id: Optional(&quot;TyZXRen0xT:21:0&quot;),clientId: Optional(&quot;user22&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:29 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0fbd0&gt; {id: Optional(&quot;TyZXRen0xT:8:0&quot;),clientId: Optional(&quot;user9&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:22 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09130&gt; {id: Optional(&quot;TyZXRen0xT:59:0&quot;),clientId: Optional(&quot;user60&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:48 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f082c0&gt; {id: Optional(&quot;TyZXRen0xT:7:0&quot;),clientId: Optional(&quot;user8&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:22 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a9f0&gt; {id: Optional(&quot;TyZXRen0xT:122:0&quot;),clientId: Optional(&quot;user123&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:19 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34210&gt; {id: Optional(&quot;TyZXRen0xT:18:0&quot;),clientId: Optional(&quot;user19&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:27 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0ae10&gt; {id: Optional(&quot;TyZXRen0xT:128:0&quot;),clientId: Optional(&quot;user129&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:22 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34c60&gt; {id: Optional(&quot;TyZXRen0xT:31:0&quot;),clientId: Optional(&quot;user32&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:34 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f348f0&gt; {id: Optional(&quot;TyZXRen0xT:27:0&quot;),clientId: Optional(&quot;user28&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:32 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b390&gt; {id: Optional(&quot;TyZXRen0xT:135:0&quot;),clientId: Optional(&quot;user136&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:26 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35b80&gt; {id: Optional(&quot;TyZXRen0xT:51:0&quot;),clientId: Optional(&quot;user52&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:44 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f37e90&gt; {id: Optional(&quot;TyZXRen0xT:53:0&quot;),clientId: Optional(&quot;user54&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:45 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09340&gt; {id: Optional(&quot;TyZXRen0xT:57:0&quot;),clientId: Optional(&quot;user58&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:47 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34d10&gt; {id: Optional(&quot;TyZXRen0xT:32:0&quot;),clientId: Optional(&quot;user33&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:34 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08fd0&gt; {id: Optional(&quot;TyZXRen0xT:61:0&quot;),clientId: Optional(&quot;user62&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:49 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08f20&gt; {id: Optional(&quot;TyZXRen0xT:62:0&quot;),clientId: Optional(&quot;user63&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:49 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0bc80&gt; {id: Optional(&quot;TyZXRen0xT:147:0&quot;),clientId: Optional(&quot;user148&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:32 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08370&gt; {id: Optional(&quot;TyZXRen0xT:78:0&quot;),clientId: Optional(&quot;user79&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:57 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09ad0&gt; {id: Optional(&quot;TyZXRen0xT:102:0&quot;),clientId: Optional(&quot;user103&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:09 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08420&gt; {id: Optional(&quot;TyZXRen0xT:77:0&quot;),clientId: Optional(&quot;user78&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:57 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09290&gt; {id: Optional(&quot;TyZXRen0xT:58:0&quot;),clientId: Optional(&quot;user59&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:47 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34370&gt; {id: Optional(&quot;TyZXRen0xT:19:0&quot;),clientId: Optional(&quot;user20&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:28 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35080&gt; {id: Optional(&quot;TyZXRen0xT:37:0&quot;),clientId: Optional(&quot;user38&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:37 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09a20&gt; {id: Optional(&quot;TyZXRen0xT:100:0&quot;),clientId: Optional(&quot;user101&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:08 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0af70&gt; {id: Optional(&quot;TyZXRen0xT:129:0&quot;),clientId: Optional(&quot;user130&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:23 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0f7b0&gt; {id: Optional(&quot;TyZXRen0xT:94:0&quot;),clientId: Optional(&quot;user95&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:05 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b2e0&gt; {id: Optional(&quot;TyZXRen0xT:134:0&quot;),clientId: Optional(&quot;user135&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:25 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09c30&gt; {id: Optional(&quot;TyZXRen0xT:104:0&quot;),clientId: Optional(&quot;user105&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:10 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34e70&gt; {id: Optional(&quot;TyZXRen0xT:34:0&quot;),clientId: Optional(&quot;user35&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:35 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0f650&gt; {id: Optional(&quot;TyZXRen0xT:96:0&quot;),clientId: Optional(&quot;user97&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:06 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34160&gt; {id: Optional(&quot;TyZXRen0xT:17:0&quot;),clientId: Optional(&quot;user18&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:27 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f088f0&gt; {id: Optional(&quot;TyZXRen0xT:70:0&quot;),clientId: Optional(&quot;user71&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:53 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09ef0&gt; {id: Optional(&quot;TyZXRen0xT:108:0&quot;),clientId: Optional(&quot;user109&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:12 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b0d0&gt; {id: Optional(&quot;TyZXRen0xT:131:0&quot;),clientId: Optional(&quot;user132&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:24 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0fc80&gt; {id: Optional(&quot;TyZXRen0xT:88:0&quot;),clientId: Optional(&quot;user89&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:02 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f353f0&gt; {id: Optional(&quot;TyZXRen0xT:41:0&quot;),clientId: Optional(&quot;user42&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:39 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08160&gt; {id: Optional(&quot;TyZXRen0xT:80:0&quot;),clientId: Optional(&quot;user81&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:58 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34a50&gt; {id: Optional(&quot;TyZXRen0xT:2:0&quot;),clientId: Optional(&quot;user3&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:19 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a310&gt; {id: Optional(&quot;TyZXRen0xT:113:0&quot;),clientId: Optional(&quot;user114&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:15 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08e70&gt; {id: Optional(&quot;TyZXRen0xT:63:0&quot;),clientId: Optional(&quot;user64&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:50 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0ac00&gt; {id: Optional(&quot;TyZXRen0xT:125:0&quot;),clientId: Optional(&quot;user126&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:21 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34dc0&gt; {id: Optional(&quot;TyZXRen0xT:33:0&quot;),clientId: Optional(&quot;user34&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:35 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08d10&gt; {id: Optional(&quot;TyZXRen0xT:65:0&quot;),clientId: Optional(&quot;user66&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:51 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f084d0&gt; {id: Optional(&quot;TyZXRen0xT:76:0&quot;),clientId: Optional(&quot;user77&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:56 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0ba70&gt; {id: Optional(&quot;TyZXRen0xT:144:0&quot;),clientId: Optional(&quot;user145&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:30 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34630&gt; {id: Optional(&quot;TyZXRen0xT:23:0&quot;),clientId: Optional(&quot;user24&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:30 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a730&gt; {id: Optional(&quot;TyZXRen0xT:11:0&quot;),clientId: Optional(&quot;user12&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:24 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08840&gt; {id: Optional(&quot;TyZXRen0xT:71:0&quot;),clientId: Optional(&quot;user72&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:54 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b180&gt; {id: Optional(&quot;TyZXRen0xT:132:0&quot;),clientId: Optional(&quot;user133&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:24 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35c30&gt; {id: Optional(&quot;TyZXRen0xT:52:0&quot;),clientId: Optional(&quot;user53&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:44 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08630&gt; {id: Optional(&quot;TyZXRen0xT:74:0&quot;),clientId: Optional(&quot;user75&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:55 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0f700&gt; {id: Optional(&quot;TyZXRen0xT:95:0&quot;),clientId: Optional(&quot;user96&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:06 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09e40&gt; {id: Optional(&quot;TyZXRen0xT:107:0&quot;),clientId: Optional(&quot;user108&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:12 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0bf40&gt; {id: Optional(&quot;TyZXRen0xT:15:0&quot;),clientId: Optional(&quot;user16&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:26 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08a50&gt; {id: Optional(&quot;TyZXRen0xT:6:0&quot;),clientId: Optional(&quot;user7&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:21 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09600&gt; {id: Optional(&quot;TyZXRen0xT:54:0&quot;),clientId: Optional(&quot;user55&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:45 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f098c0&gt; {id: Optional(&quot;TyZXRen0xT:101:0&quot;),clientId: Optional(&quot;user102&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:09 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35340&gt; {id: Optional(&quot;TyZXRen0xT:40:0&quot;),clientId: Optional(&quot;user41&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:38 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0bde0&gt; {id: Optional(&quot;TyZXRen0xT:14:0&quot;),clientId: Optional(&quot;user15&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:25 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f093f0&gt; {id: Optional(&quot;TyZXRen0xT:56:0&quot;),clientId: Optional(&quot;user57&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:46 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a100&gt; {id: Optional(&quot;TyZXRen0xT:110:0&quot;),clientId: Optional(&quot;user111&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:13 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35130&gt; {id: Optional(&quot;TyZXRen0xT:38:0&quot;),clientId: Optional(&quot;user39&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:37 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08210&gt; {id: Optional(&quot;TyZXRen0xT:79:0&quot;),clientId: Optional(&quot;user80&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:58 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34000&gt; {id: Optional(&quot;TyZXRen0xT:16:0&quot;),clientId: Optional(&quot;user17&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:26 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0f9c0&gt; {id: Optional(&quot;TyZXRen0xT:91:0&quot;),clientId: Optional(&quot;user92&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:04 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0bd30&gt; {id: Optional(&quot;TyZXRen0xT:148:0&quot;),clientId: Optional(&quot;user149&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:32 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f094a0&gt; {id: Optional(&quot;TyZXRen0xT:55:0&quot;),clientId: Optional(&quot;user56&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:46 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b5a0&gt; {id: Optional(&quot;TyZXRen0xT:138:0&quot;),clientId: Optional(&quot;user139&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:27 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0fd30&gt; {id: Optional(&quot;TyZXRen0xT:87:0&quot;),clientId: Optional(&quot;user88&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:02 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0f4f0&gt; {id: Optional(&quot;TyZXRen0xT:98:0&quot;),clientId: Optional(&quot;user99&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:07 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09ce0&gt; {id: Optional(&quot;TyZXRen0xT:105:0&quot;),clientId: Optional(&quot;user106&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:11 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a050&gt; {id: Optional(&quot;TyZXRen0xT:109:0&quot;),clientId: Optional(&quot;user110&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:13 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35550&gt; {id: Optional(&quot;TyZXRen0xT:43:0&quot;),clientId: Optional(&quot;user44&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:40 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35970&gt; {id: Optional(&quot;TyZXRen0xT:4:0&quot;),clientId: Optional(&quot;user5&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:20 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0f5a0&gt; {id: Optional(&quot;TyZXRen0xT:97:0&quot;),clientId: Optional(&quot;user98&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:07 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f349a0&gt; {id: Optional(&quot;TyZXRen0xT:28:0&quot;),clientId: Optional(&quot;user29&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:32 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08dc0&gt; {id: Optional(&quot;TyZXRen0xT:64:0&quot;),clientId: Optional(&quot;user65&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:50 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35600&gt; {id: Optional(&quot;TyZXRen0xT:44:0&quot;),clientId: Optional(&quot;user45&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:40 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b020&gt; {id: Optional(&quot;TyZXRen0xT:130:0&quot;),clientId: Optional(&quot;user131&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:23 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08b00&gt; {id: Optional(&quot;TyZXRen0xT:68:0&quot;),clientId: Optional(&quot;user69&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:52 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f35810&gt; {id: Optional(&quot;TyZXRen0xT:47:0&quot;),clientId: Optional(&quot;user48&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:42 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f08c60&gt; {id: Optional(&quot;TyZXRen0xT:66:0&quot;),clientId: Optional(&quot;user67&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:51 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0c580&gt; {id: Optional(&quot;TyZXRen0xT:84:0&quot;),clientId: Optional(&quot;user85&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:00 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0f860&gt; {id: Optional(&quot;TyZXRen0xT:93:0&quot;),clientId: Optional(&quot;user94&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:05 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0a1b0&gt; {id: Optional(&quot;TyZXRen0xT:111:0&quot;),clientId: Optional(&quot;user112&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:14 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f34840&gt; {id: Optional(&quot;TyZXRen0xT:26:0&quot;),clientId: Optional(&quot;user27&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:31 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b230&gt; {id: Optional(&quot;TyZXRen0xT:133:0&quot;),clientId: Optional(&quot;user134&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:25 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f09760&gt; {id: Optional(&quot;TyZXRen0xT:83:0&quot;),clientId: Optional(&quot;user84&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:00 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0bb20&gt; {id: Optional(&quot;TyZXRen0xT:145:0&quot;),clientId: Optional(&quot;user146&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:31 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0acb0&gt; {id: Optional(&quot;TyZXRen0xT:126:0&quot;),clientId: Optional(&quot;user127&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:21 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0ad60&gt; {id: Optional(&quot;TyZXRen0xT:127:0&quot;),clientId: Optional(&quot;user128&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:31:22 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600000f0b650&gt; {id: Optional(&quot;TyZXRen0xT:13:0&quot;),clientId: Optional(&quot;user14&quot;),connectionId: Optional(&quot;TyZXRen0xT&quot;),timestamp: Optional(2025-09-16 13:30:25 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}]&gt;
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RealtimeClientPresenceTests.swift#EndingLineNumber=3198&amp;StartingLineNumber=3198)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__101__Presence__get__should_implicitly_attach_the_channel()" time="0.3891720771789551">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__102__Presence__get__should_result_in_an_error_if_the_channel_is_in_the_FAILED_state()" time="0.008506059646606445">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__103__Presence__get__should_result_in_an_error_if_the_channel_moves_to_the_FAILED_state()" time="0.006916999816894531">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__104__Presence__get__should_result_in_an_error_if_the_channel_is_in_the_DETACHED_state()" time="0.2970609664916992">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__105__Presence__get__should_result_in_an_error_if_the_channel_moves_to_the_DETACHED_state()" time="59.96526598930359">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__106__Presence__get__query__waitForSync_should_be_true_by_default()" time="0.0010099411010742188">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__107__Presence__get__If_the_Channel_is_in_the_SUSPENDED_state_then__by_default__results_in_an_error()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__108__Presence__get__If_the_Channel_is_in_the_SUSPENDED_state_then__if_waitForSync_is_true__results_in_an_error()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__109__Presence__get__If_the_Channel_is_in_the_SUSPENDED_state_then__if_waitForSync_is_false__returns_the_members_in_the_current_PresenceMap()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__110__Presence__get__Query__set_of_params___waitForSync_is_true__should_wait_until_SYNC_is_complete_before_returning_a_list_of_members()" time="79.7525349855423">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__111__Presence__get__Query__set_of_params___waitForSync_is_false__should_return_immediately_the_known_set_of_presence_members()" time="75.20251095294952">
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__112__Presence__get__Query__set_of_params___should_return_members_filtered_by_clientId()" time="1.1047559976577759">
            <failure message="XCTAssertEqual failed: (&quot;0&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RealtimeClientPresenceTests.swift#EndingLineNumber=3534&amp;StartingLineNumber=3534)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__113__Presence__get__Query__set_of_params___should_return_members_filtered_by_connectionId()" time="50.764402985572815">
            <failure message="XCTAssertEqual failed: (&quot;0&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RealtimeClientPresenceTests.swift#EndingLineNumber=3613&amp;StartingLineNumber=3613)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__115__Presence__history__should_return_a_PaginatedResult_page()" time="75.45818996429443">
            <failure message="XCTAssertEqual failed: (&quot;100&quot;) is not equal to (&quot;50&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RealtimeClientPresenceTests.swift#EndingLineNumber=3723&amp;StartingLineNumber=3723)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__117__Presence__enterClient__should_be_present_all_the_registered_members_on_a_presence_channel()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__118__Presence__presence_message_attributes__if_the_presence_message_does_not_contain_an_id__it_should_be_set_to_protocolMsgId_index()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientPresenceTests" name="test__200__Presence__PresenceMap_should_perform_re_entry_whenever_a_channel_moves_into_the_attached_state_and_presence_message_consists_of_enter_action_with_client_id_and_data()" time="25.57913100719452">
            <failure message="failed - Waited more than 20.0 seconds
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RealtimeClientPresenceTests.swift#EndingLineNumber=2734&amp;StartingLineNumber=2734)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__001__RealtimeClient__All_WebSocket_connections_should_include_the_current_API_version()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__002__RealtimeClient__should_have_access_to_the_underlying_Connection_object()" time="4.020308017730713">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__003__RealtimeClient__should_provide_access_to_the_underlying_Channels_object()" time="0.0015289783477783203">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__004__RealtimeClient__should_use_the_configured_timeouts_specified()" time="6.377951979637146">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__005__RealtimeClient__background_behaviour()" time="0.6543829441070557">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__006__RealtimeClient__should_accept_acks_with_different_order()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__007__RealtimeClient__transport_should_guarantee_the_incoming_message_order()" time="25.249644994735718">
            <failure message="failed - Waited more than 20.0 seconds
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RealtimeClientTests.swift#EndingLineNumber=1379&amp;StartingLineNumber=1379)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__008__RealtimeClient__subscriber_should_receive_messages_in_the_same_order_in_which_they_have_been_sent()" time="20.249502062797546">
            <failure message="failed - Waited more than 20.0 seconds
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RealtimeClientTests.swift#EndingLineNumber=1423&amp;StartingLineNumber=1423)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__009__RealtimeClient__should_dispatch_in_user_queue_when_removing_an_observer()" time="0.001302957534790039">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__010__RealtimeClient__should_never_register_any_connection_listeners_for_internal_use_with_the_public_EventEmitter()" time="0.2743721008300781">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__011__RealtimeClient__should_never_register_any_message_and_channel_listeners_for_internal_use_with_the_public_EventEmitter()" time="0.3177069425582886">
            <failure message="XCTAssertNil failed: &quot;Error 80003 - Connection to server temporarily unavailable&quot; (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RealtimeClientTests.swift#EndingLineNumber=1515&amp;StartingLineNumber=1515)">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__012__RealtimeClient__moves_to_DISCONNECTED_on_an_unexpected_normal_WebSocket_close()" time="0.6369900703430176">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__013__RealtimeClient__options__should_support_the_same_options_as_the_Rest_client()" time="0.27252793312072754">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__014__RealtimeClient__options__should_echoMessages_option_be_true_by_default()" time="0.0016499757766723633">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__015__RealtimeClient__options__should_autoConnect_option_be_true_by_default()" time="0.004913926124572754">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__016__RealtimeClient__options__should_attempt_to_recover_the_connection_state_if_recover_string_is_assigned()" time="0.3847750425338745">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__017__RealtimeClient__options__should_modify_the_realtime_endpoint_host_if_realtimeHost_is_assigned()" time="0.12068510055541992">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__018__RealtimeClient__options__should_modify_both_the_REST_and_realtime_endpoint_if_environment_string_is_assigned()" time="0.0021680593490600586">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__019__RealtimeClient__options__url_should_contains_transport_params()" time="0.004479050636291504">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__020__RealtimeClient__Auth_object__should_provide_access_to_the_Auth_object()" time="0.005377054214477539">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__021__RealtimeClient__Auth_object__clientId_may_be_populated_when_the_connection_is_established()" time="0.2042609453201294">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__022__RealtimeClient__stats__should_present_an_async_interface()" time="0.1287609338760376">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__023__RealtimeClient__stats__should_accept_all_the_same_params_as_RestClient()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__024__RealtimeClient__time__should_present_an_async_interface()" time="4.791904091835022">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__025__RealtimeClient__Auth_authorize_should_upgrade_the_connection_with_current_token__in_the_CONNECTED_state_and_auth_authorize_is_called__the_client_must_obtain_a_new_token__send_an_AUTH_ProtocolMessage_with_an_auth_attribute()" time="0.5447379350662231">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__026__RealtimeClient__Auth_authorize_should_upgrade_the_connection_with_current_token__when_the_authentication_token_change_is_successful__then_the_client_should_receive_a_new_CONNECTED_ProtocolMessage()" time="0.46172797679901123">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__027__RealtimeClient__Auth_authorize_should_upgrade_the_connection_with_current_token__performs_an_upgrade_of_capabilities_without_any_loss_of_continuity_or_connectivity_during_the_upgrade_process()" time="0.5256639719009399">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__028__RealtimeClient__Auth_authorize_should_upgrade_the_connection_with_current_token__when_capabilities_are_downgraded__client_should_receive_an_ERROR_ProtocolMessage_with_a_channel_property()" time="0.464061975479126">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__029__RealtimeClient__Auth_authorize_should_upgrade_the_connection_with_current_token__when_the_authentication_token_change_fails__client_should_receive_an_ERROR_ProtocolMessage_triggering_the_connection_to_transition_to_the_FAILED_state()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__030__RealtimeClient__Auth_authorize_should_upgrade_the_connection_with_current_token__authorize_call_should_complete_with_an_error_if_the_request_fails()" time="4.911731958389282">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__031__RealtimeClient__Auth_authorize_should_upgrade_the_connection_with_current_token__authorize_call_should_be_indicated_as_completed_with_the_new_token_or_error_only_once_realtime_has_responded_to_the_AUTH_with_either_a_CONNECTED_or_ERROR_respectively()" time="0.5349069833755493">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__033__RealtimeClient__Auth_authorize_should_upgrade_the_connection_with_current_token__authorize_call_should_complete_with_the_new_token_once_the_connection_has_moved_to_the_CONNECTED_state()" time="0.39287495613098145">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__037__RealtimeClient__Auth_authorize_should_upgrade_the_connection_with_current_token__when_the_connection_is_in_the_SUSPENDED_state_when_auth_authorize_is_called__after_obtaining_a_token_the_library_should_move_to_the_CONNECTING_state_and_initiate_a_connection_attempt_using_the_new_token()" time="0.5606560707092285">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__038__RealtimeClient__Auth_authorize_should_upgrade_the_connection_with_current_token__when_the_connection_is_in_the_CLOSED_state_when_auth_authorize_is_called__after_obtaining_a_token_the_library_should_move_to_the_CONNECTING_state_and_initiate_a_connection_attempt_using_the_new_token()" time="0.6426390409469604">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__039__RealtimeClient__Auth_authorize_should_upgrade_the_connection_with_current_token__when_the_connection_is_in_the_DISCONNECTED_state_when_auth_authorize_is_called__after_obtaining_a_token_the_library_should_move_to_the_CONNECTING_state_and_initiate_a_connection_attempt_using_the_new_token()" time="0.5570420026779175">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__040__RealtimeClient__Auth_authorize_should_upgrade_the_connection_with_current_token__when_the_connection_is_in_the_FAILED_state_when_auth_authorize_is_called__after_obtaining_a_token_the_library_should_move_to_the_CONNECTING_state_and_initiate_a_connection_attempt_using_the_new_token()" time="0.5808640718460083">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__041__If_the_total_size_of_message_s__exceeds_the_maxMessageSize__the_client_library_should_reject_the_publish_and_indicate_an_error()" time="0.20347797870635986">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__042__If_the_total_size_of_message_s__exceeds_the_maxMessageSize__the_client_library_should_reject_also_presence_messages__enter_()" time="0.3405039310455322">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__043__If_the_total_size_of_message_s__exceeds_the_maxMessageSize__the_client_library_should_reject_also_presence_messages__leave_()" time="0.345939040184021">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__044__If_the_total_size_of_message_s__exceeds_the_maxMessageSize__the_client_library_should_reject_also_presence_messages__update_()" time="0.31016600131988525">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__045__If_the_total_size_of_message_s__exceeds_the_maxMessageSize__the_client_library_should_reject_also_presence_messages__updateClient_()" time="0.3502739667892456">
        </testcase>
        <testcase classname="RealtimeClientTests" name="test__046__If_the_total_size_of_message_s__exceeds_the_maxMessageSize__the_client_library_should_reject_also_presence_messages__leaveClient_()" time="0.3554210662841797">
        </testcase>
        <testcase classname="RestClientChannelsTests" name="test__001__RestClient__channels__should_return_collection_of_channels()" time="0.0007240772247314453">
        </testcase>
        <testcase classname="RestClientChannelsTests" name="test__002__RestClient__channels__should_be_enumerable()" time="0.0007599592208862305">
        </testcase>
        <testcase classname="RestClientChannelsTests" name="test__003__RestClient__channels__get__should_return_a_channel()" time="0.0005840063095092773">
        </testcase>
        <testcase classname="RestClientChannelsTests" name="test__004__RestClient__channels__get__should_return_a_channel_with_the_provided_options()" time="0.514133095741272">
            <failure message="XCTAssertTrue failed (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientChannelsTests.swift#EndingLineNumber=74&amp;StartingLineNumber=74)">
            </failure>
        </testcase>
        <testcase classname="RestClientChannelsTests" name="test__005__RestClient__channels__get__should_not_replace_the_options_on_an_existing_channel_when_none_are_provided()" time="0.0015250444412231445">
            <failure message="XCTAssertTrue failed (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientChannelsTests.swift#EndingLineNumber=85&amp;StartingLineNumber=85)">
            </failure>
        </testcase>
        <testcase classname="RestClientChannelsTests" name="test__006__RestClient__channels__get__should_replace_the_options_on_an_existing_channel_when_new_ones_are_provided()" time="0.0007189512252807617">
        </testcase>
        <testcase classname="RestClientChannelsTests" name="test__007__RestClient__channels__channelExists__should_check_if_a_channel_exists()" time="0.002442002296447754">
        </testcase>
        <testcase classname="RestClientChannelsTests" name="test__008__RestClient__channels__releaseChannel__should_release_a_channel()" time="0.0018600225448608398">
        </testcase>
        <testcase classname="RestClientPresenceTests" name="test__002__Presence__get__should_return_a_PaginatedResult_page_containing_the_first_page_of_members()" time="75.2346340417862">
            <failure message="failed - expected to all pass a condition, but failed first at element &lt;&lt;ARTPresenceMessage: 0x00006000031ba470&gt; {id: Optional(&quot;ZCGG2jrXvq:0:0&quot;),clientId: Optional(&quot;user1&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:18 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}&gt; in &lt;[&lt;ARTPresenceMessage: 0x00006000031ba470&gt; {id: Optional(&quot;ZCGG2jrXvq:0:0&quot;),clientId: Optional(&quot;user1&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:18 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031baf70&gt; {id: Optional(&quot;ZCGG2jrXvq:9:0&quot;),clientId: Optional(&quot;user10&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:22 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bae10&gt; {id: Optional(&quot;ZCGG2jrXvq:99:0&quot;),clientId: Optional(&quot;user100&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:07 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bacb0&gt; {id: Optional(&quot;ZCGG2jrXvq:100:0&quot;),clientId: Optional(&quot;user101&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:07 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031ba1b0&gt; {id: Optional(&quot;ZCGG2jrXvq:101:0&quot;),clientId: Optional(&quot;user102&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:08 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031ba310&gt; {id: Optional(&quot;ZCGG2jrXvq:102:0&quot;),clientId: Optional(&quot;user103&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:08 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bfde0&gt; {id: Optional(&quot;ZCGG2jrXvq:103:0&quot;),clientId: Optional(&quot;user104&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:09 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bd6b0&gt; {id: Optional(&quot;ZCGG2jrXvq:104:0&quot;),clientId: Optional(&quot;user105&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:09 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bfe90&gt; {id: Optional(&quot;ZCGG2jrXvq:105:0&quot;),clientId: Optional(&quot;user106&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:10 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bf650&gt; {id: Optional(&quot;ZCGG2jrXvq:106:0&quot;),clientId: Optional(&quot;user107&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:10 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bec00&gt; {id: Optional(&quot;ZCGG2jrXvq:107:0&quot;),clientId: Optional(&quot;user108&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:11 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031becb0&gt; {id: Optional(&quot;ZCGG2jrXvq:108:0&quot;),clientId: Optional(&quot;user109&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:11 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031beb50&gt; {id: Optional(&quot;ZCGG2jrXvq:10:0&quot;),clientId: Optional(&quot;user11&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:22 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031beaa0&gt; {id: Optional(&quot;ZCGG2jrXvq:109:0&quot;),clientId: Optional(&quot;user110&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:12 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bdef0&gt; {id: Optional(&quot;ZCGG2jrXvq:110:0&quot;),clientId: Optional(&quot;user111&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:12 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be100&gt; {id: Optional(&quot;ZCGG2jrXvq:111:0&quot;),clientId: Optional(&quot;user112&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:13 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be680&gt; {id: Optional(&quot;ZCGG2jrXvq:112:0&quot;),clientId: Optional(&quot;user113&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:13 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be470&gt; {id: Optional(&quot;ZCGG2jrXvq:113:0&quot;),clientId: Optional(&quot;user114&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:14 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bdb80&gt; {id: Optional(&quot;ZCGG2jrXvq:114:0&quot;),clientId: Optional(&quot;user115&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:14 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bdad0&gt; {id: Optional(&quot;ZCGG2jrXvq:115:0&quot;),clientId: Optional(&quot;user116&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:15 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bdce0&gt; {id: Optional(&quot;ZCGG2jrXvq:116:0&quot;),clientId: Optional(&quot;user117&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:15 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bda20&gt; {id: Optional(&quot;ZCGG2jrXvq:117:0&quot;),clientId: Optional(&quot;user118&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:16 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bfa70&gt; {id: Optional(&quot;ZCGG2jrXvq:118:0&quot;),clientId: Optional(&quot;user119&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:16 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bf860&gt; {id: Optional(&quot;ZCGG2jrXvq:11:0&quot;),clientId: Optional(&quot;user12&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:23 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bf7b0&gt; {id: Optional(&quot;ZCGG2jrXvq:119:0&quot;),clientId: Optional(&quot;user120&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:17 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bf180&gt; {id: Optional(&quot;ZCGG2jrXvq:120:0&quot;),clientId: Optional(&quot;user121&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:17 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bf2e0&gt; {id: Optional(&quot;ZCGG2jrXvq:121:0&quot;),clientId: Optional(&quot;user122&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:18 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031beec0&gt; {id: Optional(&quot;ZCGG2jrXvq:122:0&quot;),clientId: Optional(&quot;user123&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:18 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bee10&gt; {id: Optional(&quot;ZCGG2jrXvq:123:0&quot;),clientId: Optional(&quot;user124&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:19 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be5d0&gt; {id: Optional(&quot;ZCGG2jrXvq:124:0&quot;),clientId: Optional(&quot;user125&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:19 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be520&gt; {id: Optional(&quot;ZCGG2jrXvq:125:0&quot;),clientId: Optional(&quot;user126&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:20 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be050&gt; {id: Optional(&quot;ZCGG2jrXvq:126:0&quot;),clientId: Optional(&quot;user127&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:20 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bd970&gt; {id: Optional(&quot;ZCGG2jrXvq:127:0&quot;),clientId: Optional(&quot;user128&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:21 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bd8c0&gt; {id: Optional(&quot;ZCGG2jrXvq:128:0&quot;),clientId: Optional(&quot;user129&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:21 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bdc30&gt; {id: Optional(&quot;ZCGG2jrXvq:12:0&quot;),clientId: Optional(&quot;user13&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:23 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bd810&gt; {id: Optional(&quot;ZCGG2jrXvq:129:0&quot;),clientId: Optional(&quot;user130&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:22 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be3c0&gt; {id: Optional(&quot;ZCGG2jrXvq:130:0&quot;),clientId: Optional(&quot;user131&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:22 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be9f0&gt; {id: Optional(&quot;ZCGG2jrXvq:131:0&quot;),clientId: Optional(&quot;user132&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:23 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bf910&gt; {id: Optional(&quot;ZCGG2jrXvq:132:0&quot;),clientId: Optional(&quot;user133&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:23 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bf5a0&gt; {id: Optional(&quot;ZCGG2jrXvq:133:0&quot;),clientId: Optional(&quot;user134&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:24 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be940&gt; {id: Optional(&quot;ZCGG2jrXvq:134:0&quot;),clientId: Optional(&quot;user135&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:24 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bf9c0&gt; {id: Optional(&quot;ZCGG2jrXvq:135:0&quot;),clientId: Optional(&quot;user136&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:25 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bef70&gt; {id: Optional(&quot;ZCGG2jrXvq:136:0&quot;),clientId: Optional(&quot;user137&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:25 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bf440&gt; {id: Optional(&quot;ZCGG2jrXvq:137:0&quot;),clientId: Optional(&quot;user138&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:26 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bf4f0&gt; {id: Optional(&quot;ZCGG2jrXvq:138:0&quot;),clientId: Optional(&quot;user139&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:26 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bed60&gt; {id: Optional(&quot;ZCGG2jrXvq:13:0&quot;),clientId: Optional(&quot;user14&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:24 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bf020&gt; {id: Optional(&quot;ZCGG2jrXvq:139:0&quot;),clientId: Optional(&quot;user140&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:27 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bf0d0&gt; {id: Optional(&quot;ZCGG2jrXvq:140:0&quot;),clientId: Optional(&quot;user141&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:27 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be730&gt; {id: Optional(&quot;ZCGG2jrXvq:141:0&quot;),clientId: Optional(&quot;user142&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:28 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be7e0&gt; {id: Optional(&quot;ZCGG2jrXvq:142:0&quot;),clientId: Optional(&quot;user143&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:28 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be260&gt; {id: Optional(&quot;ZCGG2jrXvq:143:0&quot;),clientId: Optional(&quot;user144&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:29 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be1b0&gt; {id: Optional(&quot;ZCGG2jrXvq:144:0&quot;),clientId: Optional(&quot;user145&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:29 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bde40&gt; {id: Optional(&quot;ZCGG2jrXvq:145:0&quot;),clientId: Optional(&quot;user146&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:30 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031be310&gt; {id: Optional(&quot;ZCGG2jrXvq:146:0&quot;),clientId: Optional(&quot;user147&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:30 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bdd90&gt; {id: Optional(&quot;ZCGG2jrXvq:147:0&quot;),clientId: Optional(&quot;user148&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:31 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bdfa0&gt; {id: Optional(&quot;ZCGG2jrXvq:148:0&quot;),clientId: Optional(&quot;user149&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:31 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bd760&gt; {id: Optional(&quot;ZCGG2jrXvq:14:0&quot;),clientId: Optional(&quot;user15&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:24 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031bd600&gt; {id: Optional(&quot;ZCGG2jrXvq:149:0&quot;),clientId: Optional(&quot;user150&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:48:32 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198000&gt; {id: Optional(&quot;ZCGG2jrXvq:15:0&quot;),clientId: Optional(&quot;user16&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:25 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031980b0&gt; {id: Optional(&quot;ZCGG2jrXvq:16:0&quot;),clientId: Optional(&quot;user17&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:25 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198160&gt; {id: Optional(&quot;ZCGG2jrXvq:17:0&quot;),clientId: Optional(&quot;user18&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:26 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198210&gt; {id: Optional(&quot;ZCGG2jrXvq:18:0&quot;),clientId: Optional(&quot;user19&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:26 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031982c0&gt; {id: Optional(&quot;ZCGG2jrXvq:1:0&quot;),clientId: Optional(&quot;user2&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:18 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198370&gt; {id: Optional(&quot;ZCGG2jrXvq:19:0&quot;),clientId: Optional(&quot;user20&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:27 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198420&gt; {id: Optional(&quot;ZCGG2jrXvq:20:0&quot;),clientId: Optional(&quot;user21&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:27 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031984d0&gt; {id: Optional(&quot;ZCGG2jrXvq:21:0&quot;),clientId: Optional(&quot;user22&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:28 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198580&gt; {id: Optional(&quot;ZCGG2jrXvq:22:0&quot;),clientId: Optional(&quot;user23&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:28 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198630&gt; {id: Optional(&quot;ZCGG2jrXvq:23:0&quot;),clientId: Optional(&quot;user24&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:29 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031986e0&gt; {id: Optional(&quot;ZCGG2jrXvq:24:0&quot;),clientId: Optional(&quot;user25&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:29 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198790&gt; {id: Optional(&quot;ZCGG2jrXvq:25:0&quot;),clientId: Optional(&quot;user26&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:30 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198840&gt; {id: Optional(&quot;ZCGG2jrXvq:26:0&quot;),clientId: Optional(&quot;user27&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:30 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031988f0&gt; {id: Optional(&quot;ZCGG2jrXvq:27:0&quot;),clientId: Optional(&quot;user28&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:31 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031989a0&gt; {id: Optional(&quot;ZCGG2jrXvq:28:0&quot;),clientId: Optional(&quot;user29&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:31 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198a50&gt; {id: Optional(&quot;ZCGG2jrXvq:2:0&quot;),clientId: Optional(&quot;user3&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:18 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198b00&gt; {id: Optional(&quot;ZCGG2jrXvq:29:0&quot;),clientId: Optional(&quot;user30&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:32 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198bb0&gt; {id: Optional(&quot;ZCGG2jrXvq:30:0&quot;),clientId: Optional(&quot;user31&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:32 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198c60&gt; {id: Optional(&quot;ZCGG2jrXvq:31:0&quot;),clientId: Optional(&quot;user32&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:33 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198d10&gt; {id: Optional(&quot;ZCGG2jrXvq:32:0&quot;),clientId: Optional(&quot;user33&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:33 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198dc0&gt; {id: Optional(&quot;ZCGG2jrXvq:33:0&quot;),clientId: Optional(&quot;user34&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:34 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198e70&gt; {id: Optional(&quot;ZCGG2jrXvq:34:0&quot;),clientId: Optional(&quot;user35&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:34 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198f20&gt; {id: Optional(&quot;ZCGG2jrXvq:35:0&quot;),clientId: Optional(&quot;user36&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:35 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003198fd0&gt; {id: Optional(&quot;ZCGG2jrXvq:36:0&quot;),clientId: Optional(&quot;user37&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:35 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199080&gt; {id: Optional(&quot;ZCGG2jrXvq:37:0&quot;),clientId: Optional(&quot;user38&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:36 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199130&gt; {id: Optional(&quot;ZCGG2jrXvq:38:0&quot;),clientId: Optional(&quot;user39&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:36 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031991e0&gt; {id: Optional(&quot;ZCGG2jrXvq:3:0&quot;),clientId: Optional(&quot;user4&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:19 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199290&gt; {id: Optional(&quot;ZCGG2jrXvq:39:0&quot;),clientId: Optional(&quot;user40&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:37 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199340&gt; {id: Optional(&quot;ZCGG2jrXvq:40:0&quot;),clientId: Optional(&quot;user41&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:37 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031993f0&gt; {id: Optional(&quot;ZCGG2jrXvq:41:0&quot;),clientId: Optional(&quot;user42&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:38 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031994a0&gt; {id: Optional(&quot;ZCGG2jrXvq:42:0&quot;),clientId: Optional(&quot;user43&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:38 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199550&gt; {id: Optional(&quot;ZCGG2jrXvq:43:0&quot;),clientId: Optional(&quot;user44&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:39 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199600&gt; {id: Optional(&quot;ZCGG2jrXvq:44:0&quot;),clientId: Optional(&quot;user45&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:39 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031996b0&gt; {id: Optional(&quot;ZCGG2jrXvq:45:0&quot;),clientId: Optional(&quot;user46&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:40 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199760&gt; {id: Optional(&quot;ZCGG2jrXvq:46:0&quot;),clientId: Optional(&quot;user47&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:40 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199810&gt; {id: Optional(&quot;ZCGG2jrXvq:47:0&quot;),clientId: Optional(&quot;user48&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:41 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x00006000031998c0&gt; {id: Optional(&quot;ZCGG2jrXvq:48:0&quot;),clientId: Optional(&quot;user49&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:41 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199970&gt; {id: Optional(&quot;ZCGG2jrXvq:4:0&quot;),clientId: Optional(&quot;user5&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:19 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199a20&gt; {id: Optional(&quot;ZCGG2jrXvq:49:0&quot;),clientId: Optional(&quot;user50&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:42 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199ad0&gt; {id: Optional(&quot;ZCGG2jrXvq:50:0&quot;),clientId: Optional(&quot;user51&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:42 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199b80&gt; {id: Optional(&quot;ZCGG2jrXvq:51:0&quot;),clientId: Optional(&quot;user52&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:43 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}, &lt;ARTPresenceMessage: 0x0000600003199c30&gt; {id: Optional(&quot;ZCGG2jrXvq:52:0&quot;),clientId: Optional(&quot;user53&quot;),connectionId: Optional(&quot;ZCGG2jrXvq&quot;),timestamp: Optional(2025-09-16 13:47:43 +0000),encoding: nil,data: Optional(online)extras: nil,action: 1,}]&gt;
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientPresenceTests.swift#EndingLineNumber=39&amp;StartingLineNumber=39)">
            </failure>
        </testcase>
        <testcase classname="RestClientPresenceTests" name="test__003__Presence__get__limit_should_support_up_to_1000_items()" time="0.0042040348052978516">
        </testcase>
        <testcase classname="RestClientPresenceTests" name="test__004__Presence__get__clientId_should_filter_members_by_the_provided_clientId()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RestClientPresenceTests" name="test__005__Presence__get__connectionId_should_filter_members_by_the_provided_connectionId()" time="8.779717922210693">
            <failure message="XCTAssertEqual failed: (&quot;9&quot;) is not equal to (&quot;3&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientPresenceTests.swift#EndingLineNumber=150&amp;StartingLineNumber=150)">
            </failure>
        </testcase>
        <testcase classname="RestClientPresenceTests" name="test__006__Presence__history__should_return_a_PaginatedResult_page_containing_the_first_page_of_members()" time="75.42953908443451">
            <failure message="failed - expected to all pass a condition, but failed first at element &lt;&lt;ARTPresenceMessage: 0x0000600000ed39c0&gt; {id: Optional(&quot;4Hpxah3V2M:149:0&quot;),clientId: Optional(&quot;user150&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:49 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}&gt; in &lt;[&lt;ARTPresenceMessage: 0x0000600000ed39c0&gt; {id: Optional(&quot;4Hpxah3V2M:149:0&quot;),clientId: Optional(&quot;user150&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:49 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed3a70&gt; {id: Optional(&quot;4Hpxah3V2M:148:0&quot;),clientId: Optional(&quot;user149&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:49 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed3b20&gt; {id: Optional(&quot;4Hpxah3V2M:147:0&quot;),clientId: Optional(&quot;user148&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:48 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed3bd0&gt; {id: Optional(&quot;4Hpxah3V2M:146:0&quot;),clientId: Optional(&quot;user147&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:48 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed3c80&gt; {id: Optional(&quot;4Hpxah3V2M:145:0&quot;),clientId: Optional(&quot;user146&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:47 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed3d30&gt; {id: Optional(&quot;4Hpxah3V2M:144:0&quot;),clientId: Optional(&quot;user145&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:47 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed3de0&gt; {id: Optional(&quot;4Hpxah3V2M:143:0&quot;),clientId: Optional(&quot;user144&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:46 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed3e90&gt; {id: Optional(&quot;4Hpxah3V2M:142:0&quot;),clientId: Optional(&quot;user143&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:46 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed3f40&gt; {id: Optional(&quot;4Hpxah3V2M:141:0&quot;),clientId: Optional(&quot;user142&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:45 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4000&gt; {id: Optional(&quot;4Hpxah3V2M:140:0&quot;),clientId: Optional(&quot;user141&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:45 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed40b0&gt; {id: Optional(&quot;4Hpxah3V2M:139:0&quot;),clientId: Optional(&quot;user140&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:44 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4160&gt; {id: Optional(&quot;4Hpxah3V2M:138:0&quot;),clientId: Optional(&quot;user139&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:44 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4210&gt; {id: Optional(&quot;4Hpxah3V2M:137:0&quot;),clientId: Optional(&quot;user138&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:43 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed42c0&gt; {id: Optional(&quot;4Hpxah3V2M:136:0&quot;),clientId: Optional(&quot;user137&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:43 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4370&gt; {id: Optional(&quot;4Hpxah3V2M:135:0&quot;),clientId: Optional(&quot;user136&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:42 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4420&gt; {id: Optional(&quot;4Hpxah3V2M:134:0&quot;),clientId: Optional(&quot;user135&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:42 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed44d0&gt; {id: Optional(&quot;4Hpxah3V2M:133:0&quot;),clientId: Optional(&quot;user134&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:41 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4580&gt; {id: Optional(&quot;4Hpxah3V2M:132:0&quot;),clientId: Optional(&quot;user133&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:41 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4630&gt; {id: Optional(&quot;4Hpxah3V2M:131:0&quot;),clientId: Optional(&quot;user132&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:40 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed46e0&gt; {id: Optional(&quot;4Hpxah3V2M:130:0&quot;),clientId: Optional(&quot;user131&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:40 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4790&gt; {id: Optional(&quot;4Hpxah3V2M:129:0&quot;),clientId: Optional(&quot;user130&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:39 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4840&gt; {id: Optional(&quot;4Hpxah3V2M:128:0&quot;),clientId: Optional(&quot;user129&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:39 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed48f0&gt; {id: Optional(&quot;4Hpxah3V2M:127:0&quot;),clientId: Optional(&quot;user128&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:38 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed49a0&gt; {id: Optional(&quot;4Hpxah3V2M:126:0&quot;),clientId: Optional(&quot;user127&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:38 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4a50&gt; {id: Optional(&quot;4Hpxah3V2M:125:0&quot;),clientId: Optional(&quot;user126&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:37 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4b00&gt; {id: Optional(&quot;4Hpxah3V2M:124:0&quot;),clientId: Optional(&quot;user125&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:37 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4bb0&gt; {id: Optional(&quot;4Hpxah3V2M:123:0&quot;),clientId: Optional(&quot;user124&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:36 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4c60&gt; {id: Optional(&quot;4Hpxah3V2M:122:0&quot;),clientId: Optional(&quot;user123&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:36 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4d10&gt; {id: Optional(&quot;4Hpxah3V2M:121:0&quot;),clientId: Optional(&quot;user122&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:35 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4dc0&gt; {id: Optional(&quot;4Hpxah3V2M:120:0&quot;),clientId: Optional(&quot;user121&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:35 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4e70&gt; {id: Optional(&quot;4Hpxah3V2M:119:0&quot;),clientId: Optional(&quot;user120&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:34 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4f20&gt; {id: Optional(&quot;4Hpxah3V2M:118:0&quot;),clientId: Optional(&quot;user119&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:34 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed4fd0&gt; {id: Optional(&quot;4Hpxah3V2M:117:0&quot;),clientId: Optional(&quot;user118&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:33 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5080&gt; {id: Optional(&quot;4Hpxah3V2M:116:0&quot;),clientId: Optional(&quot;user117&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:33 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5130&gt; {id: Optional(&quot;4Hpxah3V2M:115:0&quot;),clientId: Optional(&quot;user116&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:32 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed51e0&gt; {id: Optional(&quot;4Hpxah3V2M:114:0&quot;),clientId: Optional(&quot;user115&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:32 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5290&gt; {id: Optional(&quot;4Hpxah3V2M:113:0&quot;),clientId: Optional(&quot;user114&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:31 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5340&gt; {id: Optional(&quot;4Hpxah3V2M:112:0&quot;),clientId: Optional(&quot;user113&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:31 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed53f0&gt; {id: Optional(&quot;4Hpxah3V2M:111:0&quot;),clientId: Optional(&quot;user112&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:30 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed54a0&gt; {id: Optional(&quot;4Hpxah3V2M:110:0&quot;),clientId: Optional(&quot;user111&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:30 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5550&gt; {id: Optional(&quot;4Hpxah3V2M:109:0&quot;),clientId: Optional(&quot;user110&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:29 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5600&gt; {id: Optional(&quot;4Hpxah3V2M:108:0&quot;),clientId: Optional(&quot;user109&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:29 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed56b0&gt; {id: Optional(&quot;4Hpxah3V2M:107:0&quot;),clientId: Optional(&quot;user108&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:28 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5760&gt; {id: Optional(&quot;4Hpxah3V2M:106:0&quot;),clientId: Optional(&quot;user107&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:28 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5810&gt; {id: Optional(&quot;4Hpxah3V2M:105:0&quot;),clientId: Optional(&quot;user106&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:27 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed58c0&gt; {id: Optional(&quot;4Hpxah3V2M:104:0&quot;),clientId: Optional(&quot;user105&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:27 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5970&gt; {id: Optional(&quot;4Hpxah3V2M:103:0&quot;),clientId: Optional(&quot;user104&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:26 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5a20&gt; {id: Optional(&quot;4Hpxah3V2M:102:0&quot;),clientId: Optional(&quot;user103&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:26 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5ad0&gt; {id: Optional(&quot;4Hpxah3V2M:101:0&quot;),clientId: Optional(&quot;user102&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:25 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5b80&gt; {id: Optional(&quot;4Hpxah3V2M:100:0&quot;),clientId: Optional(&quot;user101&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:25 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5c30&gt; {id: Optional(&quot;4Hpxah3V2M:99:0&quot;),clientId: Optional(&quot;user100&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:24 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5ce0&gt; {id: Optional(&quot;4Hpxah3V2M:98:0&quot;),clientId: Optional(&quot;user99&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:24 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5d90&gt; {id: Optional(&quot;4Hpxah3V2M:97:0&quot;),clientId: Optional(&quot;user98&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:23 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5e40&gt; {id: Optional(&quot;4Hpxah3V2M:96:0&quot;),clientId: Optional(&quot;user97&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:23 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5ef0&gt; {id: Optional(&quot;4Hpxah3V2M:95:0&quot;),clientId: Optional(&quot;user96&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:22 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed5fa0&gt; {id: Optional(&quot;4Hpxah3V2M:94:0&quot;),clientId: Optional(&quot;user95&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:22 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6050&gt; {id: Optional(&quot;4Hpxah3V2M:93:0&quot;),clientId: Optional(&quot;user94&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:21 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6100&gt; {id: Optional(&quot;4Hpxah3V2M:92:0&quot;),clientId: Optional(&quot;user93&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:21 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed61b0&gt; {id: Optional(&quot;4Hpxah3V2M:91:0&quot;),clientId: Optional(&quot;user92&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:20 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6260&gt; {id: Optional(&quot;4Hpxah3V2M:90:0&quot;),clientId: Optional(&quot;user91&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:20 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6310&gt; {id: Optional(&quot;4Hpxah3V2M:89:0&quot;),clientId: Optional(&quot;user90&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:19 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed63c0&gt; {id: Optional(&quot;4Hpxah3V2M:88:0&quot;),clientId: Optional(&quot;user89&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:19 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6470&gt; {id: Optional(&quot;4Hpxah3V2M:87:0&quot;),clientId: Optional(&quot;user88&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:18 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6520&gt; {id: Optional(&quot;4Hpxah3V2M:86:0&quot;),clientId: Optional(&quot;user87&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:18 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed65d0&gt; {id: Optional(&quot;4Hpxah3V2M:85:0&quot;),clientId: Optional(&quot;user86&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:17 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6680&gt; {id: Optional(&quot;4Hpxah3V2M:84:0&quot;),clientId: Optional(&quot;user85&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:17 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6730&gt; {id: Optional(&quot;4Hpxah3V2M:83:0&quot;),clientId: Optional(&quot;user84&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:16 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed67e0&gt; {id: Optional(&quot;4Hpxah3V2M:82:0&quot;),clientId: Optional(&quot;user83&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:16 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6890&gt; {id: Optional(&quot;4Hpxah3V2M:81:0&quot;),clientId: Optional(&quot;user82&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:15 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6940&gt; {id: Optional(&quot;4Hpxah3V2M:80:0&quot;),clientId: Optional(&quot;user81&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:15 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed69f0&gt; {id: Optional(&quot;4Hpxah3V2M:79:0&quot;),clientId: Optional(&quot;user80&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:14 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6aa0&gt; {id: Optional(&quot;4Hpxah3V2M:78:0&quot;),clientId: Optional(&quot;user79&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:14 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6b50&gt; {id: Optional(&quot;4Hpxah3V2M:77:0&quot;),clientId: Optional(&quot;user78&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:13 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6c00&gt; {id: Optional(&quot;4Hpxah3V2M:76:0&quot;),clientId: Optional(&quot;user77&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:13 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6cb0&gt; {id: Optional(&quot;4Hpxah3V2M:75:0&quot;),clientId: Optional(&quot;user76&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:12 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6d60&gt; {id: Optional(&quot;4Hpxah3V2M:74:0&quot;),clientId: Optional(&quot;user75&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:12 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6e10&gt; {id: Optional(&quot;4Hpxah3V2M:73:0&quot;),clientId: Optional(&quot;user74&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:11 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6ec0&gt; {id: Optional(&quot;4Hpxah3V2M:72:0&quot;),clientId: Optional(&quot;user73&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:11 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed6f70&gt; {id: Optional(&quot;4Hpxah3V2M:71:0&quot;),clientId: Optional(&quot;user72&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:10 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7020&gt; {id: Optional(&quot;4Hpxah3V2M:70:0&quot;),clientId: Optional(&quot;user71&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:10 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed70d0&gt; {id: Optional(&quot;4Hpxah3V2M:69:0&quot;),clientId: Optional(&quot;user70&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:09 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7180&gt; {id: Optional(&quot;4Hpxah3V2M:68:0&quot;),clientId: Optional(&quot;user69&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:09 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7230&gt; {id: Optional(&quot;4Hpxah3V2M:67:0&quot;),clientId: Optional(&quot;user68&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:08 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed72e0&gt; {id: Optional(&quot;4Hpxah3V2M:66:0&quot;),clientId: Optional(&quot;user67&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:08 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7390&gt; {id: Optional(&quot;4Hpxah3V2M:65:0&quot;),clientId: Optional(&quot;user66&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:07 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7440&gt; {id: Optional(&quot;4Hpxah3V2M:64:0&quot;),clientId: Optional(&quot;user65&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:07 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed74f0&gt; {id: Optional(&quot;4Hpxah3V2M:63:0&quot;),clientId: Optional(&quot;user64&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:06 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed75a0&gt; {id: Optional(&quot;4Hpxah3V2M:62:0&quot;),clientId: Optional(&quot;user63&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:06 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7650&gt; {id: Optional(&quot;4Hpxah3V2M:61:0&quot;),clientId: Optional(&quot;user62&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:05 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7700&gt; {id: Optional(&quot;4Hpxah3V2M:60:0&quot;),clientId: Optional(&quot;user61&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:05 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed77b0&gt; {id: Optional(&quot;4Hpxah3V2M:59:0&quot;),clientId: Optional(&quot;user60&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:04 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7860&gt; {id: Optional(&quot;4Hpxah3V2M:58:0&quot;),clientId: Optional(&quot;user59&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:04 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7910&gt; {id: Optional(&quot;4Hpxah3V2M:57:0&quot;),clientId: Optional(&quot;user58&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:03 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed79c0&gt; {id: Optional(&quot;4Hpxah3V2M:56:0&quot;),clientId: Optional(&quot;user57&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:03 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7a70&gt; {id: Optional(&quot;4Hpxah3V2M:55:0&quot;),clientId: Optional(&quot;user56&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:02 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7b20&gt; {id: Optional(&quot;4Hpxah3V2M:54:0&quot;),clientId: Optional(&quot;user55&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:02 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7bd0&gt; {id: Optional(&quot;4Hpxah3V2M:53:0&quot;),clientId: Optional(&quot;user54&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:01 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7c80&gt; {id: Optional(&quot;4Hpxah3V2M:52:0&quot;),clientId: Optional(&quot;user53&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:01 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7d30&gt; {id: Optional(&quot;4Hpxah3V2M:51:0&quot;),clientId: Optional(&quot;user52&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:00 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}, &lt;ARTPresenceMessage: 0x0000600000ed7de0&gt; {id: Optional(&quot;4Hpxah3V2M:50:0&quot;),clientId: Optional(&quot;user51&quot;),connectionId: Optional(&quot;4Hpxah3V2M&quot;),timestamp: Optional(2025-09-16 13:50:00 +0000),encoding: nil,data: Optional(online)extras: nil,action: 2,}]&gt;
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientPresenceTests.swift#EndingLineNumber=190&amp;StartingLineNumber=190)">
            </failure>
        </testcase>
        <testcase classname="RestClientPresenceTests" name="test__007__Presence__history__query_argument__direction_should_change_the_order_of_the_members()" time="5.045854091644287">
            <failure message="XCTAssertEqual failed: (&quot;Optional(&quot;user10&quot;)&quot;) is not equal to (&quot;Optional(&quot;user1&quot;)&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientPresenceTests.swift#EndingLineNumber=266&amp;StartingLineNumber=266)">
            </failure>
        </testcase>
        <testcase classname="RestClientPresenceTests" name="test__008__Presence__history__connectionId_should_filter_members_by_the_provided_connectionId()" time="4.320886015892029">
            <failure message="XCTAssertEqual failed: (&quot;9&quot;) is not equal to (&quot;3&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientPresenceTests.swift#EndingLineNumber=346&amp;StartingLineNumber=346)">
            </failure>
        </testcase>
        <testcase classname="RestClientPresenceTests" name="test__009__Presence__history__query_argument__limit_supports_up_to_1000_members()" time="0.43727993965148926">
        </testcase>
        <testcase classname="RestClientPresenceTests" name="test__010__Presence__history__query_argument__start_and_end_should_filter_members_between_those_two_times()" time="20.74714994430542">
            <failure message="XCTAssertEqual failed: (&quot;38&quot;) is not equal to (&quot;3&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientPresenceTests.swift#EndingLineNumber=411&amp;StartingLineNumber=411)">
            </failure>
        </testcase>
        <testcase classname="RestClientPresenceTests" name="test__011__Presence__history__query_argument__start_must_be_equal_to_or_less_than_end_and_is_unaffected_by_the_request_direction()" time="0.00860297679901123">
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__001__RestClient__stats__result__should_match_minute_level_inbound_and_outbound_fixture_data__forwards_()" time="7.642920017242432">
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__002__RestClient__stats__result__should_match_hour_level_inbound_and_outbound_fixture_data__forwards_()" time="3.97674298286438">
            <failure message="XCTAssertEqual failed: (&quot;3&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientStatsTests.swift#EndingLineNumber=142&amp;StartingLineNumber=142)">
            </failure>
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__003__RestClient__stats__result__should_match_day_level_inbound_and_outbound_fixture_data__forwards_()" time="5.0809550285339355">
            <failure message="XCTAssertEqual failed: (&quot;3&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientStatsTests.swift#EndingLineNumber=161&amp;StartingLineNumber=161)">
            </failure>
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__004__RestClient__stats__result__should_match_month_level_inbound_and_outbound_fixture_data__forwards_()" time="4.929335951805115">
            <failure message="XCTAssertEqual failed: (&quot;3&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientStatsTests.swift#EndingLineNumber=180&amp;StartingLineNumber=180)">
            </failure>
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__005__RestClient__stats__result__should_contain_only_one_item_when_limit_is_1__backwards()" time="4.785915017127991">
            <failure message="XCTAssertEqual failed: (&quot;3&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientStatsTests.swift#EndingLineNumber=198&amp;StartingLineNumber=198)">
            </failure>
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__006__RestClient__stats__result__should_contain_only_one_item_when_limit_is_1__forwards()" time="4.427361965179443">
            <failure message="XCTAssertEqual failed: (&quot;3&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientStatsTests.swift#EndingLineNumber=217&amp;StartingLineNumber=217)">
            </failure>
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__007__RestClient__stats__result__should_be_paginated_according_to_the_limit__backwards()" time="5.193946957588196">
            <failure message="XCTAssertEqual failed: (&quot;3&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientStatsTests.swift#EndingLineNumber=232&amp;StartingLineNumber=232)">
            </failure>
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__008__RestClient__stats__result__should_be_paginated_according_to_the_limit__fowards_()" time="4.650449991226196">
            <failure message="XCTAssertEqual failed: (&quot;3&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientStatsTests.swift#EndingLineNumber=282&amp;StartingLineNumber=282)">
            </failure>
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__009__RestClient__stats__query__start__should_return_an_error_when_later_than_end()" time="0.003163933753967285">
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__010__RestClient__stats__query__direction__should_be_backwards_by_default()" time="0.0010149478912353516">
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__011__RestClient__stats__query__limit__should_have_a_default_value_of_100()" time="0.0014950037002563477">
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__012__RestClient__stats__query__limit__should_return_an_error_when_greater_than_1000()" time="0.001350998878479004">
        </testcase>
        <testcase classname="RestClientStatsTests" name="test__013__RestClient__stats__query__unit__should_default_to_minute()" time="0.0024739503860473633">
        </testcase>
        <testcase classname="RestClientTests" name="test__001__RestClient__All_REST_requests_should_include_the_current_API_version()" time="0.14100992679595947">
        </testcase>
        <testcase classname="RestClientTests" name="test__002__RestClient__should_provide_access_to_the_AuthOptions_object_passed_in_ClientOptions()" time="0.0">
            <failure message="Test crashed with signal segv.">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__003__RestClient__REST_endpoint_host_should_be_configurable_in_the_Client_constructor_with_the_option_restHost()" time="0.04823899269104004">
        </testcase>
        <testcase classname="RestClientTests" name="test__004__RestClient__should_send_requests_over_http_and_https()" time="4.207861065864563">
        </testcase>
        <testcase classname="RestClientTests" name="test__005__RestClient__should_use_Auth_to_manage_authentication()" time="0.09525501728057861">
        </testcase>
        <testcase classname="RestClientTests" name="test__006__RestClient__should_request_another_token_after_current_one_is_no_longer_valid()" time="1.5599150657653809">
        </testcase>
        <testcase classname="RestClientTests" name="test__007__RestClient__should_result_in_an_error_when_user_does_not_have_sufficient_permissions()" time="0.21821105480194092">
        </testcase>
        <testcase classname="RestClientTests" name="test__008__RestClient__should_use_MsgPack_binary_protocol()" time="0.3984949588775635">
        </testcase>
        <testcase classname="RestClientTests" name="test__009__RestClient__should_use_JSON_text_protocol()" time="0.0">
            <failure message="Test crashed with signal trap.">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__010__RestClient__X_Ably_Version_must_be_included_in_all_REST_requests()" time="4.483166933059692">
        </testcase>
        <testcase classname="RestClientTests" name="test__011__RestClient__The_Agent_library_identifier_is_composed_of_a_series_of_key__value__entries_joined_by_spaces()" time="0.15305495262145996">
        </testcase>
        <testcase classname="RestClientTests" name="test__012__RestClient__should_indicate_an_error_if_there_is_no_way_to_renew_the_token()" time="2.3091089725494385">
        </testcase>
        <testcase classname="RestClientTests" name="test__013__RestClient__background_behaviour()" time="0.7117429971694946">
        </testcase>
        <testcase classname="RestClientTests" name="test__014__RestClient__client_should_handle_error_messages_in_plaintext_and_HTML_format()" time="20.602820992469788">
            <failure message="failed - Waited more than 20.0 seconds
 (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientTests.swift#EndingLineNumber=1799&amp;StartingLineNumber=1799)">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__015__RestClient__initializer__should_accept_an_API_key()" time="0.0066939592361450195">
        </testcase>
        <testcase classname="RestClientTests" name="test__017__RestClient__initializer__should_result_in_error_status_when_provided_a_bad_key()" time="0.17258310317993164">
        </testcase>
        <testcase classname="RestClientTests" name="test__018__RestClient__initializer__should_accept_a_token()" time="0.12307798862457275">
        </testcase>
        <testcase classname="RestClientTests" name="test__019__RestClient__initializer__should_accept_an_options_object()" time="0.0012799501419067383">
        </testcase>
        <testcase classname="RestClientTests" name="test__020__RestClient__initializer__should_accept_an_options_object_with_token_authentication()" time="0.17973101139068604">
        </testcase>
        <testcase classname="RestClientTests" name="test__021__RestClient__initializer__should_result_in_error_status_when_provided_a_bad_token()" time="0.14315390586853027">
        </testcase>
        <testcase classname="RestClientTests" name="test__022__RestClient__logging__should_output_to_the_system-log_and_the_log_level_should_be_Warn()" time="0.0035469532012939453">
        </testcase>
        <testcase classname="RestClientTests" name="test__023__RestClient__logging__should_have_a_mutable_log_level()" time="0.002339005470275879">
        </testcase>
        <testcase classname="RestClientTests" name="test__024__RestClient__logging__should_accept_a_custom_logger()" time="0.002328038215637207">
        </testcase>
        <testcase classname="RestClientTests" name="test__025__RestClient__endpoint__should_accept_a_custom_host_and_send_requests_to_the_specified_host()" time="0.002154111862182617">
        </testcase>
        <testcase classname="RestClientTests" name="test__026__RestClient__endpoint__should_ignore_an_environment_when_restHost_is_customized()" time="0.004462003707885742">
        </testcase>
        <testcase classname="RestClientTests" name="test__027__RestClient__endpoint__should_accept_an_environment_when_restHost_is_left_unchanged()" time="0.0024080276489257812">
        </testcase>
        <testcase classname="RestClientTests" name="test__028__RestClient__endpoint__should_default_to_https___rest_ably_io()" time="0.01367807388305664">
        </testcase>
        <testcase classname="RestClientTests" name="test__029__RestClient__endpoint__should_connect_over_plain_http____when_tls_is_off()" time="0.10693299770355225">
        </testcase>
        <testcase classname="RestClientTests" name="test__030__RestClient__endpoint__should_not_prepend_the_environment_if_environment_is_configured_as__production_()" time="0.0007500648498535156">
        </testcase>
        <testcase classname="RestClientTests" name="test__031__RestClient__should_use_the_the_connection_and_request_timeouts_specified__timeout_for_any_single_HTTP_request_and_response()" time="1.0358389616012573">
        </testcase>
        <testcase classname="RestClientTests" name="test__032__RestClient__should_use_the_the_connection_and_request_timeouts_specified__max_number_of_fallback_hosts()" time="0.0032989978790283203">
        </testcase>
        <testcase classname="RestClientTests" name="test__033__RestClient__should_use_the_the_connection_and_request_timeouts_specified__max_elapsed_time_in_which_fallback_host_retries_for_HTTP_requests_will_be_attempted()" time="0.5331809520721436">
        </testcase>
        <testcase classname="RestClientTests" name="test__034__RestClient__time__should_return_server_time()" time="0.09339296817779541">
        </testcase>
        <testcase classname="RestClientTests" name="test__035__RestClient__Authentication__should_support_basic_authentication_when_an_API_key_is_provided_with_the_key_option()" time="0.08676397800445557">
        </testcase>
        <testcase classname="RestClientTests" name="test__036__RestClient__Authentication__should_error_when_expired_token_and_no_means_to_renew()" time="5.656231999397278">
        </testcase>
        <testcase classname="RestClientTests" name="test__037__RestClient__Authentication__should_renew_the_token_when_it_has_expired()" time="5.405845046043396">
        </testcase>
        <testcase classname="RestClientTests" name="test__038__RestClient__Authentication__basic_authentication_flag__should_be_true_when_initialized_with_a_key()" time="0.0007950067520141602">
        </testcase>
        <testcase classname="RestClientTests" name="test__039__RestClient__Authentication__basic_authentication_flag__should_be_false_when_options__useTokenAuth_is_set()" time="0.0006070137023925781">
        </testcase>
        <testcase classname="RestClientTests" name="test__040__RestClient__Authentication__basic_authentication_flag__should_be_false_when_options__authUrl_is_set()" time="0.0006389617919921875">
        </testcase>
        <testcase classname="RestClientTests" name="test__041__RestClient__Authentication__basic_authentication_flag__should_be_false_when_options__authCallback_is_set()" time="0.0021250247955322266">
        </testcase>
        <testcase classname="RestClientTests" name="test__042__RestClient__Authentication__basic_authentication_flag__should_be_false_when_options__tokenDetails_is_set()" time="0.0009609460830688477">
        </testcase>
        <testcase classname="RestClientTests" name="test__043__RestClient__Authentication__basic_authentication_flag__should_be_false_when_options__token_is_set()" time="0.000659942626953125">
        </testcase>
        <testcase classname="RestClientTests" name="test__044__RestClient__Authentication__basic_authentication_flag__should_be_false_when_options__key_is_set()" time="0.0024269819259643555">
        </testcase>
        <testcase classname="RestClientTests" name="test__045__RestClient__Host_Fallback__failing_HTTP_requests_with_custom_endpoint_should_result_in_an_error_immediately()" time="0.0021070241928100586">
        </testcase>
        <testcase classname="RestClientTests" name="test__046__RestClient__Host_Fallback__applies_when_ClientOptions_fallbackHostsUseDefault_is_true()" time="0.00250399112701416">
        </testcase>
        <testcase classname="RestClientTests" name="test__047__RestClient__Host_Fallback__won_t_apply_fallback_hosts_if_ClientOptions_fallbackHosts_array_is_empty()" time="0.0030649900436401367">
        </testcase>
        <testcase classname="RestClientTests" name="test__048__RestClient__Host_Fallback__won_t_apply_custom_fallback_hosts_if_ClientOptions_fallbackHosts_and_ClientOptions_environment_are_not_set__use_defaults_instead()" time="0.001895904541015625">
        </testcase>
        <testcase classname="RestClientTests" name="test__049__RestClient__Host_Fallback__every_new_HTTP_request_is_first_attempted_to_the_default_primary_host_rest_ably_io()" time="1.1099339723587036">
            <failure message="XCTAssertTrue failed (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientTests.swift#EndingLineNumber=1313&amp;StartingLineNumber=1313)">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__050__RestClient__Host_Fallback__should_not_use_an_alternative_host_when_the_client_receives_an_bad_request()" time="0.004024982452392578">
        </testcase>
        <testcase classname="RestClientTests" name="test__051__RestClient__Host_Fallback__fallbackHostsUseDefault_option__allows_the_default_fallback_hosts_to_be_used_when__environment__is_not_production()" time="0.006047964096069336">
        </testcase>
        <testcase classname="RestClientTests" name="test__052__RestClient__Host_Fallback__fallbackHostsUseDefault_option__allows_the_default_fallback_hosts_to_be_used_when_a_custom_Realtime_or_REST_host_endpoint_is_being_used()" time="0.0011330842971801758">
        </testcase>
        <testcase classname="RestClientTests" name="test__053__RestClient__Host_Fallback__fallbackHostsUseDefault_option__should_be_inactive_by_default()" time="0.0004349946975708008">
        </testcase>
        <testcase classname="RestClientTests" name="test__055__RestClient__Host_Fallback__Fallback_behavior__should_be_applied_when_restHost__port_and_tlsPort_has_not_been_set_to_an_explicit_value()" time="0.002920985221862793">
        </testcase>
        <testcase classname="RestClientTests" name="test__056__RestClient__Host_Fallback__Fallback_behavior__should_NOT_be_applied_when_ClientOptions_restHost_has_been_set()" time="0.0017180442810058594">
        </testcase>
        <testcase classname="RestClientTests" name="test__057__RestClient__Host_Fallback__Fallback_behavior__should_NOT_be_applied_when_ClientOptions_port_has_been_set()" time="0.0021840333938598633">
        </testcase>
        <testcase classname="RestClientTests" name="test__058__RestClient__Host_Fallback__Fallback_behavior__should_NOT_be_applied_when_ClientOptions_tlsPort_has_been_set()" time="0.0011750459671020508">
        </testcase>
        <testcase classname="RestClientTests" name="test__059__RestClient__Host_Fallback__Fallback_behavior__should_be_applied_when_ClientOptions_fallbackHosts_is_provided()" time="0.0012199878692626953">
        </testcase>
        <testcase classname="RestClientTests" name="test__060__RestClient__Host_Fallback__Fallback_behavior__should_be_applied_when_ClientOptions_fallbackHosts_is_not_provided_and_deprecated_fallbackHostsUseDefault_is_on()" time="0.001150965690612793">
        </testcase>
        <testcase classname="RestClientTests" name="test__061__RestClient__Host_Fallback__fallback_hosts_list_and_priorities__should_use_ClientOptions_fallbackHosts_when_list_is_provided()" time="0.0012660026550292969">
        </testcase>
        <testcase classname="RestClientTests" name="test__062__RestClient__Host_Fallback__fallback_hosts_list_and_priorities__should_use_environment_fallback_hosts_when_ClientOptions_environment_is_set_to_a_value_other_than__production__and_ClientOptions_fallbackHosts_is_not_set()" time="0.0016109943389892578">
        </testcase>
        <testcase classname="RestClientTests" name="test__063__RestClient__Host_Fallback__fallback_hosts_list_and_priorities__should_NOT_use_environment_fallback_hosts_when_ClientOptions_environment_is_set_to__production_()" time="0.0015079975128173828">
        </testcase>
        <testcase classname="RestClientTests" name="test__064__RestClient__Host_Fallback__fallback_hosts_list_and_priorities__should_use_default_fallback_hosts_when_both_ClientOptions_fallbackHosts_and_ClientOptions_environment_are_not_set()" time="0.0017679929733276367">
        </testcase>
        <testcase classname="RestClientTests" name="test__065__RestClient__Host_Fallback__retry_hosts_in_random_order__default_fallback_hosts_should_match__a_e__ably_realtime_com()" time="0.004785060882568359">
        </testcase>
        <testcase classname="RestClientTests" name="test__066__RestClient__Host_Fallback__retry_hosts_in_random_order__environment_fallback_hosts_have_the_format__environment___a_e__fallback_ably_realtime_com()" time="0.00189208984375">
        </testcase>
        <testcase classname="RestClientTests" name="test__067__RestClient__Host_Fallback__retry_hosts_in_random_order__until_httpMaxRetryCount_has_been_reached()" time="0.0016520023345947266">
        </testcase>
        <testcase classname="RestClientTests" name="test__068__RestClient__Host_Fallback__retry_hosts_in_random_order__use_custom_fallback_hosts_if_set()" time="0.0012500286102294922">
        </testcase>
        <testcase classname="RestClientTests" name="test__069__RestClient__Host_Fallback__retry_hosts_in_random_order__until_all_fallback_hosts_have_been_tried()" time="0.0013478994369506836">
        </testcase>
        <testcase classname="RestClientTests" name="test__070__RestClient__Host_Fallback__retry_hosts_in_random_order__until_httpMaxRetryCount_has_been_reached__if_custom_fallback_hosts_are_provided_in_ClientOptions_fallbackHosts__then_they_will_be_used_instead()" time="0.001374959945678711">
        </testcase>
        <testcase classname="RestClientTests" name="test__071__RestClient__Host_Fallback__retry_hosts_in_random_order__until_all_fallback_hosts_have_been_tried__if_custom_fallback_hosts_are_provided_in_ClientOptions_fallbackHosts__then_they_will_be_used_instead()" time="0.0021920204162597656">
        </testcase>
        <testcase classname="RestClientTests" name="test__072__RestClient__Host_Fallback__retry_hosts_in_random_order__all_fallback_requests_headers_should_contain__Host__header_with_fallback_host_address()" time="0.0029860734939575195">
            <failure message="XCTAssertEqual failed: (&quot;5&quot;) is not equal to (&quot;0&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientTests.swift#EndingLineNumber=1528&amp;StartingLineNumber=1528)">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__073__RestClient__Host_Fallback__retry_hosts_in_random_order__if_an_empty_array_of_fallback_hosts_is_provided__then_fallback_host_functionality_is_disabled()" time="0.0013859272003173828">
        </testcase>
        <testcase classname="RestClientTests" name="test__074__RestClient__Host_Fallback__should_use_an_alternative_host_when___hostUnreachable()" time="0.001484990119934082">
        </testcase>
        <testcase classname="RestClientTests" name="test__075__RestClient__Host_Fallback__should_use_an_alternative_host_when___requestTimeout_timeout__0_1_()" time="0.22096002101898193">
        </testcase>
        <testcase classname="RestClientTests" name="test__076__RestClient__Host_Fallback__should_use_an_alternative_host_when___hostInternalError_code__501_()" time="0.004850983619689941">
        </testcase>
        <testcase classname="RestClientTests" name="test__077__RestClient__Host_Fallback__should_store_successful_fallback_host_as_default_host___hostUnreachable()" time="0.004772067070007324">
        </testcase>
        <testcase classname="RestClientTests" name="test__078__RestClient__Host_Fallback__should_store_successful_fallback_host_as_default_host___requestTimeout_timeout__0_1_()" time="0.18137192726135254">
        </testcase>
        <testcase classname="RestClientTests" name="test__079__RestClient__Host_Fallback__should_store_successful_fallback_host_as_default_host___hostInternalError_code__501_()" time="0.0076138973236083984">
        </testcase>
        <testcase classname="RestClientTests" name="test__080__RestClient__Host_Fallback__should_store_successful_fallback_host_as_default_host__should_restore_default_primary_host_after_fallbackRetryTimeout_expired___hostUnreachable()" time="1.125128984451294">
            <failure message="XCTAssertEqual failed: (&quot;Optional(&quot;c.ably-realtime.com&quot;)&quot;) is not equal to (&quot;Optional(&quot;rest.ably.io&quot;)&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientTests.swift#EndingLineNumber=113&amp;StartingLineNumber=113)">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__081__RestClient__Host_Fallback__should_store_successful_fallback_host_as_default_host__should_restore_default_primary_host_after_fallbackRetryTimeout_expired___requestTimeout_timeout__0_1_()" time="1.2506740093231201">
            <failure message="XCTAssertEqual failed: (&quot;Optional(&quot;e.ably-realtime.com&quot;)&quot;) is not equal to (&quot;Optional(&quot;rest.ably.io&quot;)&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientTests.swift#EndingLineNumber=113&amp;StartingLineNumber=113)">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__082__RestClient__Host_Fallback__should_store_successful_fallback_host_as_default_host__should_restore_default_primary_host_after_fallbackRetryTimeout_expired___hostInternalError_code__501_()" time="1.1187740564346313">
            <failure message="XCTAssertEqual failed: (&quot;Optional(&quot;a.ably-realtime.com&quot;)&quot;) is not equal to (&quot;Optional(&quot;rest.ably.io&quot;)&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientTests.swift#EndingLineNumber=113&amp;StartingLineNumber=113)">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__083__RestClient__Host_Fallback__should_store_successful_fallback_host_as_default_host__should_use_another_fallback_host_if_previous_fallback_request_failed_and_store_it_as_default_if_current_fallback_request_succseeded___hostUnreachable()" time="0.013392090797424316">
        </testcase>
        <testcase classname="RestClientTests" name="test__084__RestClient__Host_Fallback__should_store_successful_fallback_host_as_default_host__should_use_another_fallback_host_if_previous_fallback_request_failed_and_store_it_as_default_if_current_fallback_request_succseeded___requestTimeout_timeout__0_1_()" time="0.2920200824737549">
        </testcase>
        <testcase classname="RestClientTests" name="test__085__RestClient__Host_Fallback__should_store_successful_fallback_host_as_default_host__should_use_another_fallback_host_if_previous_fallback_request_failed_and_store_it_as_default_if_current_fallback_request_succseeded___hostInternalError_code__501_()" time="0.004250049591064453">
        </testcase>
        <testcase classname="RestClientTests" name="test__086__RestClient__request__method_signature_and_arguments__should_add_query_parameters()" time="0.0033659934997558594">
            <failure message="XCTAssertEqual failed: (&quot;https://rest.ably.io:443/feature&quot;) is not equal to (&quot;https://rest.ably.io:443/feature?foo=1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientTests.swift#EndingLineNumber=1844&amp;StartingLineNumber=1844)">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__087__RestClient__request__method_signature_and_arguments__should_add_a_HTTP_body()" time="0.001520991325378418">
        </testcase>
        <testcase classname="RestClientTests" name="test__088__RestClient__request__method_signature_and_arguments__should_add_a_HTTP_header()" time="0.0011529922485351562">
        </testcase>
        <testcase classname="RestClientTests" name="test__089__RestClient__request__method_signature_and_arguments__should_error_if_method_is_invalid()" time="0.0026760101318359375">
            <failure message="XCTAssertEqual failed: (&quot;40005&quot;) is not equal to (&quot;1&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientTests.swift#EndingLineNumber=1910&amp;StartingLineNumber=1910)">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__090__RestClient__request__method_signature_and_arguments__should_error_if_path_is_invalid()" time="0.00531005859375">
            <failure message="XCTAssertEqual failed: (&quot;40007&quot;) is not equal to (&quot;3&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientTests.swift#EndingLineNumber=1934&amp;StartingLineNumber=1934)">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__091__RestClient__request__method_signature_and_arguments__should_error_if_body_is_not_a_Dictionary_or_an_Array()" time="0.0044029951095581055">
            <failure message="XCTAssertEqual failed: (&quot;40006&quot;) is not equal to (&quot;2&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientTests.swift#EndingLineNumber=1949&amp;StartingLineNumber=1949)">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__092__RestClient__request__method_signature_and_arguments__should_do_a_request_and_receive_a_valid_response()" time="0.1732250452041626">
        </testcase>
        <testcase classname="RestClientTests" name="test__093__RestClient__request__method_signature_and_arguments__should_handle_response_failures()" time="0.18188107013702393">
        </testcase>
        <testcase classname="RestClientTests" name="test__094__RestClient__if_in_the_course_of_a_REST_request_an_attempt_to_authenticate_using_authUrl_fails_due_to_a_timeout__the_request_should_result_in_an_error_with_code_40170__statusCode_401__and_a_suitable_error_message()" time="0.18604505062103271">
            <failure message="XCTAssertEqual failed: (&quot;0&quot;) is not equal to (&quot;401&quot;) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/RestClientTests.swift#EndingLineNumber=2069&amp;StartingLineNumber=2069)">
            </failure>
        </testcase>
        <testcase classname="RestClientTests" name="test__095__RestClient__request_IDs__should_add__request_id__query_parameter()" time="0.0023250579833984375">
        </testcase>
        <testcase classname="RestClientTests" name="test__097__RestClient__request_IDs__ErrorInfo_should_have__requestId__property()" time="0.001116037368774414">
        </testcase>
        <testcase classname="RestPaginatedTests" name="test__001__RestPaginated__should_extract_links_from_the_response()" time="0.000655055046081543">
        </testcase>
        <testcase classname="RestPaginatedTests" name="test__002__RestPaginated__should_create_next_first_last_request_from_extracted_link_path()" time="0.004109025001525879">
        </testcase>
        <testcase classname="RetrySequenceTests" name="test_addRetryAttempt()" time="0.0005120038986206055">
        </testcase>
        <testcase classname="StatsTests" name="test__001__Stats__all__should_return_a_MessagesTypes_object()" time="0.02645397186279297">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006d8180&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key all. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=86&amp;StartingLineNumber=86)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__002__Stats__all__should_return_value_for_message_counts()" time="0.007866978645324707">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006c4a00&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key all. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=86&amp;StartingLineNumber=86)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__003__Stats__all__should_return_value_for_all_data_transferred()" time="0.00501096248626709">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006c4180&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key all. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=86&amp;StartingLineNumber=86)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__004__Stats__all__should_return_zero_for_empty_values()" time="0.00575101375579834">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006cb000&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key all. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=86&amp;StartingLineNumber=86)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__005__Stats__persisted__should_return_a_MessagesTypes_object()" time="0.009635090827941895">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006c4600&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key persisted. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=86&amp;StartingLineNumber=86)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__006__Stats__persisted__should_return_value_for_message_counts()" time="0.0050470829010009766">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006c4580&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key persisted. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=86&amp;StartingLineNumber=86)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__007__Stats__persisted__should_return_value_for_all_data_transferred()" time="0.005043983459472656">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006c1d80&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key persisted. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=86&amp;StartingLineNumber=86)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__008__Stats__persisted__should_return_zero_for_empty_values()" time="0.0054999589920043945">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006c1480&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key persisted. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=86&amp;StartingLineNumber=86)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__009__Stats__inbound__should_return_a_MessageTraffic_object()" time="0.01125192642211914">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006c2d00&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key inbound. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=191&amp;StartingLineNumber=191)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__010__Stats__inbound__should_return_value_for_realtime_message_counts()" time="0.0055429935455322266">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006f0200&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key inbound. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=191&amp;StartingLineNumber=191)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__011__Stats__inbound__should_return_value_for_all_presence_data()" time="0.00562894344329834">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006f3580&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key inbound. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=191&amp;StartingLineNumber=191)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__012__Stats__outbound__should_return_a_MessageTraffic_object()" time="0.005138993263244629">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006fa800&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key outbound. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=191&amp;StartingLineNumber=191)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__013__Stats__outbound__should_return_value_for_realtime_message_counts()" time="0.009261012077331543">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006ed200&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key outbound. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=191&amp;StartingLineNumber=191)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__014__Stats__outbound__should_return_value_for_all_presence_data()" time="0.005669951438903809">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006fb980&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key outbound. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=191&amp;StartingLineNumber=191)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__015__Stats__connections__should_return_a_ConnectionTypes_object()" time="0.0013270378112792969">
        </testcase>
        <testcase classname="StatsTests" name="test__016__Stats__connections__should_return_value_for_tls_opened_counts()" time="0.0004420280456542969">
        </testcase>
        <testcase classname="StatsTests" name="test__017__Stats__connections__should_return_value_for_all_peak_connections()" time="0.001999974250793457">
        </testcase>
        <testcase classname="StatsTests" name="test__018__Stats__connections__should_return_zero_for_empty_values()" time="0.0004431009292602539">
        </testcase>
        <testcase classname="StatsTests" name="test__019__Stats__channels__should_return_a_ResourceCount_object()" time="0.0037289857864379883">
        </testcase>
        <testcase classname="StatsTests" name="test__020__Stats__channels__should_return_value_for_opened_counts()" time="0.00038301944732666016">
        </testcase>
        <testcase classname="StatsTests" name="test__021__Stats__channels__should_return_value_for_peak_channels()" time="0.0003800392150878906">
        </testcase>
        <testcase classname="StatsTests" name="test__022__Stats__channels__should_return_zero_for_empty_values()" time="0.0003789663314819336">
        </testcase>
        <testcase classname="StatsTests" name="test__023__Stats__apiRequests__should_return_a_RequestCount_object()" time="0.006052970886230469">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006c4300&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key apiRequests. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=312&amp;StartingLineNumber=312)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__024__Stats__apiRequests__should_return_value_for_succeeded()" time="0.005113959312438965">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006ed880&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key apiRequests. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=312&amp;StartingLineNumber=312)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__025__Stats__apiRequests__should_return_value_for_failed()" time="0.03383493423461914">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006cb280&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key apiRequests. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=312&amp;StartingLineNumber=312)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__026__Stats__tokenRequests__should_return_a_RequestCount_object()" time="0.03160905838012695">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006b0100&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key tokenRequests. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=312&amp;StartingLineNumber=312)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__027__Stats__tokenRequests__should_return_value_for_succeeded()" time="0.026854991912841797">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006b4080&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key tokenRequests. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=312&amp;StartingLineNumber=312)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__028__Stats__tokenRequests__should_return_value_for_failed()" time="0.018208980560302734">
            <failure message="[&lt;AblySwift.ARTStats 0x6000006b4280&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key tokenRequests. (NSUnknownKeyException) (/Users/runner/work/ably-cocoa/ably-cocoa/Test/AblyTests/Tests/StatsTests.swift#EndingLineNumber=312&amp;StartingLineNumber=312)">
            </failure>
        </testcase>
        <testcase classname="StatsTests" name="test__029__Stats__interval__should_return_a_Date_object_representing_the_start_of_the_interval()" time="0.0019470453262329102">
        </testcase>
        <testcase classname="StatsTests" name="test__030__Stats__push__should_return_a_ARTStatsPushCount_object()" time="0.0005810260772705078">
        </testcase>
        <testcase classname="StatsTests" name="test__031__Stats__push__should_return_value_for_messages_count()" time="0.0004030466079711914">
        </testcase>
        <testcase classname="StatsTests" name="test__032__Stats__push__should_return_value_for_invalid_notifications()" time="0.0015211105346679688">
        </testcase>
        <testcase classname="StatsTests" name="test__033__Stats__push__should_return_value_for_attempted_notifications()" time="0.0018160343170166016">
        </testcase>
        <testcase classname="StatsTests" name="test__034__Stats__push__should_return_value_for_successful_notifications()" time="0.002125978469848633">
        </testcase>
        <testcase classname="StatsTests" name="test__035__Stats__push__should_return_value_for_failed_notifications()" time="0.001461029052734375">
        </testcase>
        <testcase classname="StatsTests" name="test__036__Stats__push__should_return_value_for_directPublishes()" time="0.001313924789428711">
        </testcase>
        <testcase classname="StatsTests" name="test__037__Stats__inProgress__should_return_a_Date_object_representing_the_last_sub_interval_included_in_this_statistic()" time="0.0016760826110839844">
        </testcase>
        <testcase classname="StatsTests" name="test__038__Stats__count__should_return_value_for_number_of_lower_level_stats()" time="0.00039899349212646484">
        </testcase>
        <testcase classname="StringifiableTests" name="test__001__Stringifiable__type_conversion__as_string()" time="0.0008749961853027344">
        </testcase>
        <testcase classname="StringifiableTests" name="test__002__Stringifiable__type_conversion__as_bool__true_()" time="0.0014939308166503906">
        </testcase>
        <testcase classname="StringifiableTests" name="test__003__Stringifiable__type_conversion__as_bool__false_()" time="0.00041103363037109375">
        </testcase>
        <testcase classname="StringifiableTests" name="test__004__Stringifiable__type_conversion__as_integer_that_is_not_treated_as_bool__false_()" time="0.0010440349578857422">
        </testcase>
        <testcase classname="StringifiableTests" name="test__005__Stringifiable__type_conversion__as_integer_that_is_not_treated_as_bool__true_()" time="0.004879951477050781">
        </testcase>
        <testcase classname="StringifiableTests" name="test__006__Stringifiable__type_conversion__as_number__Int_()" time="0.00042700767517089844">
        </testcase>
        <testcase classname="StringifiableTests" name="test__007__Stringifiable__type_conversion__as_number__Float_1_decimal_digit_()" time="0.0004080533981323242">
        </testcase>
        <testcase classname="StringifiableTests" name="test__008__Stringifiable__type_conversion__as_number__Float_2_decimal_digits_()" time="0.0016349554061889648">
        </testcase>
        <testcase classname="StringifiableTests" name="test__009__Stringifiable__type_conversion__as_number__Float_4_decimal_digits_()" time="0.0005710124969482422">
        </testcase>
    </testsuite>
</testsuites>